nikola.plugins.compile.rest package¶
Submodules¶
nikola.plugins.compile.rest.chart module¶
Chart directive for reSTructuredText.
-
class
nikola.plugins.compile.rest.chart.
Chart
(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)¶ Bases: :class:`docutils.parsers.rst.Directive`
reStructuredText extension for inserting charts as SVG.
- Usage:
-
has_content
= True¶
-
option_spec
= {'box_mode': <function unchanged>, 'classes': <function unchanged>, 'css': <function unchanged>, 'data_file': <function unchanged>, 'defs': <function unchanged>, 'disable_xml_declaration': <function unchanged>, 'dots_size': <function unchanged>, 'dynamic_print_values': <function unchanged>, 'explicit_size': <function unchanged>, 'fill': <function unchanged>, 'force_uri_protocol': <function unchanged>, 'half_pie': <function unchanged>, 'height': <function unchanged>, 'human_readable': <function unchanged>, 'include_x_axis': <function unchanged>, 'inner_radius': <function unchanged>, 'interpolate': <function unchanged>, 'interpolation_parameters': <function unchanged>, 'interpolation_precision': <function unchanged>, 'inverse_y_axis': <function unchanged>, 'js': <function unchanged>, 'legend_at_bottom': <function unchanged>, 'legend_at_bottom_columns': <function unchanged>, 'legend_box_size': <function unchanged>, 'logarithmic': <function unchanged>, 'margin': <function unchanged>, 'margin_bottom': <function unchanged>, 'margin_left': <function unchanged>, 'margin_right': <function unchanged>, 'margin_top': <function unchanged>, 'max_scale': <function unchanged>, 'min_scale': <function unchanged>, 'missing_value_fill_truncation': <function unchanged>, 'no_data_text': <function unchanged>, 'no_prefix': <function unchanged>, 'order_min': <function unchanged>, 'pretty_print': <function unchanged>, 'print_labels': <function unchanged>, 'print_values': <function unchanged>, 'print_values_position': <function unchanged>, 'print_zeroes': <function unchanged>, 'range': <function unchanged>, 'rounded_bars': <function unchanged>, 'secondary_range': <function unchanged>, 'show_dots': <function unchanged>, 'show_legend': <function unchanged>, 'show_minor_x_labels': <function unchanged>, 'show_minor_y_labels': <function unchanged>, 'show_only_major_dots': <function unchanged>, 'show_x_guides': <function unchanged>, 'show_x_labels': <function unchanged>, 'show_y_guides': <function unchanged>, 'show_y_labels': <function unchanged>, 'spacing': <function unchanged>, 'stack_from_top': <function unchanged>, 'strict': <function unchanged>, 'stroke': <function unchanged>, 'stroke_style': <function unchanged>, 'style': <function unchanged>, 'title': <function unchanged>, 'tooltip_border_radius': <function unchanged>, 'truncate_label': <function unchanged>, 'truncate_legend': <function unchanged>, 'value_formatter': <function unchanged>, 'width': <function unchanged>, 'x_label_rotation': <function unchanged>, 'x_labels': <function unchanged>, 'x_labels_major': <function unchanged>, 'x_labels_major_count': <function unchanged>, 'x_labels_major_every': <function unchanged>, 'x_title': <function unchanged>, 'x_value_formatter': <function unchanged>, 'xrange': <function unchanged>, 'y_label_rotation': <function unchanged>, 'y_labels': <function unchanged>, 'y_labels_major': <function unchanged>, 'y_labels_major_count': <function unchanged>, 'y_labels_major_every': <function unchanged>, 'y_title': <function unchanged>, 'zero': <function unchanged>}¶
-
required_arguments
= 1¶
-
run
()¶ Run the directive.
-
class
nikola.plugins.compile.rest.chart.
Plugin
¶ Bases: :class:`nikola.plugin_categories.RestExtension`
Plugin for chart role.
-
name
= 'rest_chart'¶
-
set_site
(site)¶ Set Nikola site.
-
nikola.plugins.compile.rest.doc module¶
reST role for linking to other documents.
-
class
nikola.plugins.compile.rest.doc.
Plugin
¶ Bases: :class:`nikola.plugin_categories.RestExtension`
Plugin for doc role.
-
name
= 'rest_doc'¶
-
set_site
(site)¶ Set Nikola site.
-
-
nikola.plugins.compile.rest.doc.
doc_role
(name, rawtext, text, lineno, inliner, options={}, content=[])¶ Handle the doc role.
-
nikola.plugins.compile.rest.doc.
doc_shortcode
(*args, **kwargs)¶ Implement the doc shortcode.
-
nikola.plugins.compile.rest.doc.
make_link_node
(rawtext, text, url, options)¶ Make a reST link node.
nikola.plugins.compile.rest.gist module¶
Gist directive for reStructuredText.
-
class
nikola.plugins.compile.rest.gist.
GitHubGist
(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)¶ Bases: :class:`docutils.parsers.rst.Directive`
Embed GitHub Gist.
Usage:
or
-
final_argument_whitespace
= True¶
-
get_raw_gist
(gistID)¶ Get raw gist text.
-
get_raw_gist_with_filename
(gistID, filename)¶ Get raw gist text for a filename.
-
has_content
= False¶
-
option_spec
= {'file': <function unchanged>}¶
-
optional_arguments
= 1¶
-
required_arguments
= 1¶
-
run
()¶ Run the gist directive.
-
-
class
nikola.plugins.compile.rest.gist.
Plugin
¶ Bases: :class:`nikola.plugin_categories.RestExtension`
Plugin for gist directive.
-
name
= 'rest_gist'¶
-
set_site
(site)¶ Set Nikola site.
-
nikola.plugins.compile.rest.listing module¶
Define and register a listing directive using the existing CodeBlock.
-
class
nikola.plugins.compile.rest.listing.
CodeBlock
(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)¶ Bases: :class:`docutils.parsers.rst.Directive`
Parse and mark up content of a code block.
-
has_content
= True¶
-
option_spec
= {'class': <function class_option>, 'linenos': <function unchanged>, 'name': <function unchanged>, 'number-lines': <function unchanged>, 'tab-width': <function nonnegative_int>}¶
-
optional_arguments
= 1¶
-
run
()¶ Run code block directive.
-
-
class
nikola.plugins.compile.rest.listing.
Listing
(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)¶ Bases: :class:`docutils.parsers.rst.directives.misc.Include`
Create a highlighted block of code from a file in listings/.
Usage:
-
assert_has_content
()¶ Override check from superclass with nothing.
Listing has no content, override check from superclass.
-
get_code_from_file
(data)¶ Create CodeBlock nodes from file object content.
-
has_content
= False¶
-
option_spec
= {'class': <function class_option>, 'code': <function unchanged>, 'encoding': <function encoding>, 'end-before': <function unchanged_required>, 'end-line': <class 'int'>, 'linenos': <function unchanged>, 'literal': <function flag>, 'name': <function unchanged>, 'number-lines': <function unchanged>, 'start-after': <function unchanged_required>, 'start-line': <class 'int'>, 'tab-width': <class 'int'>}¶
-
optional_arguments
= 1¶
-
required_arguments
= 1¶
-
run
()¶ Run listing directive.
-
-
class
nikola.plugins.compile.rest.listing.
Plugin
¶ Bases: :class:`nikola.plugin_categories.RestExtension`
Plugin for listing directive.
-
name
= 'rest_listing'¶
-
set_site
(site)¶ Set Nikola site.
-
nikola.plugins.compile.rest.media module¶
Media directive for reStructuredText.
-
class
nikola.plugins.compile.rest.media.
Media
(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)¶ Bases: :class:`docutils.parsers.rst.Directive`
reST extension for inserting any sort of media using micawber.
-
has_content
= False¶
-
optional_arguments
= 999¶
-
required_arguments
= 1¶
-
run
()¶ Run media directive.
-
-
class
nikola.plugins.compile.rest.media.
Plugin
¶ Bases: :class:`nikola.plugin_categories.RestExtension`
Plugin for reST media directive.
-
name
= 'rest_media'¶
-
set_site
(site)¶ Set Nikola site.
-
nikola.plugins.compile.rest.post_list module¶
Post list directive for reStructuredText.
-
class
nikola.plugins.compile.rest.post_list.
Plugin
¶ Bases: :class:`nikola.plugin_categories.RestExtension`
Plugin for reST post-list directive.
-
name
= 'rest_post_list'¶
-
set_site
(site)¶ Set Nikola site.
-
-
class
nikola.plugins.compile.rest.post_list.
PostListDirective
(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)¶ Bases: :class:`docutils.parsers.rst.Directive`
Provide a reStructuredText directive to create a list of posts.
-
option_spec
= {'categories': <function unchanged>, 'date': <function unchanged>, 'id': <function unchanged>, 'lang': <function unchanged>, 'post_type': <function unchanged>, 'require_all_tags': <function flag>, 'reverse': <function flag>, 'sections': <function unchanged>, 'slugs': <function unchanged>, 'sort': <function unchanged>, 'start': <class 'int'>, 'stop': <class 'int'>, 'tags': <function unchanged>, 'template': <function path>, 'type': <function unchanged>}¶
-
run
()¶ Run post-list directive.
-
nikola.plugins.compile.rest.slides module¶
nikola.plugins.compile.rest.soundcloud module¶
SoundCloud directive for reStructuredText.
-
class
nikola.plugins.compile.rest.soundcloud.
Plugin
¶ Bases: :class:`nikola.plugin_categories.RestExtension`
Plugin for soundclound directive.
-
name
= 'rest_soundcloud'¶
-
set_site
(site)¶ Set Nikola site.
-
-
class
nikola.plugins.compile.rest.soundcloud.
SoundCloud
(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)¶ Bases: :class:`docutils.parsers.rst.Directive`
reST extension for inserting SoundCloud embedded music.
- Usage:
-
check_content
()¶ Emit a deprecation warning if there is content.
-
has_content
= True¶
-
option_spec
= {'align': <function _align_choice>, 'height': <function positive_int>, 'width': <function positive_int>}¶
-
preslug
= 'tracks'¶
-
required_arguments
= 1¶
-
run
()¶ Run the soundcloud directive.
-
class
nikola.plugins.compile.rest.soundcloud.
SoundCloudPlaylist
(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)¶ Bases: :class:`nikola.plugins.compile.rest.soundcloud.SoundCloud`
reST directive for SoundCloud playlists.
-
preslug
= 'playlists'¶
-
nikola.plugins.compile.rest.thumbnail module¶
Thumbnail directive for reStructuredText.
-
class
nikola.plugins.compile.rest.thumbnail.
Plugin
¶ Bases: :class:`nikola.plugin_categories.RestExtension`
Plugin for thumbnail directive.
-
name
= 'rest_thumbnail'¶
-
set_site
(site)¶ Set Nikola site.
-
-
class
nikola.plugins.compile.rest.thumbnail.
Thumbnail
(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)¶ Bases: :class:`docutils.parsers.rst.directives.images.Figure`
Thumbnail directive for reST.
-
align
()¶ Return thumbnail alignment.
-
figwidth_value
()¶ Return figure width.
-
has_content
= True¶
-
option_spec
= {'align': <function Image.align>, 'alt': <function unchanged>, 'class': <function class_option>, 'figclass': <function class_option>, 'figwidth': <function Thumbnail.figwidth_value>, 'height': <function length_or_unitless>, 'name': <function unchanged>, 'scale': <function percentage>, 'target': <function unchanged_required>, 'width': <function length_or_percentage_or_unitless>}¶
-
run
()¶ Run the thumbnail directive.
-
nikola.plugins.compile.rest.vimeo module¶
Vimeo directive for reStructuredText.
-
class
nikola.plugins.compile.rest.vimeo.
Plugin
¶ Bases: :class:`nikola.plugin_categories.RestExtension`
Plugin for vimeo reST directive.
-
name
= 'rest_vimeo'¶
-
set_site
(site)¶ Set Nikola site.
-
-
class
nikola.plugins.compile.rest.vimeo.
Vimeo
(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)¶ Bases: :class:`docutils.parsers.rst.Directive`
reST extension for inserting vimeo embedded videos.
- Usage:
-
check_content
()¶ Check if content exists.
-
check_modules
()¶ Check modules.
-
has_content
= True¶
-
option_spec
= {'align': <function _align_choice>, 'height': <function positive_int>, 'width': <function positive_int>}¶
-
request_size
= True¶
-
required_arguments
= 1¶
-
run
()¶ Run the vimeo directive.
-
set_video_size
()¶ Set video size.
nikola.plugins.compile.rest.youtube module¶
YouTube directive for reStructuredText.
-
class
nikola.plugins.compile.rest.youtube.
Plugin
¶ Bases: :class:`nikola.plugin_categories.RestExtension`
Plugin for the youtube directive.
-
name
= 'rest_youtube'¶
-
set_site
(site)¶ Set Nikola site.
-
-
class
nikola.plugins.compile.rest.youtube.
Youtube
(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)¶ Bases: :class:`docutils.parsers.rst.Directive`
reST extension for inserting youtube embedded videos.
- Usage:
-
check_content
()¶ Check if content exists.
-
has_content
= True¶
-
option_spec
= {'align': <function _align_choice>, 'height': <function unchanged>, 'width': <function unchanged>}¶
-
required_arguments
= 1¶
-
run
()¶ Run the youtube directive.
Module contents¶
reStructuredText compiler for Nikola.
-
class
nikola.plugins.compile.rest.
CompileRest
¶ Bases: :class:`nikola.plugin_categories.PageCompiler`
Compile reStructuredText into HTML.
-
compile
(source, dest, is_two_file=True, post=None, lang=None)¶ Compile the source file into HTML and save as dest.
-
compile_string
(data, source_path=None, is_two_file=True, post=None, lang=None)¶ Compile reST into HTML strings.
-
create_post
(path, **kw)¶ Create a new post.
-
demote_headers
= True¶
-
friendly_name
= 'reStructuredText'¶
-
logger
= None¶
-
metadata_conditions
= [(<MetaCondition.config_bool: 1>, 'USE_REST_DOCINFO_METADATA')]¶
-
name
= 'rest'¶
-
read_metadata
(post, lang=None)¶ Read the metadata from a post, and return a metadata dict.
-
set_site
(site)¶ Set Nikola site.
-
supports_metadata
= True¶
-
-
class
nikola.plugins.compile.rest.
NikolaReader
(*args, **kwargs)¶ Bases: :class:`docutils.readers.standalone.Reader`
Nikola-specific docutils reader.
-
config_section
= 'nikola'¶
-
get_transforms
()¶ Get docutils transforms.
-
new_document
()¶ Create and return a new empty document tree (root node).
-
-
class
nikola.plugins.compile.rest.
RemoveDocinfo
(document, startnode=None)¶ Bases: :class:`docutils.transforms.Transform`
Remove docinfo nodes.
-
apply
()¶ Remove docinfo nodes.
-
default_priority
= 870¶
-
-
nikola.plugins.compile.rest.
add_node
(node, visit_function=None, depart_function=None)¶ Register a Docutils node class.
This function is completely optional. It is a same concept as Sphinx add_node function.
For example:
class Plugin(RestExtension): name = "rest_math" def set_site(self, site): self.site = site directives.register_directive('math', MathDirective) add_node(MathBlock, visit_Math, depart_Math) return super(Plugin, self).set_site(site) class MathDirective(Directive): def run(self): node = MathBlock() return [node] class Math(docutils.nodes.Element): pass def visit_Math(self, node): self.body.append(self.starttag(node, 'math')) def depart_Math(self, node): self.body.append('</math>')
For full example, you can refer to Microdata plugin
-
nikola.plugins.compile.rest.
get_observer
(settings)¶ Return an observer for the docutils Reporter.
-
nikola.plugins.compile.rest.
rst2html
(source, source_path=None, source_class=<class 'docutils.io.StringInput'>, destination_path=None, reader=None, parser=None, parser_name='restructuredtext', writer=None, writer_name='html5_polyglot', settings=None, settings_spec=None, settings_overrides=None, config_section='nikola', enable_exit_status=None, logger=None, l_add_ln=0, transforms=None)¶ Set up & run a
Publisher
, and return a dictionary of document parts.Dictionary keys are the names of parts, and values are Unicode strings; encoding is up to the client. For programmatic use with string I/O.
For encoded string input, be sure to set the ‘input_encoding’ setting to the desired encoding. Set it to ‘unicode’ for unencoded Unicode string input. Here’s how:
publish_parts(..., settings_overrides={'input_encoding': 'unicode'})
For a description of the parameters, see publish_programmatically.
- WARNING: reader should be None (or NikolaReader()) if you want Nikola to report
reStructuredText syntax errors.
-
nikola.plugins.compile.rest.
shortcode_role
(name, rawtext, text, lineno, inliner, options={}, content=[])¶ Return a shortcode role that passes through raw inline HTML.
-
nikola.plugins.compile.rest.
visit_literal
(self, node)¶ Output <code> for double backticks.