doc/runrst
author Mads Kiilerich <mads@kiilerich.com>
Mon, 26 Jun 2023 15:16:51 +0200
branchstable
changeset 52105 f38be04f9616
parent 48875 6000f5b25c9b
child 52021 2a875530a023
permissions -rwxr-xr-x
tests: drop test-demandimport.py distutils test that failed with warnings The test would fail because warnings: /usr/lib/python3.11/site-packages/_distutils_hack/__init__.py:18: UserWarning: Distutils was imported before Setuptools, but importing Setuptools also replaces the `distutils` module in `sys.modules`. This may lead to undesirable behaviors or errors. To avoid these issues, avoid using distutils directly, ensure that setuptools is installed in the traditional way (e.g. not an editable install), and/or make sure that setuptools is always imported before distutils. warnings.warn( /usr/lib/python3.11/site-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils. warnings.warn("Setuptools is replacing distutils.") The test for distutils.msvc9compiler comes from 2205d00b6d2b. But since then, distutils is going away, and this test must change somehow. It is unclear exactly how setuptools depended on msvc9compiler, but setuptools also moved forward, and this exact test no longer seems relevant. It thus seems like a fair solution to remove the test while keeping the demandimport blacklist of distutils.msvc9compiler.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45830
c102b704edb5 global: use python3 in shebangs
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43691
diff changeset
     1
#!/usr/bin/env python3
10971
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
     2
#
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
     3
# runrst - register custom roles and run correct writer
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
     4
#
46819
d4ba4d51f85f contributor: change mentions of mpm to olivia
Raphaël Gomès <rgomes@octobus.net>
parents: 45830
diff changeset
     5
# Copyright 2010 Olivia Mackall <olivia@selenic.com> and others
10971
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
     6
#
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
     7
# This software may be used and distributed according to the terms of the
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
     8
# GNU General Public License version 2 or any later version.
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
     9
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    10
"""usage: %s WRITER args...
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    11
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    12
where WRITER is the name of a Docutils writer such as 'html' or 'manpage'
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    13
"""
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    14
39472
4e4fae1dda5c doc: use modern import style in runrst
Yuya Nishihara <yuya@tcha.org>
parents: 28076
diff changeset
    15
10971
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    16
import sys
43691
47ef023d0165 black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43690
diff changeset
    17
11707
13d79a7bf5b7 runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10974
diff changeset
    18
try:
39472
4e4fae1dda5c doc: use modern import style in runrst
Yuya Nishihara <yuya@tcha.org>
parents: 28076
diff changeset
    19
    import docutils.core as core
4e4fae1dda5c doc: use modern import style in runrst
Yuya Nishihara <yuya@tcha.org>
parents: 28076
diff changeset
    20
    import docutils.nodes as nodes
4e4fae1dda5c doc: use modern import style in runrst
Yuya Nishihara <yuya@tcha.org>
parents: 28076
diff changeset
    21
    import docutils.utils as utils
4e4fae1dda5c doc: use modern import style in runrst
Yuya Nishihara <yuya@tcha.org>
parents: 28076
diff changeset
    22
    import docutils.parsers.rst.roles as roles
11707
13d79a7bf5b7 runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10974
diff changeset
    23
except ImportError:
43691
47ef023d0165 black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43690
diff changeset
    24
    sys.stderr.write(
47ef023d0165 black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43690
diff changeset
    25
        "abort: couldn't generate documentation: docutils "
47ef023d0165 black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43690
diff changeset
    26
        "module is missing\n"
47ef023d0165 black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43690
diff changeset
    27
    )
47ef023d0165 black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43690
diff changeset
    28
    sys.stderr.write(
47ef023d0165 black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43690
diff changeset
    29
        "please install python-docutils or see "
47ef023d0165 black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43690
diff changeset
    30
        "http://docutils.sourceforge.net/\n"
47ef023d0165 black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43690
diff changeset
    31
    )
11707
13d79a7bf5b7 runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10974
diff changeset
    32
    sys.exit(-1)
10972
0a2c6948f5f4 doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents: 10971
diff changeset
    33
43691
47ef023d0165 black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43690
diff changeset
    34
43690
15cccbacd5ce doc: don't use mutable default arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39472
diff changeset
    35
def role_hg(name, rawtext, text, lineno, inliner, options=None, content=None):
10974
854ac04d712c doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents: 10972
diff changeset
    36
    text = "hg " + utils.unescape(text)
854ac04d712c doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents: 10972
diff changeset
    37
    linktext = nodes.literal(rawtext, text)
854ac04d712c doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents: 10972
diff changeset
    38
    parts = text.split()
854ac04d712c doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents: 10972
diff changeset
    39
    cmd, args = parts[1], parts[2:]
28075
63eae465095e doc: translate from :hg:`help config` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 15314
diff changeset
    40
    refuri = "hg.1.html#%s" % cmd
10974
854ac04d712c doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents: 10972
diff changeset
    41
    if cmd == 'help' and args:
28075
63eae465095e doc: translate from :hg:`help config` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 15314
diff changeset
    42
        if args[0] == 'config':
63eae465095e doc: translate from :hg:`help config` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 15314
diff changeset
    43
            # :hg:`help config`
63eae465095e doc: translate from :hg:`help config` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 15314
diff changeset
    44
            refuri = "hgrc.5.html"
28076
18c6b271579b doc: translate from :hg:`help config.SECTION` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28075
diff changeset
    45
        elif args[0].startswith('config.'):
18c6b271579b doc: translate from :hg:`help config.SECTION` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28075
diff changeset
    46
            # :hg:`help config.SECTION...`
18c6b271579b doc: translate from :hg:`help config.SECTION` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28075
diff changeset
    47
            refuri = "hgrc.5.html#%s" % args[0].split('.', 2)[1]
28075
63eae465095e doc: translate from :hg:`help config` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 15314
diff changeset
    48
        elif len(args) >= 2 and args[0] == '-c':
63eae465095e doc: translate from :hg:`help config` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 15314
diff changeset
    49
            # :hg:`help -c COMMAND ...` is equivalent to :hg:`COMMAND`
63eae465095e doc: translate from :hg:`help config` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 15314
diff changeset
    50
            # (mainly for :hg:`help -c config`)
63eae465095e doc: translate from :hg:`help config` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 15314
diff changeset
    51
            refuri = "hg.1.html#%s" % args[1]
63eae465095e doc: translate from :hg:`help config` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 15314
diff changeset
    52
        else:
63eae465095e doc: translate from :hg:`help config` to a valid link to hgrc.5.html
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 15314
diff changeset
    53
            refuri = "hg.1.html#%s" % args[0]
43691
47ef023d0165 black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43690
diff changeset
    54
    node = nodes.reference(rawtext, '', linktext, refuri=refuri)
10972
0a2c6948f5f4 doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents: 10971
diff changeset
    55
    return [node], []
0a2c6948f5f4 doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents: 10971
diff changeset
    56
43691
47ef023d0165 black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43690
diff changeset
    57
10972
0a2c6948f5f4 doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents: 10971
diff changeset
    58
roles.register_local_role("hg", role_hg)
10971
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    59
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    60
if __name__ == "__main__":
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    61
    if len(sys.argv) < 2:
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    62
        sys.stderr.write(__doc__ % sys.argv[0])
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    63
        sys.exit(1)
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    64
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    65
    writer = sys.argv[1]
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    66
    del sys.argv[1]
cbe400a8e217 doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff changeset
    67
39472
4e4fae1dda5c doc: use modern import style in runrst
Yuya Nishihara <yuya@tcha.org>
parents: 28076
diff changeset
    68
    core.publish_cmdline(writer_name=writer)