##// END OF EJS Templates
dirstate: use a context manager when writing the dirstate...
dirstate: use a context manager when writing the dirstate This make sure the file is closed in a timely manner. We define a lambda for the file opening. It might seems a bit overkill here but a future changeset will need to do more of those. Differential Revision: https://phab.mercurial-scm.org/D12122

File last commit:

r47575:d4ba4d51 default
r49531:cdb0d857 default
Show More
runrst
69 lines | 2.0 KiB | text/plain | TextLexer
Gregory Szorc
global: use python3 in shebangs...
r46434 #!/usr/bin/env python3
Martin Geisler
doc: add generic frontend to rst2man and rst2html...
r10971 #
# runrst - register custom roles and run correct writer
#
Raphaël Gomès
contributor: change mentions of mpm to olivia...
r47575 # Copyright 2010 Olivia Mackall <olivia@selenic.com> and others
Martin Geisler
doc: add generic frontend to rst2man and rst2html...
r10971 #
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
"""usage: %s WRITER args...
where WRITER is the name of a Docutils writer such as 'html' or 'manpage'
"""
Yuya Nishihara
doc: use modern import style in runrst
r39508 from __future__ import absolute_import
Martin Geisler
doc: add generic frontend to rst2man and rst2html...
r10971 import sys
Gregory Szorc
black: blacken scripts...
r44089
Nicolas Dumazet
runrst: try to be more helpful if docutils is not installed
r11707 try:
Yuya Nishihara
doc: use modern import style in runrst
r39508 import docutils.core as core
import docutils.nodes as nodes
import docutils.utils as utils
import docutils.parsers.rst.roles as roles
Nicolas Dumazet
runrst: try to be more helpful if docutils is not installed
r11707 except ImportError:
Gregory Szorc
black: blacken scripts...
r44089 sys.stderr.write(
"abort: couldn't generate documentation: docutils "
"module is missing\n"
)
sys.stderr.write(
"please install python-docutils or see "
"http://docutils.sourceforge.net/\n"
)
Nicolas Dumazet
runrst: try to be more helpful if docutils is not installed
r11707 sys.exit(-1)
Martin Geisler
doc, minirst: support hg interpreted text role
r10972
Gregory Szorc
black: blacken scripts...
r44089
Gregory Szorc
doc: don't use mutable default arguments...
r44088 def role_hg(name, rawtext, text, lineno, inliner, options=None, content=None):
Martin Geisler
doc: make links for hg role...
r10974 text = "hg " + utils.unescape(text)
linktext = nodes.literal(rawtext, text)
parts = text.split()
cmd, args = parts[1], parts[2:]
FUJIWARA Katsunori
doc: translate from :hg:`help config` to a valid link to hgrc.5.html...
r28075 refuri = "hg.1.html#%s" % cmd
Martin Geisler
doc: make links for hg role...
r10974 if cmd == 'help' and args:
FUJIWARA Katsunori
doc: translate from :hg:`help config` to a valid link to hgrc.5.html...
r28075 if args[0] == 'config':
# :hg:`help config`
refuri = "hgrc.5.html"
FUJIWARA Katsunori
doc: translate from :hg:`help config.SECTION` to a valid link to hgrc.5.html...
r28076 elif args[0].startswith('config.'):
# :hg:`help config.SECTION...`
refuri = "hgrc.5.html#%s" % args[0].split('.', 2)[1]
FUJIWARA Katsunori
doc: translate from :hg:`help config` to a valid link to hgrc.5.html...
r28075 elif len(args) >= 2 and args[0] == '-c':
# :hg:`help -c COMMAND ...` is equivalent to :hg:`COMMAND`
# (mainly for :hg:`help -c config`)
refuri = "hg.1.html#%s" % args[1]
else:
refuri = "hg.1.html#%s" % args[0]
Gregory Szorc
black: blacken scripts...
r44089 node = nodes.reference(rawtext, '', linktext, refuri=refuri)
Martin Geisler
doc, minirst: support hg interpreted text role
r10972 return [node], []
Gregory Szorc
black: blacken scripts...
r44089
Martin Geisler
doc, minirst: support hg interpreted text role
r10972 roles.register_local_role("hg", role_hg)
Martin Geisler
doc: add generic frontend to rst2man and rst2html...
r10971
if __name__ == "__main__":
if len(sys.argv) < 2:
sys.stderr.write(__doc__ % sys.argv[0])
sys.exit(1)
writer = sys.argv[1]
del sys.argv[1]
Yuya Nishihara
doc: use modern import style in runrst
r39508 core.publish_cmdline(writer_name=writer)