rst2typst.writer module

Writer and related classes for docutils.

class rst2typst.writer.HanglingIndent

Bases: list[str]

Controller for line prefixes.

This class works to render Typst documents for correctly and human readability.

property indent: str

Retrieve hangling indent for subsequent lines of a block.

is_indent_only() bool
pop() str

Remove and return item at index (default last).

Raises IndexError if list is empty or index is out of range.

property prefix: str

Retrieve prefix with indent for first line of a block.

push(text: str)
class rst2typst.writer.TypstTranslator(document: document)

Bases: NodeVisitor

class WarningOnly

Bases: object

block_on_structural()
depart_Text(node: Text)
depart_address(node: Bibliographic)
depart_admonition(node: Element)
depart_attention(node: Element)
depart_author(node: Bibliographic)
depart_block_quote(node: block_quote)
depart_bullet_list(node: bullet_list)
depart_caption(node: caption)
depart_caution(node: Element)
depart_classifier(node: classifier)
depart_contact(node: Bibliographic)
depart_danger(node: Element)
depart_date(node: Bibliographic)
depart_definition(node: definition)
depart_definition_list(node: definition_list)
depart_definition_list_item(node: definition_list_item)
depart_description(node: description)
depart_docinfo(node: docinfo)
depart_document(node: document)
depart_emphasis(node: Inline)
depart_entry(node: entry)
depart_enumerated_list(node: enumerated_list)
depart_error(node: Element)
depart_field(node: field)
depart_field_body(node: field_body)
depart_field_list(node: field_list)
depart_field_name(node: field_name)
depart_figure(node: figure)
depart_footnote(node: footnote)
depart_footnote_reference(node: footnote_reference)
depart_hint(node: Element)
depart_important(node: Element)
depart_list_item(node: list_item)
depart_literal(node: literal)
depart_literal_block(node: literal_block)
depart_math(node: math)
depart_math_block(node: math)
depart_note(node: Element)
depart_option_list(node: option_list)
depart_option_list_item(node: option_list_item)
depart_organization(node: Bibliographic)
depart_paragraph(node: paragraph)
depart_reference(node: reference)
depart_revision(node: Bibliographic)
depart_row(node: tbody)
depart_section(node: section)
depart_status(node: Bibliographic)
depart_strong(node: Inline)
depart_table(node: table)
depart_tbody(node: tbody)
depart_term(node: term)
depart_tgroup(node: tgroup)
depart_thead(node: tbody)
depart_tip(node: Element)
depart_title(node: title)
depart_version(node: Bibliographic)
depart_warning(node: Element)
departt_row(node: row)
visit_Text(node: Text)
visit_address(node: Bibliographic)
visit_admonition(node: Element)
visit_attention(node: Element)
visit_author(node: Bibliographic)
visit_block_quote(node: block_quote)
visit_bullet_list(node: bullet_list)
visit_caption(node: caption)
visit_caution(node: Element)
visit_classifier(node: classifier)
visit_colspec(node: colspec)
visit_comment(node: comment)
visit_contact(node: Bibliographic)
visit_danger(node: Element)
visit_date(node: Bibliographic)
visit_definition(node: definition)
visit_definition_list(node: definition_list)
visit_definition_list_item(node: definition_list_item)
visit_description(node: description)
visit_docinfo(node: docinfo)
visit_document(node: document)
visit_emphasis(node: Inline)
visit_entry(node: entry)
visit_enumerated_list(node: enumerated_list)
visit_error(node: Element)
visit_field(node: field)
visit_field_body(node: field_body)
visit_field_list(node: field_list)
visit_field_name(node: field_name)
visit_figure(node: figure)
visit_footnote(node: footnote)
visit_footnote_reference(node: footnote_reference)
visit_hint(node: Element)
visit_image(node: image)
visit_important(node: Element)
visit_list_item(node: list_item)
visit_literal(node: literal)
visit_literal_block(node: literal_block)
visit_math(node: math)
visit_math_block(node: math)
visit_note(node: Element)
visit_option_group(node: option_group)
visit_option_list(node: option_list)
visit_option_list_item(node: option_list_item)
visit_organization(node: Bibliographic)
visit_paragraph(node: paragraph)
visit_raw(node: raw)
visit_reference(node: reference)
visit_revision(node: Bibliographic)
visit_section(node: section)
visit_status(node: Bibliographic)
visit_strong(node: Inline)
visit_table(node: table)
visit_tbody(node: tbody)
visit_term(node: term)
visit_tgroup(node: tgroup)
visit_thead(node: tbody)
visit_tip(node: Element)
visit_title(node: title)
visit_topic(node: topic)
visit_version(node: Bibliographic)
visit_warning(node: Element)
class rst2typst.writer.Writer

Bases: Writer

config_section = 'typst writer'

The name of the config file section specific to this component (lowercase, no brackets). Override in subclasses.

get_transforms()

Transforms required by this class. Override in subclasses.

settings_defaults = {'page_break_level': [], 'template': PosixPath('/home/runner/work/rst2typst/rst2typst/src/rst2typst/template.txt')}

A dictionary of defaults for settings not in settings_spec (internal settings, intended to be inaccessible by command-line and config file). Override in subclasses.

settings_spec = ('Typst Writer Options', None, (('Section level for page-break', ['--page-break-level'], {'metavar': '<int>(,<int>)', 'validator': <function validate_comma_separated_int>}), ('Template for render code.', ['--template'], {'metavar': '<filepath>'})))

Runtime settings specification. Override in subclasses.

Defines runtime settings and associated command-line options, as used by docutils.frontend.OptionParser. This is a tuple of:

  • Option group title (string or None which implies no group, just a list of single options).

  • Description (string or None).

  • A sequence of option tuples. Each consists of:

    • Help text (string)

    • List of option strings (e.g. ['-Q', '--quux']).

    • Dictionary of keyword arguments sent to the OptionParser/OptionGroup add_option method.

      Runtime setting names are derived implicitly from long option names (’–a-setting’ becomes settings.a_setting) or explicitly from the ‘dest’ keyword argument.

      Most settings will also have a ‘validator’ keyword & function. The validator function validates setting values (from configuration files and command-line option arguments) and converts them to appropriate types. For example, the docutils.frontend.validate_boolean function, required by all boolean settings, converts true values (‘1’, ‘on’, ‘yes’, and ‘true’) to 1 and false values (‘0’, ‘off’, ‘no’, ‘false’, and ‘’) to 0. Validators need only be set once per setting. See the docutils.frontend.validate_* functions.

      See the optparse docs for more details.

  • More triples of group title, description, options, as many times as needed. Thus, settings_spec tuples can be simply concatenated.

supported = ('typst',)

Name and aliases for this component. Override in subclasses.

translate()

Do final translation of self.document into self.output. Called from write. Override in subclasses.

Usually done with a docutils.nodes.NodeVisitor subclass, in combination with a call to docutils.nodes.Node.walk() or docutils.nodes.Node.walkabout(). The NodeVisitor subclass must support all standard elements (listed in docutils.nodes.node_class_names) and possibly non-standard elements used by the current Reader as well.

visitor_attributes = {'body', 'includes'}