Sha256: 8eaf1552a0ff03e2e9531d7f0a30315cf1009e860d5b8fc365f647c4ccdaaa19

Contents?: true

Size: 1.17 KB

Versions: 35

Compression:

Stored size: 1.17 KB

Contents

# encoding: utf-8

#
# Copyright (c) 2013 Dariusz Dwornikowski.  All rights reserved.
#
# Adapted from https://github.com/tdi/sphinxcontrib-manpage
# License: Apache 2
#


import re

from docutils import nodes, utils
from docutils.parsers.rst.roles import set_classes
from string import Template


def make_link_node(rawtext, app, name, manpage_num, options):
    ref = app.config.man_url_regex
    if not ref:
        ref = "http://linux.die.net/man/%s/%s" % (manpage_num, name)
    else:
        s = Template(ref)
        ref = s.substitute(num=manpage_num, topic=name)
    set_classes(options)
    node = nodes.reference(rawtext, "%s(%s)" % (name, manpage_num), refuri=ref, **options)
    return node


def man_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
    app = inliner.document.settings.env.app
    p = re.compile("([a-zA-Z0-9_\.-_]+)\((\d)\)")
    m = p.match(text)

    manpage_num = m.group(2)
    name = m.group(1)
    node = make_link_node(rawtext, app, name, manpage_num, options)
    return [node], []


def setup(app):
    app.info('Initializing manpage plugin')
    app.add_role('man', man_role)
    app.add_config_value('man_url_regex', None, 'env')
    return

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
libuv-4.0.9 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-4.0.2 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-4.0.1 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-2.0.12 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-2.0.11 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-4.0.0 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.3.0 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.2.4 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.2.3 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.2.2 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.2.1 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.2.0 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.1.9 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.1.8 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.1.7 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.1.6 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.1.5 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.1.4 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.1.3 ext/libuv/docs/src/sphinx-plugins/manpage.py
libuv-3.1.2 ext/libuv/docs/src/sphinx-plugins/manpage.py