From 9b0e86a8e74768c4fe848fb5ce8d754292db4e3e Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Tue, 23 Apr 2024 00:37:58 -0400 Subject: New upstream version 8.3.0. --- docs/architecture/nikola-architecture-draw-io.png | Bin 90059 -> 163583 bytes docs/architecture/nikola-architecture-draw-io.svg | 5 +- docs/architecture/nikola-architecture-draw-io.xml | 214 +++++++++++++++++++++- docs/creating-a-site.rst | 2 +- docs/extending.rst | 79 ++++---- docs/internals.rst | 10 +- docs/man/nikola.1.gz | Bin 1787 -> 1787 bytes docs/man/nikola.rst | 2 +- docs/manual.rst | 4 +- docs/social_buttons.rst | 2 +- docs/sphinx/conf.py | 6 +- docs/support.rst | 2 +- docs/template-variables.rst | 2 +- docs/theming.rst | 5 +- 14 files changed, 279 insertions(+), 54 deletions(-) (limited to 'docs') diff --git a/docs/architecture/nikola-architecture-draw-io.png b/docs/architecture/nikola-architecture-draw-io.png index 0e0f391..8180cf5 100644 Binary files a/docs/architecture/nikola-architecture-draw-io.png and b/docs/architecture/nikola-architecture-draw-io.png differ diff --git a/docs/architecture/nikola-architecture-draw-io.svg b/docs/architecture/nikola-architecture-draw-io.svg index 9470c32..3ed2c16 100644 --- a/docs/architecture/nikola-architecture-draw-io.svg +++ b/docs/architecture/nikola-architecture-draw-io.svg @@ -1 +1,4 @@ -

Yapsy

[Not supported by viewer]

doit

[Not supported by viewer]

IPlugin

[Not supported by viewer]
Task
[Not supported by viewer]
TemplateSystem
[Not supported by viewer]
ConfigPlugin
[Not supported by viewer]
MarkdownExtension
[Not supported by viewer]
TaskMultiplier
[Not supported by viewer]
RestExtension
[Not supported by viewer]
SignalHandler
[Not supported by viewer]
Command
[Not supported by viewer]
LateTask
[Not supported by viewer]
PageCompiler
[Not supported by viewer]
Plugin Categories
[Not supported by viewer]

[Not supported by viewer]
Commands

[Not supported by viewer]
init
install_theme
new_post
new_page
deploy
serve
...

[Not supported by viewer]

[Not supported by viewer]
Tasks
[Not supported by viewer]
archives
galleries
indexes
pages
posts
rss
tags
...
[Not supported by viewer]
jinja
mako
[Not supported by viewer]

[Not supported by viewer]
Template Systems
[Not supported by viewer]
ipynb
markdown
rest
php
pandoc
[Not supported by viewer]
Page Compilers
[Not supported by viewer]

[Not supported by viewer]
TaskLoader
[Not supported by viewer]
NikolaTaskLoader
[Not supported by viewer]
Run
[Not supported by viewer]
Auto
[Not supported by viewer]
Help
[Not supported by viewer]
Clean
[Not supported by viewer]

doit Sub Commands


[Not supported by viewer]

[Not supported by viewer]

Nikola Sub Commands


[Not supported by viewer]
Build
[Not supported by viewer]
Clean
[Not supported by viewer]
Help
[Not supported by viewer]
Auto
[Not supported by viewer]

[Not supported by viewer]


default_tasks
[Not supported by viewer]
load_tasks
[Not supported by viewer]
render_site
Group of tasks to render the site
[Not supported by viewer]
post_render
Group of tasks to be executed after site is rendered.
[Not supported by viewer]

executes


[Not supported by viewer]

implemented using

[Not supported by viewer]

implemented using

[Not supported by viewer]
DoitMain
[Not supported by viewer]
DoitNikola
[Not supported by viewer]
Command
[Not supported by viewer]
implemented using
[Not supported by viewer]
\ No newline at end of file + + + +

Nikola Plugin Manager

Nikola Plugin Manager

doit

doit

BasePlugin

BasePlugin
Task
Task
TemplateSystem
TemplateSystem
ConfigPlugin
ConfigPlugin
MarkdownExtension
MarkdownExtension
TaskMultiplier
TaskMultiplier
RestExtension
RestExtension
SignalHandler
SignalHandler
Command
Command
LateTask
LateTask
PageCompiler
PageCompiler
Plugin Categories
Plugin Categories

Commands

Commands
init
install_theme
new_post
new_page
deploy
serve
...

init...

Tasks
Tasks
archives
galleries
indexes
pages
posts
rss
tags
...
archives...
jinja
mako
jinja...

Template Systems
Template Systems
ipynb
markdown
rest
php
pandoc
ipynb...
Page Compilers
Page Compilers

TaskLoader
TaskLoader
NikolaTaskLoader
NikolaTaskLoader
Run
Run
Auto
Auto
Help
Help
Clean
Clean

doit Sub Commands


doit Sub Commands

Nikola Sub Commands


Nikola Sub Commands
Build
Build
Clean
Clean
Help
Help
Auto
Auto



default_tasks
default_tasks...
load_tasks
load_tasks
render_site
Group of tasks to render the site
render_site...
post_render
Group of tasks to be executed after site is rendered.
post_renderGroup of tas...

executes


executes

implemented using

implemented using

implemented using

implemented using
DoitMain
DoitMain
DoitNikola
DoitNikola
Command
Command
implemented using
implemented using
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/architecture/nikola-architecture-draw-io.xml b/docs/architecture/nikola-architecture-draw-io.xml index d5aeec7..8909b3c 100644 --- a/docs/architecture/nikola-architecture-draw-io.xml +++ b/docs/architecture/nikola-architecture-draw-io.xml @@ -1 +1,213 @@ -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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/creating-a-site.rst b/docs/creating-a-site.rst index 6efc855..bfd7a99 100644 --- a/docs/creating-a-site.rst +++ b/docs/creating-a-site.rst @@ -160,7 +160,7 @@ you can use anything you like from it: (on by default) And that's it. You will want to change the NAVIGATION_LINKS option to create a reasonable -menu for your site, you may want to modify the theme (check ``nikola help bootswatch_theme`` +menu for your site, you may want to modify the theme (check ``nikola help subtheme`` for a quick & dirty solution), and you may want to add a blog later on, for company news or whatever. diff --git a/docs/extending.rst b/docs/extending.rst index eead796..abd76e4 100644 --- a/docs/extending.rst +++ b/docs/extending.rst @@ -6,7 +6,7 @@ .. description: .. author: The Nikola Team -:Version: 8.2.3 +:Version: 8.3.0 :Author: Roberto Alsina .. class:: alert alert-primary float-md-right @@ -40,41 +40,46 @@ When you run ``nikola --help`` you will see something like this: .. code-block:: console $ nikola help - Nikola is a tool to create static websites and blogs. For full documentation and more - information, please visit https://getnikola.com/ - + Nikola is a tool to create static websites and blogs. + For full documentation and more information, please visit https://getnikola.com/ Available commands: - nikola auto automatically detect site changes, rebuild - and optionally refresh a browser - nikola bootswatch_theme given a swatch name from bootswatch.com and a - parent theme, creates a custom theme - nikola build run tasks - nikola check check links and files in the generated site - nikola clean clean action / remove targets - nikola console start an interactive python console with access to - your site and configuration - nikola deploy deploy the site - nikola dumpdb dump dependency DB - nikola forget clear successful run status from internal DB - nikola help show help - nikola ignore ignore task (skip) on subsequent runs - nikola import_blogger import a blogger dump - nikola import_feed import a RSS/Atom dump - nikola import_wordpress import a WordPress dump - nikola init create a Nikola site in the specified folder - nikola list list tasks from dodo file - nikola mincss apply mincss to the generated site - nikola new_post create a new blog post or site page - nikola run run tasks - nikola serve start the test webserver - nikola strace use strace to list file_deps and targets - nikola theme manage themes - nikola version print the Nikola version number - - nikola help show help / reference - nikola help show command usage - nikola help show task usage + nikola auto builds and serves a site; automatically detects site changes, + rebuilds, and optionally refreshes a browser + nikola build run tasks + nikola check check links and files in the generated site + nikola clean clean action / remove targets + nikola console start an interactive Python console with access to your site + nikola default_config Print the default Nikola configuration. + nikola deploy deploy the site + nikola dumpdb dump dependency DB + nikola forget clear successful run status from internal DB + nikola github_deploy deploy the site to GitHub Pages + nikola help show help + nikola ignore ignore task (skip) on subsequent runs + nikola import_wordpress import a WordPress dump + nikola info show info about a task + nikola init create a Nikola site in the specified folder + nikola list list tasks from dodo file + nikola new_page create a new page in the site + nikola new_post create a new blog post or site page + nikola orphans list all orphans + nikola plugin manage plugins + nikola reset-dep recompute and save the state of file dependencies + without executing actions + nikola rst2html compile reStructuredText to HTML files + nikola serve start the test webserver + nikola status display site status + nikola strace use strace to list file_deps and targets + nikola subtheme given a swatch name from bootswatch.com or hackerthemes.com + and a parent theme, creates a custom theme + nikola tabcompletion generate script for tab-completion + nikola theme manage themes + nikola version print the Nikola version number + + nikola help show help / reference + nikola help show command usage + nikola help show task usage That will give you a list of all available commands in your version of Nikola. Each and every one of those is a plugin. Let's look at a typical example: @@ -621,10 +626,10 @@ Some (hopefully all) markup compilers support shortcodes in these forms: .. code:: text {{% raw %}}{{% foo %}}{{% /raw %}} # No arguments - {{% raw %}{{% foo bar %}}{{% /raw %}} # One argument, containing "bar" - {{% raw %}{{% foo bar baz=bat %}}{{% /raw %}} # Two arguments, one containing "bar", one called "baz" containing "bat" + {{% raw %}}{{% foo bar %}}{{% /raw %}} # One argument, containing "bar" + {{% raw %}}{{% foo bar baz=bat %}}{{% /raw %}} # Two arguments, one containing "bar", one called "baz" containing "bat" - {{% raw %}{{% foo %}}Some text{{% /foo %}}{{% /raw %}} # one argument called "data" containing "Some text" + {{% raw %}}{{% foo %}}Some text{{% /foo %}}{{% /raw %}} # one argument called "data" containing "Some text" So, if you are creating a plugin that generates markup, it may be a good idea to register it as a shortcode in addition of to restructured text directive or diff --git a/docs/internals.rst b/docs/internals.rst index 6b49e92..a3b7af2 100644 --- a/docs/internals.rst +++ b/docs/internals.rst @@ -15,7 +15,7 @@ So, this is a short document explaining what each piece of Nikola does and how it all fits together. Nikola is a Pile of Plugins - Most of Nikola is implemented as plugins using `Yapsy `_. + Most of Nikola is implemented as plugins (using a custom plugin manager inspired by Yapsy). You can ignore that they are plugins and just think of them as regular python modules and packages with a funny little ``.plugin`` file next to them. @@ -44,7 +44,7 @@ The Build Command Nikola's goal is similar, deep at heart, to a Makefile. Take sources, compile them into something, in this case a website. Instead of a Makefile, Nikola uses -`doit `_ +`doit `_. Doit has the concept of "tasks". The 1 minute summary of tasks is that they have: @@ -64,7 +64,11 @@ basename:name .. sidebar:: More about tasks If you ever want to do your own tasks, you really should read the doit - `documentation on tasks `_ + `documentation on tasks `_. + + Notably, by default doit redirects ``stdout`` and ``stderr``. To get a + proper PDB debugging shell, you need to use doit's own + `set_trace `_ function. So, what Nikola does, when you use the build command, is to read the configuration ``conf.py`` from the current folder, instantiate diff --git a/docs/man/nikola.1.gz b/docs/man/nikola.1.gz index c850b70..f24dc1e 100644 Binary files a/docs/man/nikola.1.gz and b/docs/man/nikola.1.gz differ diff --git a/docs/man/nikola.rst b/docs/man/nikola.rst index 7290887..53c3b9f 100644 --- a/docs/man/nikola.rst +++ b/docs/man/nikola.rst @@ -6,7 +6,7 @@ Nikola A Static Site and Blog Generator -------------------------------- -:Version: Nikola 8.2.3 +:Version: Nikola 8.3.0 :Manual section: 1 :Manual group: User Commands diff --git a/docs/manual.rst b/docs/manual.rst index 1ca7a72..0ddc877 100644 --- a/docs/manual.rst +++ b/docs/manual.rst @@ -7,7 +7,7 @@ .. has_math: true .. author: The Nikola Team -:Version: 8.2.3 +:Version: 8.3.0 .. class:: alert alert-primary float-md-right @@ -1909,6 +1909,7 @@ are probably expecting: comments. Nikola supports several third party comment systems: * `DISQUS `_ +* `Discourse `_ * `IntenseDebate `_ * `Muut (Formerly moot) `_ * `Facebook `_ @@ -1936,6 +1937,7 @@ It is also possible to use a comment system added by a plugin, see the Punycode (if using Internationalized Domain Names) and **have a trailing slash**, default ``http://localhost:8080/``). You can add custom config options via ``GLOBAL_CONTEXT``, e.g., ``GLOBAL_CONTEXT['isso_config'] = {"require-author": "true"}`` + * For Discourse, it's the forum instance (must be world-accessible) and **have a trailing slash**. * For Commento, it's the URL of the commento instance as required by the ``serverUrl`` parameter in commento's documentation. * For Utterances, it's the **repo name** (``"org/user"``) on GitHub whose diff --git a/docs/social_buttons.rst b/docs/social_buttons.rst index f093a70..31c9c03 100644 --- a/docs/social_buttons.rst +++ b/docs/social_buttons.rst @@ -6,7 +6,7 @@ .. description: .. author: The Nikola Team -:Version: 8.2.3 +:Version: 8.3.0 .. class:: alert alert-primary float-md-right diff --git a/docs/sphinx/conf.py b/docs/sphinx/conf.py index 51b3483..44890f5 100644 --- a/docs/sphinx/conf.py +++ b/docs/sphinx/conf.py @@ -48,16 +48,16 @@ master_doc = 'index' # General information about the project. project = 'Nikola' -copyright = '2012-2022, The Nikola Contributors' +copyright = '2012-2024, The Nikola Contributors' # The version info for the project yo're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = '8.2.3' +version = '8.3.0' # The full version, including alpha/beta/rc tags. -release = '8.2.3' +release = '8.3.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/support.rst b/docs/support.rst index e895bac..cc803f9 100644 --- a/docs/support.rst +++ b/docs/support.rst @@ -4,7 +4,7 @@ .. description: Get help using Nikola, or contact us. .. author: The Nikola Team -:Version: 8.2.3 +:Version: 8.3.0 .. class:: alert alert-primary float-md-right diff --git a/docs/template-variables.rst b/docs/template-variables.rst index 63210c1..2d10f27 100644 --- a/docs/template-variables.rst +++ b/docs/template-variables.rst @@ -3,7 +3,7 @@ .. date: 2017-04-13 12:00:00 .. author: The Nikola Team -:Version: 8.2.3 +:Version: 8.3.0 :Author: Chris Warrick Variables available in templates are listed below. diff --git a/docs/theming.rst b/docs/theming.rst index ff10d28..5beecd1 100644 --- a/docs/theming.rst +++ b/docs/theming.rst @@ -6,7 +6,7 @@ .. description: .. author: The Nikola Team -:Version: 8.2.3 +:Version: 8.3.0 :Author: Roberto Alsina .. class:: alert alert-primary float-md-right @@ -461,9 +461,8 @@ List of page kinds provided by default plugins: * list, tags_page * post_page * page_page -* story_page +* story_page (alternate/legacy name for page_page) * listing -* generic_page * gallery_front * gallery_page -- cgit v1.2.3