Skip to content
/ tagup Public

Python module which provides a reference implementation of the Tagup Language

License

Notifications You must be signed in to change notification settings

Foxbud/tagup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e55f136 · Jun 14, 2020

History

27 Commits
Jun 14, 2020
Jun 14, 2020
Apr 23, 2020
Apr 23, 2020
Mar 31, 2020
Jun 14, 2020
Jun 10, 2020
Jun 14, 2020

Repository files navigation

Travis (.org) branch   Codecov branch

tagup

tagup is a Python module which provides a reference implementation of the Tagup Language.

This module currently implements version 1.0.0 of the Tagup Language.

Quick Start

from tagup import BaseRenderer, TagDictMixin


class TagupRenderer(TagDictMixin, BaseRenderer):
    pass


renderer = TagupRenderer(
    # Optional initial markup tags.
    tags={
        'bold': r'<span style="font-weight: bold">[\\1]</span>',
    }
)

# Manipulate tags using dictionary syntax.
renderer['link'] = (
    r'<a href="[\\1]" [\if target\target="_[\\target]"]>'
    r'[bold [\if 2\[\\2]\[\\1]]]'
    r'</a>'
)

html = renderer.render_markup(
    r'Click [link target\\blank\[\\url]\here] to visit [link\[\\url]]',
    # Provide optional named (and positional) arguments.
    named_args={'url': 'http://example.com'}
)
print(html)

Changelog

v0.2.3

  • Added "StaticTagMixin," "TagDictMixin" and "TrimMixin" for "BaseRenderer."
  • Added new errors "ImproperlyConfigured," "NamedArgumentMissing," "PositionalArgumentMissing," "TagNotFound" and "TagupSyntaxError."
  • Renamed "stack_trace" to "tag_stack_trace" for all custom errors.
  • Fixed bug in getitem method of "TagStackTrace."

v0.2.2

  • Added support for global named arguments.
  • Added max tag depth enforcement.
  • Fixed bug that prevented the positional loop from functioning when not provided an optional default value.

v0.2.1

  • Added tag prefetching.

v0.2.0

  • Renamed "Renderer" to "BaseRenderer."
  • Refactored "BaseRenderer" to use method overriding for "get_tag" instead of providing "get_tag_callback" to constructor.
  • Removed "cache_tag_ast_callback" from "BaseRenderer" constructor.
  • Removed "trim_args" from "BaseRenderer" constructor.
  • Added a node pre and post processing hook system.
  • Added test cases.
  • Various internal optimizations.

v0.1.3

  • Fixed bug where the "trim_args" option didn't properly remove leading and trailing whitespace in some situations.

v0.1.2

  • Fixed bug where code called "trim()" rather than "strip()."

v0.1.1

  • Added non-standard option to trim whitespace from arguments before tag evaluation.
  • Fixed bug where whitespace was considered when specifying a name/position for argument substitution.

v0.1.0

  • Initial release.

About

Python module which provides a reference implementation of the Tagup Language

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages