scansion-rs/README.md
Maxime “pep” Buquet 5863adc174 Parse metadata tags
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-01-13 18:29:57 +01:00

1.7 KiB

Scansion-dsl

Parser for the Scansion project DSL.

License

SPDX: MPL-2.0. See LICENSE file.

Parsing support

Language features are more or less defined here:
https://matthewwild.co.uk/projects/scansion/usage/script-basics/

This library supports parsing the following:

  • Metadata
    Lines starting with # at the beginning of the file. All metadata lines are optional. If a single line is found it's set as the title, the second lines is set as the description. Lines starting with ## right below will be added as tags. A description is not needed for tags to be added.
    • title: optional
    • description: optional
    • tags: optional
  • Client
    • Attributes
      Following lines beginning with at least a tab (\t) character, in the form attr: value, and ending with a newline (\n). Any line that matches this format will be parsed and will be discarded if it doesn't match an actual client attribute.
      • jid: Expects a bare jid or a full jid. Will be converted to jid::Jid.
      • password
      • custom_host
      • custom_port: Expect a u16
  • [-] Actions
    • 'connects'
    • 'disconnects'
    • [-] 'sends:' / 'receives:'
      • A block of lines each starting with a tab (\t) after the action will be converted to a minidom::Element.
      • nothing as the absence of stanza.
  • Comments
    Optional lines starting with a # or // and ending with a newline (\n). They get discarded in the output

minidom::Element

Minidom Elements require every element to be namespaced. This parser adds jabber:client as a default namespace. It also adds a scansion namespace that is used for the scansion:strict XML parameter.