Define a case insensitive identifier to be used with
ifdef and ifndef directives. There is no value
associated with an identifier. (This option can be
used multiple times)
Example
-------
Consider the following rst snippet:
.. code-block:: rst
Title
=====
Some text and a target to `Title 2`_. **strong emphasis**:
* item 1
* item 2
Title 2
=======
.. parsed-literal::
Inline markup is supported, e.g. *emphasis*, **strong**, ``literal
text``,
_`hyperlink targets`, and `references `_
The html5 produced is clean and tidy:
.. code-block:: html
Title
Some text and a target to Title 2 . strong emphasis :
Stylesheets and Scripts
-----------------------
No stylesheets or scripts are spread over the html5 by default.
However stylesheets and javascripts URLs or paths can be included through ``stylesheet`` and ``script`` options:
.. parsed-literal::
$ rst2html5 example.rst \\
**--stylesheet** https://example.com/css/default.css \\
**--stylesheet-inline** css/simple.css \\
**--script** ``https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js``
**--script-defer** ``js/test1.js``
**--script-async** ``js/test2.js``
.. code-block:: html
...
Alternatively, you could specify stylesheets and scripts using directives in the rst:
.. code:: rst
.. stylesheet:: https://example.com/css/default.css
.. stylesheet:: css/simple.css
:inline:
.. script:: https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
.. script:: js/test1.js
:defer:
.. script:: js/test2.js
:async:
Title
=====
...
Html tag attributes can be included through ``html-tag-attr`` option:
.. parsed-literal::
$ rst2html5 **--html-tag-attr** 'lang="pt-BR"' example.rst
.. code-block:: html
...
Templates
---------
Custom html5 template via the :literal:`--template` option. Example:
.. parsed-literal::
$ template='
{head}
{body}
'
$ echo 'one line' > example.rst
$ rst2html5 **--template "$template"** example.rst
.. code-block:: html
one line
New Directives
--------------
:code:`rst2html5` provides some new directives: ``define``, ``undef``, ``ifdef`` and ``ifndef``,
similar to those used in C++.
They allow to conditionally include (or not) some rst snippets:
.. code-block:: rst
.. ifdef:: x
this line will be included if 'x' was previously defined
In case of you check two or more identifiers,
there must be an operator (``[and | or]``) defined:
.. code-block:: rst
.. ifdef:: x y z
:operator: or
This line will be included only if 'x', 'y' or 'z' is defined.
From rst2html5 1.9, you can include stylesheets and scripts via directives inside a reStructuredText text:
.. code-block:: rst
Just an ordinary paragraph.
.. stylesheet:: css/default.css
.. stylesheet:: https://pronus.io/css/standard.css
.. script:: http://code.jquery.com/jquery-latest.min.js
.. script:: slide.js
:defer:
.. script:: test/animations.js
:async:
Another paragraph
.. code-block:: html
Just an ordinary paragraph.
Another paragraph
There also is a :code:`template` directive. The usage is:
.. code-block:: rst
.. template:: filename
or
.. template::
template content here.
Links
=====
* `Documentation `_
* `Project page at Heptapod `_