File: css_diagram_role.py

package info (click to toggle)
python-tinycss2 1.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 568 kB
  • sloc: python: 1,678; makefile: 19
file content (20 lines) | stat: -rw-r--r-- 528 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
"""
A Sphinx extension adding a 'css' role creating links to
the spec’s railroad diagrams.

"""

from docutils import nodes


def role_fn(_name, rawtext, text, lineno, inliner, options={}, content=()):
    ref = 'http://dev.w3.org/csswg/css-syntax-3/#%s-diagram' % text.replace(
        ' ', '-')
    if text.endswith(('-token', '-block')):
        text = '<%s>' % text
    ref = nodes.reference(rawtext, text, refuri=ref, **options)
    return [ref], []


def setup(app):
    app.add_role_to_domain('py', 'diagram', role_fn)