Mercurial > hg
annotate doc/runrst @ 42304:9c6c0f736e1d
rust-dirstate: call parse/pack bindings from Python
A future patch will need to address the issue of Rust module policy,
to avoid having ugly duplicate imports and conditionals all over the place.
As the rewrite of dirstate in Rust progresses, we will need fewer of those
"contact points".
Differential Revision: https://phab.mercurial-scm.org/D6350
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Mon, 06 May 2019 22:51:10 +0200 |
parents | 4e4fae1dda5c |
children | 15cccbacd5ce |
rev | line source |
---|---|
10971
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
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 # |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
5 # Copyright 2010 Matt Mackall <mpm@selenic.com> and others |
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 from __future__ import absolute_import |
4e4fae1dda5c
doc: use modern import style in runrst
Yuya Nishihara <yuya@tcha.org>
parents:
28076
diff
changeset
|
16 |
10971
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
17 import sys |
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: |
13d79a7bf5b7
runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10974
diff
changeset
|
24 sys.stderr.write("abort: couldn't generate documentation: docutils " |
13d79a7bf5b7
runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10974
diff
changeset
|
25 "module is missing\n") |
15314
1ae824142c01
runrst: improve error message when Docutils is missing
Martin Geisler <mg@aragost.com>
parents:
11707
diff
changeset
|
26 sys.stderr.write("please install python-docutils or see " |
1ae824142c01
runrst: improve error message when Docutils is missing
Martin Geisler <mg@aragost.com>
parents:
11707
diff
changeset
|
27 "http://docutils.sourceforge.net/\n") |
11707
13d79a7bf5b7
runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10974
diff
changeset
|
28 sys.exit(-1) |
10972
0a2c6948f5f4
doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents:
10971
diff
changeset
|
29 |
0a2c6948f5f4
doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents:
10971
diff
changeset
|
30 def role_hg(name, rawtext, text, lineno, inliner, |
0a2c6948f5f4
doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents:
10971
diff
changeset
|
31 options={}, content=[]): |
10974
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
32 text = "hg " + utils.unescape(text) |
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
33 linktext = nodes.literal(rawtext, text) |
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
34 parts = text.split() |
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
35 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
|
36 refuri = "hg.1.html#%s" % cmd |
10974
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
37 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
|
38 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
|
39 # :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
|
40 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
|
41 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
|
42 # :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
|
43 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
|
44 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
|
45 # :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
|
46 # (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
|
47 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
|
48 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
|
49 refuri = "hg.1.html#%s" % args[0] |
10974
854ac04d712c
doc: make links for hg role
Martin Geisler <mg@aragost.com>
parents:
10972
diff
changeset
|
50 node = nodes.reference(rawtext, '', linktext, |
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
|
51 refuri=refuri) |
10972
0a2c6948f5f4
doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents:
10971
diff
changeset
|
52 return [node], [] |
0a2c6948f5f4
doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents:
10971
diff
changeset
|
53 |
0a2c6948f5f4
doc, minirst: support hg interpreted text role
Martin Geisler <mg@aragost.com>
parents:
10971
diff
changeset
|
54 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
|
55 |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
56 if __name__ == "__main__": |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
57 if len(sys.argv) < 2: |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
58 sys.stderr.write(__doc__ % sys.argv[0]) |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
59 sys.exit(1) |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
60 |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
61 writer = sys.argv[1] |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
62 del sys.argv[1] |
cbe400a8e217
doc: add generic frontend to rst2man and rst2html
Martin Geisler <mg@aragost.com>
parents:
diff
changeset
|
63 |
39472
4e4fae1dda5c
doc: use modern import style in runrst
Yuya Nishihara <yuya@tcha.org>
parents:
28076
diff
changeset
|
64 core.publish_cmdline(writer_name=writer) |