add README and docs
This commit is contained in:
		
							
								
								
									
										117
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										117
									
								
								README
									
									
									
									
									
								
							@@ -1,6 +1,117 @@
 | 
				
			|||||||
reStructuredWeb -- static site generator.
 | 
					=====
 | 
				
			||||||
 | 
					[rSW]
 | 
				
			||||||
 | 
					=====
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					reStructuredWeb (rSW, reSW or rstW) -- is a highly customizable static site
 | 
				
			||||||
 | 
					generator for the reStructuredText markup language.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Docs:
 | 
					Docs:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* https://nixhacks.net/rstw/
 | 
					* https://nixhacks.net/rsw/
 | 
				
			||||||
* https://git/nxhs.cloud/ge/rstw_docs/
 | 
					* https://git.nxhs.cloud/ge/rSW/src/branch/master/docs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Installation
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					From PyPI
 | 
				
			||||||
 | 
					---------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pip install reSW
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					From tarball
 | 
				
			||||||
 | 
					------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pip install ./reSW-0.1.2.tar.gz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Shell completion
 | 
				
			||||||
 | 
					----------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pip install infi.docopt-completion
 | 
				
			||||||
 | 
					    docopt-completion rsw
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Quick start
 | 
				
			||||||
 | 
					===========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Initialise site with following commands::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    rsw init my_site
 | 
				
			||||||
 | 
					    cd my_site
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2. Create first template and post.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Template layouts/template.jinja2::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!DOCTYPE html>
 | 
				
			||||||
 | 
					    <html lang="en">
 | 
				
			||||||
 | 
					      <head>
 | 
				
			||||||
 | 
					        <meta charset="utf-8">
 | 
				
			||||||
 | 
					        <title>{{ page.title }}</title>
 | 
				
			||||||
 | 
					      </head>
 | 
				
			||||||
 | 
					    <body>
 | 
				
			||||||
 | 
					       {{ html | safe }}
 | 
				
			||||||
 | 
					    </body>
 | 
				
			||||||
 | 
					    </html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Post content/index.rst::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :title: Hello, World!
 | 
				
			||||||
 | 
					    :date: 1970-01-01
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    =============
 | 
				
			||||||
 | 
					    Hello, World!
 | 
				
			||||||
 | 
					    =============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Hello, there! This is my first site built with *re*\ **Structured**\ *Web*!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					3. Build your site::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    rsw build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Command Line Interface
 | 
				
			||||||
 | 
					======================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Usage: rsw init [--no-makefile] [<name>]
 | 
				
			||||||
 | 
					           rsw build [-c <file>]
 | 
				
			||||||
 | 
					           rsw print [-c <file>] [--default] [--json]
 | 
				
			||||||
 | 
					           rsw (-h | --help | -v | --version)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Commands:
 | 
				
			||||||
 | 
					      init          initialise new site.
 | 
				
			||||||
 | 
					      build         build site.
 | 
				
			||||||
 | 
					      print         print configuration.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Options:
 | 
				
			||||||
 | 
					      -c <file>, --config <file>    configuaration file.
 | 
				
			||||||
 | 
					      -j, --json                    JSON output.
 | 
				
			||||||
 | 
					      -d, --default                 print default config.
 | 
				
			||||||
 | 
					      -M, --no-makefile             do not create Makefile.
 | 
				
			||||||
 | 
					      -h, --help                    print this help message and exit.
 | 
				
			||||||
 | 
					      -v, --version                 print version and exit.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Development
 | 
				
			||||||
 | 
					===========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Build Python package
 | 
				
			||||||
 | 
					--------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Variant 1::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pip install setuptools wheel twine
 | 
				
			||||||
 | 
					    python setup.py sdist bdist_wheel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Variant 2::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pip install -U build
 | 
				
			||||||
 | 
					    python -m build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Via Makefile (`build` package needed)::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    make build
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								docs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								docs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					build/
 | 
				
			||||||
 | 
					downloads/
 | 
				
			||||||
							
								
								
									
										36
									
								
								docs/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								docs/Makefile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					# Makefile for reSW
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONTENTDIR  = content
 | 
				
			||||||
 | 
					STATICDIR   = static
 | 
				
			||||||
 | 
					BUILDDIR    = build
 | 
				
			||||||
 | 
					CONFIG      = settings.toml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					help:
 | 
				
			||||||
 | 
						@echo 'Build rSW site'
 | 
				
			||||||
 | 
						@echo
 | 
				
			||||||
 | 
						@echo 'Available targets:'
 | 
				
			||||||
 | 
						@echo
 | 
				
			||||||
 | 
						@echo '  build          build HTML'
 | 
				
			||||||
 | 
						@echo '  serve          run local HTTP server'
 | 
				
			||||||
 | 
						@echo '  css <theme>    generate Pygments stylesheet'
 | 
				
			||||||
 | 
						@echo
 | 
				
			||||||
 | 
						@echo 'Run make without target to build html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build:
 | 
				
			||||||
 | 
						test -d "$(BUILDDIR)" && rm -rf "$(BUILDDIR)" || true
 | 
				
			||||||
 | 
						rsw build -c "$(CONFIG)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					serve:
 | 
				
			||||||
 | 
						python -m http.server --directory $(BUILDDIR)/ --bind 0.0.0.0 8080
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					css:
 | 
				
			||||||
 | 
						mkdir -pv "$(STATICDIR)"/css/pygments
 | 
				
			||||||
 | 
						pygmentize -f html -S $(filter-out $@,$(MAKECMDGOALS)) -a .highlight \
 | 
				
			||||||
 | 
							> "$(STATICDIR)"/css/pygments/$(filter-out $@,$(MAKECMDGOALS)).css
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%:
 | 
				
			||||||
 | 
						@:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: all help build serve css
 | 
				
			||||||
							
								
								
									
										39
									
								
								docs/content/cli.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								docs/content/cli.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					:title: Command Line Interface
 | 
				
			||||||
 | 
					:date: 2022-09-30
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					======================
 | 
				
			||||||
 | 
					Command Line Interface
 | 
				
			||||||
 | 
					======================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Usage: rsw init [--no-makefile] [<name>]
 | 
				
			||||||
 | 
					       rsw build [-c <file>]
 | 
				
			||||||
 | 
					       rsw print [-c <file>] [--default] [--json]
 | 
				
			||||||
 | 
					       rsw (-h | --help | -v | --version)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Commands:
 | 
				
			||||||
 | 
					      init          initialise new site.
 | 
				
			||||||
 | 
					      build         build site.
 | 
				
			||||||
 | 
					      print         print configuration.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Options:
 | 
				
			||||||
 | 
					      -c <file>, --config <file>    configuaration file.
 | 
				
			||||||
 | 
					      -j, --json                    JSON output.
 | 
				
			||||||
 | 
					      -d, --default                 print default config.
 | 
				
			||||||
 | 
					      -M, --no-makefile             do not create Makefile.
 | 
				
			||||||
 | 
					      -h, --help                    print this help message and exit.
 | 
				
			||||||
 | 
					      -v, --version                 print version and exit.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Makefile usage
 | 
				
			||||||
 | 
					==============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Available targets:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      build          build HTML
 | 
				
			||||||
 | 
					      serve          run local HTTP server
 | 
				
			||||||
 | 
					      css <theme>    generate Pygments stylesheet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Run make without target to build html
 | 
				
			||||||
							
								
								
									
										71
									
								
								docs/content/configuration.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								docs/content/configuration.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
				
			|||||||
 | 
					:title: Configuration
 | 
				
			||||||
 | 
					:date: 2022-09-22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					=============
 | 
				
			||||||
 | 
					Configuration
 | 
				
			||||||
 | 
					=============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Dirs (``dirs``)
 | 
				
			||||||
 | 
					===============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_dir
 | 
				
			||||||
 | 
					    Default: build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					content_dir
 | 
				
			||||||
 | 
					    Default: content
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					templates_dir
 | 
				
			||||||
 | 
					    Default: layouts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static_dir
 | 
				
			||||||
 | 
					    Default: static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. note::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Content of this diretory will be placed into site root. Use
 | 
				
			||||||
 | 
					        subdirectories for files here, e.g. css/, img/, etc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Default settings for pages (``defaults``)
 | 
				
			||||||
 | 
					=========================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					template
 | 
				
			||||||
 | 
					    Default: template.jinja2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Default page template.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type
 | 
				
			||||||
 | 
					    Default: page
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Default article type.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Custom site data (``site``)
 | 
				
			||||||
 | 
					===========================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					datetime_format
 | 
				
			||||||
 | 
					    Default: %Y-%m-%d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    See `Format Codes`_.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Pygments (``pygments``)
 | 
				
			||||||
 | 
					=======================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					theme
 | 
				
			||||||
 | 
					    Default: default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Generate CSS style with following command::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        make css style_name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    See `Pygments Styles`_ and `pygmentize`_.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Docutils (``docutils``)
 | 
				
			||||||
 | 
					=======================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					See `Docutils Configuration`_.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. Links
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. _Format Codes: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes
 | 
				
			||||||
 | 
					.. _Pygments Styles: https://pygments.org/styles/
 | 
				
			||||||
 | 
					.. _pygmentize: https://pygments.org/docs/cmdline/
 | 
				
			||||||
 | 
					.. _Docutils Configuration: https://docutils.sourceforge.io/docs/user/config.html
 | 
				
			||||||
							
								
								
									
										114
									
								
								docs/content/data_sources.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								docs/content/data_sources.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,114 @@
 | 
				
			|||||||
 | 
					:title: Data Sources
 | 
				
			||||||
 | 
					:date: 2022-09-22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					Data Sources
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The diagram below shows the data sources and variables that can be used in
 | 
				
			||||||
 | 
					templates.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ┌─────────────────┐
 | 
				
			||||||
 | 
					    │  settings.toml  ├───► site, pygments_theme ──┐
 | 
				
			||||||
 | 
					    └─────────────────┘                            │
 | 
				
			||||||
 | 
					                                                   │
 | 
				
			||||||
 | 
					    ┌─────────────────┐                   ┌────────▼────────┐
 | 
				
			||||||
 | 
					    │      *.rst      ├───► page, html ───► template.jinja2 │
 | 
				
			||||||
 | 
					    └────────┬────────┘                   └────────▲────────┘
 | 
				
			||||||
 | 
					             │                                     │
 | 
				
			||||||
 | 
					    ┌────────▼────────┐                            │
 | 
				
			||||||
 | 
					    │ Aggregated data ├───► aggr ──────────────────┘
 | 
				
			||||||
 | 
					    └─────────────────┘
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\*.rst Files
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The \*.rst files contain a part with document attributes called Docinfo (see
 | 
				
			||||||
 | 
					`field lists`_ and `bibliographic elements`_) and a part with the content of
 | 
				
			||||||
 | 
					the article.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can come up with your own attributes. Attributes can contain only strings.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					There some special attributes used by rSW:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					============ =============== =========================
 | 
				
			||||||
 | 
					Attribute    Required        Deafult
 | 
				
			||||||
 | 
					============ =============== =========================
 | 
				
			||||||
 | 
					``type``     No              page
 | 
				
			||||||
 | 
					``template`` No              template.jinja2
 | 
				
			||||||
 | 
					``date``     Yes             None
 | 
				
			||||||
 | 
					``title``    No              None
 | 
				
			||||||
 | 
					============ =============== =========================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type
 | 
				
			||||||
 | 
					    Article type. Can be post for blog posts or ``page`` for standalone
 | 
				
			||||||
 | 
					    pages.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					template
 | 
				
			||||||
 | 
					    The template to be used when rendering the HTML page.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The attribute value must be the path to the template file relative to the
 | 
				
			||||||
 | 
					    template directory. For example, the templates/index.jinja2 file would be:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code-block:: rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        :template: index.jinja2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The path to the templates directory and default template can be overridden
 | 
				
			||||||
 | 
					    in **settings.toml**.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					date
 | 
				
			||||||
 | 
					    Date in ISO format YYYY-MM-DD. This attribute is used to sort the list of
 | 
				
			||||||
 | 
					    posts. The date format can be overridden in **settings.toml**.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					title
 | 
				
			||||||
 | 
					    Title of the article. It is not required and is not processed by rSW in
 | 
				
			||||||
 | 
					    any way, but it is desirable to fill it for use in templates.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. note::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The ``authors`` attribute is `special`_ and is not yet supported by rSW.
 | 
				
			||||||
 | 
					    Using ``authors`` will result in an error when building the site.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					settings.toml
 | 
				
			||||||
 | 
					=============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The configuration file has a special ``site`` section, all data from which is
 | 
				
			||||||
 | 
					passed to the template unchanged. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The structure and data types can be arbitrary. The file uses the
 | 
				
			||||||
 | 
					`TOML <https://toml.io/>`_ format.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For example, in this way you can pass basic information about the site:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: toml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [site]
 | 
				
			||||||
 | 
					    title = 'My site'
 | 
				
			||||||
 | 
					    name = 'My awesome site'
 | 
				
			||||||
 | 
					    description = 'Awesome site about awesome things'
 | 
				
			||||||
 | 
					    datetime_format = '%d %b %Y'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A special variable ``pygments_theme`` is also passed to the template from the
 | 
				
			||||||
 | 
					configuration file. It contains the value of ``pygments.theme``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Aggregated data
 | 
				
			||||||
 | 
					===============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A dictionary with aggregated data. This data is collected during site
 | 
				
			||||||
 | 
					generation before HTML-pages are rendered.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Aggregated data contains lists of blog posts and standalone pages.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The list of posts is sorted in descending order by date from the ``date``
 | 
				
			||||||
 | 
					attribute.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The next article will describe the use of this data in templates.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. Links
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. _field lists: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html\#field-lists
 | 
				
			||||||
 | 
					.. _bibliographic elements: https://docutils.sourceforge.io/docs/ref/doctree.html#bibliographic-elements
 | 
				
			||||||
 | 
					.. _special: https://docutils.sourceforge.io/docs/ref/doctree.html#authors
 | 
				
			||||||
							
								
								
									
										199
									
								
								docs/content/examples.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										199
									
								
								docs/content/examples.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,199 @@
 | 
				
			|||||||
 | 
					:title: Examples
 | 
				
			||||||
 | 
					:date: 2022-09-30
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					========
 | 
				
			||||||
 | 
					Examples
 | 
				
			||||||
 | 
					========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Blog site example
 | 
				
			||||||
 | 
					=================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For the blog, we will need to create three template files and at least two
 | 
				
			||||||
 | 
					.rst files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Edit your **settings.toml**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: toml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [defaults]
 | 
				
			||||||
 | 
					    template = 'post.jinja2'
 | 
				
			||||||
 | 
					    type = 'post'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [site]
 | 
				
			||||||
 | 
					    title = 'My Blog'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Generate Pygments theme:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: shell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   make css default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Create basic template **layouts/base.jinja2**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: jinja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!DOCTYPE html>
 | 
				
			||||||
 | 
					    <html lang="en">
 | 
				
			||||||
 | 
					      <head>
 | 
				
			||||||
 | 
					        <meta charset="utf-8">
 | 
				
			||||||
 | 
					        <link rel="stylesheet" href="/css/pygments/{{ pygments_theme }}.css">
 | 
				
			||||||
 | 
					        <link rel="stylesheet" href="/css/style.css">
 | 
				
			||||||
 | 
					        <title>{{ page.title }} | {{ site.title }}</title>
 | 
				
			||||||
 | 
					      </head>
 | 
				
			||||||
 | 
					    <body>
 | 
				
			||||||
 | 
					      {% block content %}{% endblock %}
 | 
				
			||||||
 | 
					    </body>
 | 
				
			||||||
 | 
					    </html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Home page template **layouts/index.jinja2**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: jinja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    {% extends "base.jinja2" %}
 | 
				
			||||||
 | 
					    {% block content %}
 | 
				
			||||||
 | 
					      <h1>{{ site.title }}</h1>
 | 
				
			||||||
 | 
					      <ul id="posts">
 | 
				
			||||||
 | 
					        {% for post in aggr.posts %}
 | 
				
			||||||
 | 
					          <li>
 | 
				
			||||||
 | 
					            <a href="{{ post.path }}">{{ post.title }}</a>
 | 
				
			||||||
 | 
					            <span class="meta"> — {{ post.date }}</span>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					        {% endfor %}
 | 
				
			||||||
 | 
					      </ul>
 | 
				
			||||||
 | 
					      {{ html | safe }}
 | 
				
			||||||
 | 
					    {% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Posts tempalte **layouts/post.jinja2**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: jinja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    {% extends "base.jinja2" %}
 | 
				
			||||||
 | 
					    {% block content %}
 | 
				
			||||||
 | 
					      <a href="/">Back to the home page</a>
 | 
				
			||||||
 | 
					      <article>
 | 
				
			||||||
 | 
					        {{ html | safe }}
 | 
				
			||||||
 | 
					      </article>
 | 
				
			||||||
 | 
					    {% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Create dummy home page **content/index.rst** with fields:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :title: Homepage
 | 
				
			||||||
 | 
					    :date: 1970-01-01
 | 
				
			||||||
 | 
					    :type: page
 | 
				
			||||||
 | 
					    :template: index.jinja2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Create first blog post **content/hello_world.rst**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :title: Hello, World!
 | 
				
			||||||
 | 
					    :date: 1970-01-01
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    =============
 | 
				
			||||||
 | 
					    Hello, World!
 | 
				
			||||||
 | 
					    =============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Hello, there! This is my first site built with *re*\ **Structured**\ *Web*!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Now build site:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: shell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   make
 | 
				
			||||||
 | 
					   make serve
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Page navigation
 | 
				
			||||||
 | 
					===============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This code is used on this site to organize pagination.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**settings.toml**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: toml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [site]
 | 
				
			||||||
 | 
					    [[site.sidebar]]
 | 
				
			||||||
 | 
					    title = 'First'
 | 
				
			||||||
 | 
					    url = '/first.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.sidebar]]
 | 
				
			||||||
 | 
					    title = 'Second'
 | 
				
			||||||
 | 
					    url = '/second.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.sidebar]]
 | 
				
			||||||
 | 
					    title = 'Third'
 | 
				
			||||||
 | 
					    url = '/third.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**layouts/template.jinja2**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: jinja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    {# Display Sidebar #}
 | 
				
			||||||
 | 
					    <strong>Contents</strong>
 | 
				
			||||||
 | 
					    <ul id="contents">
 | 
				
			||||||
 | 
					      {% for item in site.sidebar %}
 | 
				
			||||||
 | 
					        <li>
 | 
				
			||||||
 | 
					          <a href="{{ item.url }}">{{ item.title }}</a>
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
 | 
					      {% endfor %}
 | 
				
			||||||
 | 
					    </ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    {# Page content #}
 | 
				
			||||||
 | 
					    <article>
 | 
				
			||||||
 | 
					      {{ html | safe }}
 | 
				
			||||||
 | 
					    </article>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    {# Pagination #}
 | 
				
			||||||
 | 
					    {% for item in site.sidebar %}
 | 
				
			||||||
 | 
					      {% if item.title == page.title %}
 | 
				
			||||||
 | 
					        {% set current = site.sidebar.index(item) %}
 | 
				
			||||||
 | 
					        {% set last = site.sidebar.index(site.sidebar[-1]) %}
 | 
				
			||||||
 | 
					        {% if current == 0 %}
 | 
				
			||||||
 | 
					          {# If curret page is a first page #}
 | 
				
			||||||
 | 
					            <a href="{{ site.sidebar[current+1].url }}">
 | 
				
			||||||
 | 
					              {{ site.sidebar[current+1].title }} --></a>
 | 
				
			||||||
 | 
					        {% elif current == last %}
 | 
				
			||||||
 | 
					          {# If curret page is a last page #}
 | 
				
			||||||
 | 
					            <a href="{{ site.sidebar[current-1].url }}">
 | 
				
			||||||
 | 
					              <-- {{ site.sidebar[current-1].title }}</a></div>
 | 
				
			||||||
 | 
					        {% else %}
 | 
				
			||||||
 | 
					            <a href="{{ site.sidebar[current-1].url }}">
 | 
				
			||||||
 | 
					              <-- {{ site.sidebar[current-1].title }}</a>
 | 
				
			||||||
 | 
					            <a href="{{ site.sidebar[current+1].url }}">
 | 
				
			||||||
 | 
					              {{ site.sidebar[current+1].title }} --></a>
 | 
				
			||||||
 | 
					        {% endif %}
 | 
				
			||||||
 | 
					      {% endif %}
 | 
				
			||||||
 | 
					    {% endfor %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**content/index.rst**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :title: Homepage
 | 
				
			||||||
 | 
					    :date: 1907-01-01
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    =======
 | 
				
			||||||
 | 
					    Welcome
 | 
				
			||||||
 | 
					    =======
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Hello, there!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Page example e.g. **content/first.rst**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :title: First
 | 
				
			||||||
 | 
					    :date: 1907-01-01
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    =====
 | 
				
			||||||
 | 
					    First
 | 
				
			||||||
 | 
					    =====
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    First page.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. note::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Page ``:title:`` and sidebar's ``title`` in **settings.toml** item must be
 | 
				
			||||||
 | 
					    the same. Otherwise pagination not be displayed.
 | 
				
			||||||
							
								
								
									
										52
									
								
								docs/content/index.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/content/index.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					:title: reStructuredWeb
 | 
				
			||||||
 | 
					:date: 2022-09-22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					|rSW|
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					v0.1.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					reStructuredWeb (rSW, reSW or rstW) — is a highly customizable static site
 | 
				
			||||||
 | 
					generator for the *re*\ **Structured**\ *Text* markup language.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Why another site generator?
 | 
				
			||||||
 | 
					===========================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Hundreds of static site generators have been written with varying degrees of
 | 
				
			||||||
 | 
					shittyness. Here are just some of the shortcomings of existing solutions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Bad customization. If the task requires something that is not provided for
 | 
				
			||||||
 | 
					  in regular themes, then you have to strain. Editing a theme is an adventure.
 | 
				
			||||||
 | 
					* Some of the solutions are extremely primitive and only fit narrow cases.
 | 
				
			||||||
 | 
					  Others, on the contrary, are overcomplicated.
 | 
				
			||||||
 | 
					* There are very few generators with reStructuredText support.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Why is reStructuredWeb better?
 | 
				
			||||||
 | 
					==============================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* **Small codebase**. About ~300 lines in total.
 | 
				
			||||||
 | 
					* **Doesn't depend on the presentation layer**. rSW just takes data from
 | 
				
			||||||
 | 
					  files and allows you to insert it into templates.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					That's all. In fact, this is enough for a static site generator.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**rSW** is built on |Docutils|_ and |Jinja2|_.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. |rSW| image::
 | 
				
			||||||
 | 
					   /rsw/img/rsw.svg
 | 
				
			||||||
 | 
					   :alt: [rSW]
 | 
				
			||||||
 | 
					   :align: middle
 | 
				
			||||||
 | 
					   :height: 3em
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. |Docutils| image::
 | 
				
			||||||
 | 
					   /rsw/img/rst.png
 | 
				
			||||||
 | 
					   :alt: Docutils
 | 
				
			||||||
 | 
					   :align: middle
 | 
				
			||||||
 | 
					   :width: 7em
 | 
				
			||||||
 | 
					.. _Docutils: https://docutils.sourceforge.io/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. |Jinja2| image::
 | 
				
			||||||
 | 
					   /rsw/img/jinja.png
 | 
				
			||||||
 | 
					   :alt: Jinja2
 | 
				
			||||||
 | 
					   :align: middle
 | 
				
			||||||
 | 
					   :width: 3em
 | 
				
			||||||
 | 
					.. _Jinja2: https://jinja.palletsprojects.com/
 | 
				
			||||||
							
								
								
									
										48
									
								
								docs/content/install.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								docs/content/install.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					:title: Installation
 | 
				
			||||||
 | 
					:date: 2022-09-22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					Installation
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					From PyPI
 | 
				
			||||||
 | 
					=========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: shell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pip install reSW
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					From tarball
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. `Download`_ tarball (`alterntive link </rsw/downloads/reSW-0.1.2.tar.gz>`_)
 | 
				
			||||||
 | 
					   with prebuilt Python package.
 | 
				
			||||||
 | 
					2. Install via pip:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: shell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pip install ./reSW-0.1.2.tar.gz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					From Source
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. `Download`_ source or clone Git repo:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: shell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    git clone https://git.nxhs.cloud/ge/rSW.git && cd rSW
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2. Install build deps:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: shell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pip install --update build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					3. Build and install Python package:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: shell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    make
 | 
				
			||||||
 | 
					    make install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. _Download: https://git.nxhs.cloud/ge/rSW/releases
 | 
				
			||||||
							
								
								
									
										13
									
								
								docs/content/overview.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								docs/content/overview.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					:title: Overview
 | 
				
			||||||
 | 
					:date: 2022-09-22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					========
 | 
				
			||||||
 | 
					Overview
 | 
				
			||||||
 | 
					========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					On this page, I will list the important features of the application that you
 | 
				
			||||||
 | 
					may be looking for.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* You can create two types of pages: blog posts and standalone pages.
 | 
				
			||||||
 | 
					* Any page can use its own layout (template).
 | 
				
			||||||
 | 
					* You can pass arbitrary data to templates. See `Data Sources </rsw/data_sources.html>`_
 | 
				
			||||||
							
								
								
									
										70
									
								
								docs/content/quick_start.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								docs/content/quick_start.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
				
			|||||||
 | 
					:title: Quick Start
 | 
				
			||||||
 | 
					:date: 2022-09-22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					===========
 | 
				
			||||||
 | 
					Quick Start
 | 
				
			||||||
 | 
					===========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					After installation you must have these file structure::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ./
 | 
				
			||||||
 | 
					    ├── content/
 | 
				
			||||||
 | 
					    ├── layouts/
 | 
				
			||||||
 | 
					    ├── Makefile
 | 
				
			||||||
 | 
					    ├── settings.toml
 | 
				
			||||||
 | 
					    └── static/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Articles mst be placed into content/ dir and have .rst extension.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Also you can place article into subdirectory as following::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ./
 | 
				
			||||||
 | 
					    └── content/
 | 
				
			||||||
 | 
					        └── hello_world/
 | 
				
			||||||
 | 
					            └── index.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You need to create page template first.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Create **layouts/template.jinja2** with content:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: jinja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!DOCTYPE html>
 | 
				
			||||||
 | 
					    <html lang="en">
 | 
				
			||||||
 | 
					      <head>
 | 
				
			||||||
 | 
					        <meta charset="utf-8">
 | 
				
			||||||
 | 
					        <title>{{ page.title }}</title>
 | 
				
			||||||
 | 
					      </head>
 | 
				
			||||||
 | 
					    <body>
 | 
				
			||||||
 | 
					       {{ html | safe }}
 | 
				
			||||||
 | 
					    </body>
 | 
				
			||||||
 | 
					    </html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Now create first page **content/index.rst**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :title: Hello, World!
 | 
				
			||||||
 | 
					    :date: 1970-01-01
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    =============
 | 
				
			||||||
 | 
					    Hello, World!
 | 
				
			||||||
 | 
					    =============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Hello, there! This is my first site built with *re*\ **Structured**\ *Web*!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Build your site with command:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: shell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    rsw build
 | 
				
			||||||
 | 
					    # OR
 | 
				
			||||||
 | 
					    make
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build/ directory will be created. Run local HTTP-server to view site:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: text
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    make serve
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Local server will be started at `http://127.0.0.1:8080/ <http://127.0.0.1:8080/>`_.
 | 
				
			||||||
							
								
								
									
										47
									
								
								docs/content/rst_extensions.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								docs/content/rst_extensions.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
				
			|||||||
 | 
					:title: rST Extensions
 | 
				
			||||||
 | 
					:date: 2022-09-29
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					===========================
 | 
				
			||||||
 | 
					reStructuredText Extensions
 | 
				
			||||||
 | 
					===========================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					rSW includes support for a few directives and roles that are not part of
 | 
				
			||||||
 | 
					Docutils.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					code-block
 | 
				
			||||||
 | 
					==========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: text
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code-block:: python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if __name__ == "__main__":
 | 
				
			||||||
 | 
					            # [initialize]
 | 
				
			||||||
 | 
					            app.start(":8000")
 | 
				
			||||||
 | 
					            # [initialize]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Result:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if __name__ == "__main__":
 | 
				
			||||||
 | 
					        # [initialize]
 | 
				
			||||||
 | 
					        app.start(":8000")
 | 
				
			||||||
 | 
					        # [initialize]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TODO
 | 
				
			||||||
 | 
					====
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In plan:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Fully featured ``code-block`` (as in `Sphinx`_)
 | 
				
			||||||
 | 
					* Deleted text (`<del>`)
 | 
				
			||||||
 | 
					* Inserted text (`<ins>`)
 | 
				
			||||||
 | 
					* Keystrokes mark (``:kbd:``)
 | 
				
			||||||
 | 
					* Spoilers (`<details>`, `<summary>`)
 | 
				
			||||||
 | 
					* Table of Contents (``toctree``)
 | 
				
			||||||
 | 
					* Abbreviations (``:abbr:``)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. _Sphinx: https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#directive-code-block
 | 
				
			||||||
							
								
								
									
										130
									
								
								docs/content/variables.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								docs/content/variables.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,130 @@
 | 
				
			|||||||
 | 
					:title: Variables
 | 
				
			||||||
 | 
					:date: 2022-09-22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					=========
 | 
				
			||||||
 | 
					Variables
 | 
				
			||||||
 | 
					=========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The following variables are passed to the template. Еach variable corresponds
 | 
				
			||||||
 | 
					to a data source, which is described in the previous article.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					``page``: dict
 | 
				
			||||||
 | 
					    Dictonary with article attributes. Data structure example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code-block:: python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        page = {
 | 
				
			||||||
 | 
					            'title': 'Variables',
 | 
				
			||||||
 | 
					            'date': '2022-09-22',
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Note that the ``type`` and ``template`` keys are missing. These keys are
 | 
				
			||||||
 | 
					    added implicitly. The ``page`` dict will always contain only the data
 | 
				
			||||||
 | 
					    specified directly in the article.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Here ``type`` and ``template`` fallbacks to defaults:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code-block:: text
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        'template': `template.jinja2`
 | 
				
			||||||
 | 
					        'type': 'page',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Usage example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code-block:: jinja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <h1>{{ page.title }}</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					``site``: dict
 | 
				
			||||||
 | 
					    Dict of values from ``site`` section from **settings.toml**. The structure
 | 
				
			||||||
 | 
					    and data types can be arbitrary.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    This data can be used to add custom elements common to the entire site.
 | 
				
			||||||
 | 
					    Below is an example of adding a list of links.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code-block:: toml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [site]
 | 
				
			||||||
 | 
					        title = 'My awesome site'
 | 
				
			||||||
 | 
					        description = 'Awesome site about awesome things'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            [[site.links]]
 | 
				
			||||||
 | 
					            title = 'GitHub'
 | 
				
			||||||
 | 
					            url = 'https://github.com/username'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            [[site.links]]
 | 
				
			||||||
 | 
					            title = 'Twitter'
 | 
				
			||||||
 | 
					            url = 'https://twitter.com/username'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    This data is serialized into a dictionary with the following structure:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code-block:: python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        site = {
 | 
				
			||||||
 | 
					            'title': 'My awesome site',
 | 
				
			||||||
 | 
					            'description': 'Awesome site about awesome things',
 | 
				
			||||||
 | 
					            'links': [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    'title': 'GitHub',
 | 
				
			||||||
 | 
					                    'url': 'https://github.com/username',
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    'title': 'Twitter',
 | 
				
			||||||
 | 
					                    'url': 'https://twitter.com/username',
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    In template:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code-block:: jinja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        {% for link in site.links %}
 | 
				
			||||||
 | 
					            <a href="{{ link.url }}">{{ link.title }} </a>
 | 
				
			||||||
 | 
					        {% endfor %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					``aggr``: dict
 | 
				
			||||||
 | 
					    This dictonary contains list of posts and list of pages. The elements of
 | 
				
			||||||
 | 
					    each list consist of dictionaries with strings.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Structure of the ``aggr`` dictonary:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code-block:: python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        aggr = {
 | 
				
			||||||
 | 
					            'posts': [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    'title': 'Hello, World!',
 | 
				
			||||||
 | 
					                    'date': '1970-01-01',
 | 
				
			||||||
 | 
					                    'type': 'post'
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    'title': 'reStructuredText Example',
 | 
				
			||||||
 | 
					                    'date': '1970-01-01',
 | 
				
			||||||
 | 
					                    'type': 'post'
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            'pages': [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    'title': 'Variables',
 | 
				
			||||||
 | 
					                    'date': '2022-09-22'
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    These lists are applicable, for example, to display a list of posts on the
 | 
				
			||||||
 | 
					    blog's main page.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					``pygments_theme``: str
 | 
				
			||||||
 | 
					    A string containing the name of the Pygments theme. In **settings.toml**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code-block:: toml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [pygments]
 | 
				
			||||||
 | 
					        theme = 'rrt'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    The default theme is ``default``. An example of usage in a template:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code-block:: jinja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <link rel="stylesheet" href="/css/pygments/{{ pygments_theme }}.css">
 | 
				
			||||||
							
								
								
									
										68
									
								
								docs/layouts/template.jinja2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								docs/layouts/template.jinja2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html lang="en" dir="ltr">
 | 
				
			||||||
 | 
					  <head>
 | 
				
			||||||
 | 
					    <meta charset="utf-8">
 | 
				
			||||||
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
				
			||||||
 | 
					    <link rel="stylesheet" href="{{ site.base_url }}/css/pygments/{{ pygments_theme }}.css">
 | 
				
			||||||
 | 
					    <link rel="stylesheet" href="{{ site.base_url }}/css/style.css">
 | 
				
			||||||
 | 
					    <title>{{ page.title }} | {{ site.title }}</title>
 | 
				
			||||||
 | 
					  </head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div class="flex">
 | 
				
			||||||
 | 
					<div class="col-md-2 sidebar">
 | 
				
			||||||
 | 
					  <p>
 | 
				
			||||||
 | 
					  {% for link in site.links %}
 | 
				
			||||||
 | 
					    <strong><a href="{{ link.url }}" style="text-decoration: none">
 | 
				
			||||||
 | 
					      {{ link.title }} </a></strong>
 | 
				
			||||||
 | 
					  {% endfor %}
 | 
				
			||||||
 | 
					  </p>
 | 
				
			||||||
 | 
					  <strong>Contents</strong>
 | 
				
			||||||
 | 
					  <ul id="contents">
 | 
				
			||||||
 | 
					    {% for item in site.sidebar %}
 | 
				
			||||||
 | 
					      <li>
 | 
				
			||||||
 | 
					        <a href="{{ item.url }}">{{ item.title }}</a>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    {% endfor %}
 | 
				
			||||||
 | 
					  </ul>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div class="col-md-6">
 | 
				
			||||||
 | 
					  <article>
 | 
				
			||||||
 | 
					    {{ html | safe }}
 | 
				
			||||||
 | 
					  </article>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="pagination" style="margin: 2rem 0;">
 | 
				
			||||||
 | 
					  {% for item in site.sidebar %}
 | 
				
			||||||
 | 
					    {% if item.title == page.title %}
 | 
				
			||||||
 | 
					      {% set current = site.sidebar.index(item) %}
 | 
				
			||||||
 | 
					      {% set last = site.sidebar.index(site.sidebar[-1]) %}
 | 
				
			||||||
 | 
					      {% if current == 0 %}
 | 
				
			||||||
 | 
					        <div class="flex" style="justify-content: space-between">
 | 
				
			||||||
 | 
					          <div></div>
 | 
				
			||||||
 | 
					          <div><a href="{{ site.sidebar[current+1].url }}">
 | 
				
			||||||
 | 
					            {{ site.sidebar[current+1].title }} --></a></div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      {% elif current == last %}
 | 
				
			||||||
 | 
					        <div class="flex" style="justify-content: space-between">
 | 
				
			||||||
 | 
					          <div><a href="{{ site.sidebar[current-1].url }}">
 | 
				
			||||||
 | 
					            <-- {{ site.sidebar[current-1].title }}</a></div>
 | 
				
			||||||
 | 
					          <div></div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      {% else %}
 | 
				
			||||||
 | 
					        <div class="flex" style="justify-content: space-between">
 | 
				
			||||||
 | 
					          <div><a href="{{ site.sidebar[current-1].url }}">
 | 
				
			||||||
 | 
					            <-- {{ site.sidebar[current-1].title }}</a></div>
 | 
				
			||||||
 | 
					          <div><a href="{{ site.sidebar[current+1].url }}">
 | 
				
			||||||
 | 
					            {{ site.sidebar[current+1].title }} --></a></div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      {% endif %}
 | 
				
			||||||
 | 
					    {% endif %}
 | 
				
			||||||
 | 
					  {% endfor %}
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										58
									
								
								docs/settings.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								docs/settings.toml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					[dirs]
 | 
				
			||||||
 | 
					build_dir = 'build/rsw'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[pygments]
 | 
				
			||||||
 | 
					theme = 'vs'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[site]
 | 
				
			||||||
 | 
					base_url = '/rsw'
 | 
				
			||||||
 | 
					title = 'Highly customizable static site generator for reStructuredText markup'
 | 
				
			||||||
 | 
					name = '[rSW]'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.links]]
 | 
				
			||||||
 | 
					    title = '[Home]'
 | 
				
			||||||
 | 
					    url = '/rsw'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.links]]
 | 
				
			||||||
 | 
					    title = '[Docs]'
 | 
				
			||||||
 | 
					    url = '/rsw/overview.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.links]]
 | 
				
			||||||
 | 
					    title = '[Download]'
 | 
				
			||||||
 | 
					    url = 'https://git.nxhs.cloud/ge/rSW'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.sidebar]]
 | 
				
			||||||
 | 
					    title = 'Overview'
 | 
				
			||||||
 | 
					    url = '/rsw/overview.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.sidebar]]
 | 
				
			||||||
 | 
					    title = 'Installation'
 | 
				
			||||||
 | 
					    url = '/rsw/install.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.sidebar]]
 | 
				
			||||||
 | 
					    title = 'Quick Start'
 | 
				
			||||||
 | 
					    url = '/rsw/quick_start.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.sidebar]]
 | 
				
			||||||
 | 
					    title = 'Data Sources'
 | 
				
			||||||
 | 
					    url = '/rsw/data_sources.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.sidebar]]
 | 
				
			||||||
 | 
					    title = 'Variables'
 | 
				
			||||||
 | 
					    url = '/rsw/variables.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.sidebar]]
 | 
				
			||||||
 | 
					    title = 'Configuration'
 | 
				
			||||||
 | 
					    url = '/rsw/configuration.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.sidebar]]
 | 
				
			||||||
 | 
					    title = 'Command Line Interface'
 | 
				
			||||||
 | 
					    url = '/rsw/cli.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.sidebar]]
 | 
				
			||||||
 | 
					    title = 'rST Extensions'
 | 
				
			||||||
 | 
					    url = '/rsw/rst_extensions.html'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [[site.sidebar]]
 | 
				
			||||||
 | 
					    title = 'Examples'
 | 
				
			||||||
 | 
					    url = '/rsw/examples.html'
 | 
				
			||||||
							
								
								
									
										43
									
								
								docs/static/css/pygments/vs.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								docs/static/css/pygments/vs.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
				
			|||||||
 | 
					pre { line-height: 125%; }
 | 
				
			||||||
 | 
					td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
 | 
				
			||||||
 | 
					span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
 | 
				
			||||||
 | 
					td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
 | 
				
			||||||
 | 
					span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
 | 
				
			||||||
 | 
					.highlight .hll { background-color: #ffffcc }
 | 
				
			||||||
 | 
					.highlight { background: #ffffff; }
 | 
				
			||||||
 | 
					.highlight .c { color: #008000 } /* Comment */
 | 
				
			||||||
 | 
					.highlight .err { border: 1px solid #FF0000 } /* Error */
 | 
				
			||||||
 | 
					.highlight .k { color: #0000ff } /* Keyword */
 | 
				
			||||||
 | 
					.highlight .ch { color: #008000 } /* Comment.Hashbang */
 | 
				
			||||||
 | 
					.highlight .cm { color: #008000 } /* Comment.Multiline */
 | 
				
			||||||
 | 
					.highlight .cp { color: #0000ff } /* Comment.Preproc */
 | 
				
			||||||
 | 
					.highlight .cpf { color: #008000 } /* Comment.PreprocFile */
 | 
				
			||||||
 | 
					.highlight .c1 { color: #008000 } /* Comment.Single */
 | 
				
			||||||
 | 
					.highlight .cs { color: #008000 } /* Comment.Special */
 | 
				
			||||||
 | 
					.highlight .ge { font-style: italic } /* Generic.Emph */
 | 
				
			||||||
 | 
					.highlight .gh { font-weight: bold } /* Generic.Heading */
 | 
				
			||||||
 | 
					.highlight .gp { font-weight: bold } /* Generic.Prompt */
 | 
				
			||||||
 | 
					.highlight .gs { font-weight: bold } /* Generic.Strong */
 | 
				
			||||||
 | 
					.highlight .gu { font-weight: bold } /* Generic.Subheading */
 | 
				
			||||||
 | 
					.highlight .kc { color: #0000ff } /* Keyword.Constant */
 | 
				
			||||||
 | 
					.highlight .kd { color: #0000ff } /* Keyword.Declaration */
 | 
				
			||||||
 | 
					.highlight .kn { color: #0000ff } /* Keyword.Namespace */
 | 
				
			||||||
 | 
					.highlight .kp { color: #0000ff } /* Keyword.Pseudo */
 | 
				
			||||||
 | 
					.highlight .kr { color: #0000ff } /* Keyword.Reserved */
 | 
				
			||||||
 | 
					.highlight .kt { color: #2b91af } /* Keyword.Type */
 | 
				
			||||||
 | 
					.highlight .s { color: #a31515 } /* Literal.String */
 | 
				
			||||||
 | 
					.highlight .nc { color: #2b91af } /* Name.Class */
 | 
				
			||||||
 | 
					.highlight .ow { color: #0000ff } /* Operator.Word */
 | 
				
			||||||
 | 
					.highlight .sa { color: #a31515 } /* Literal.String.Affix */
 | 
				
			||||||
 | 
					.highlight .sb { color: #a31515 } /* Literal.String.Backtick */
 | 
				
			||||||
 | 
					.highlight .sc { color: #a31515 } /* Literal.String.Char */
 | 
				
			||||||
 | 
					.highlight .dl { color: #a31515 } /* Literal.String.Delimiter */
 | 
				
			||||||
 | 
					.highlight .sd { color: #a31515 } /* Literal.String.Doc */
 | 
				
			||||||
 | 
					.highlight .s2 { color: #a31515 } /* Literal.String.Double */
 | 
				
			||||||
 | 
					.highlight .se { color: #a31515 } /* Literal.String.Escape */
 | 
				
			||||||
 | 
					.highlight .sh { color: #a31515 } /* Literal.String.Heredoc */
 | 
				
			||||||
 | 
					.highlight .si { color: #a31515 } /* Literal.String.Interpol */
 | 
				
			||||||
 | 
					.highlight .sx { color: #a31515 } /* Literal.String.Other */
 | 
				
			||||||
 | 
					.highlight .sr { color: #a31515 } /* Literal.String.Regex */
 | 
				
			||||||
 | 
					.highlight .s1 { color: #a31515 } /* Literal.String.Single */
 | 
				
			||||||
 | 
					.highlight .ss { color: #a31515 } /* Literal.String.Symbol */
 | 
				
			||||||
							
								
								
									
										74
									
								
								docs/static/css/style.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								docs/static/css/style.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,74 @@
 | 
				
			|||||||
 | 
					body {
 | 
				
			||||||
 | 
					  font-family: 'Source Code Pro', monospace;
 | 
				
			||||||
 | 
					  line-height: 1.3;
 | 
				
			||||||
 | 
					  padding: 1rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					a, a:visited {
 | 
				
			||||||
 | 
					  color: #2003ee;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.flex {
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  flex-wrap: wrap;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.col-md-2 {
 | 
				
			||||||
 | 
					  width: 15%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.col-md-6 {
 | 
				
			||||||
 | 
					  width: 50%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					@media (max-width: 768px) {
 | 
				
			||||||
 | 
					  .flex {
 | 
				
			||||||
 | 
					    flex-direction: column
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  .col-md-2, .col-md-6 {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					pre {
 | 
				
			||||||
 | 
					  overflow-x: scroll;
 | 
				
			||||||
 | 
					  overflow-y: hidden;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.pre {
 | 
				
			||||||
 | 
					  font-size: 85%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.highlight pre {
 | 
				
			||||||
 | 
					  padding: 1rem;
 | 
				
			||||||
 | 
					  border: 1px solid #000;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					span.docutils.literal {
 | 
				
			||||||
 | 
					  padding: 0 4px 2px 4px;
 | 
				
			||||||
 | 
					  color: #a31515;
 | 
				
			||||||
 | 
					  font-size: 80%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					span.docutils.literal span.pre {
 | 
				
			||||||
 | 
					  font-size: 100%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					dt {
 | 
				
			||||||
 | 
					  font-weight: bold;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					table, th, td {
 | 
				
			||||||
 | 
					  border: 1px solid;
 | 
				
			||||||
 | 
					  border-collapse: collapse;
 | 
				
			||||||
 | 
					  border-color: #000;
 | 
				
			||||||
 | 
					  padding: 0 8px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					th {
 | 
				
			||||||
 | 
					  font-weight: 600;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					td p {
 | 
				
			||||||
 | 
					  margin: .5rem 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					hr {
 | 
				
			||||||
 | 
					    color: #d0d7de;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.admonition {
 | 
				
			||||||
 | 
					  padding: 0 1rem;
 | 
				
			||||||
 | 
					  margin: .5rem 0;
 | 
				
			||||||
 | 
					  border-left: 4px solid #000;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.admonition-title {
 | 
				
			||||||
 | 
					  font-weight: bold;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.sidebar {
 | 
				
			||||||
 | 
					  margin-right: 1rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								docs/static/img/jinja.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/static/img/jinja.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 23 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								docs/static/img/rst.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/static/img/rst.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1.0 KiB  | 
							
								
								
									
										20
									
								
								docs/static/img/rsw.svg
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								docs/static/img/rsw.svg
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
		 After Width: | Height: | Size: 58 KiB  | 
		Reference in New Issue
	
	Block a user