Mercurial > hg
comparison doc/gendoc.py @ 12780:bdc1cf692447
gendoc: dedent documentation from docstrings
When getting docstrings from the source they are indented to look good
in the code. This indentation interferes with how the text is parsed
by rst. Therefore this indentation is removed.
author | Erik Zielke <ez@aragost.com> |
---|---|
date | Tue, 19 Oct 2010 13:50:03 +0200 |
parents | a19db59e1de4 |
children | 0d09991f91ee |
comparison
equal
deleted
inserted
replaced
12779:891ddf76b73e | 12780:bdc1cf692447 |
---|---|
1 import os, sys | 1 import os, sys, textwrap |
2 # import from the live mercurial repo | 2 # import from the live mercurial repo |
3 sys.path.insert(0, "..") | 3 sys.path.insert(0, "..") |
4 # fall back to pure modules if required C extensions are not available | 4 # fall back to pure modules if required C extensions are not available |
5 sys.path.append(os.path.join('..', 'mercurial', 'pure')) | 5 sys.path.append(os.path.join('..', 'mercurial', 'pure')) |
6 from mercurial import demandimport; demandimport.enable() | 6 from mercurial import demandimport; demandimport.enable() |
19 | 19 |
20 i = docstr.find("\n") | 20 i = docstr.find("\n") |
21 if i != -1: | 21 if i != -1: |
22 desc = docstr[i + 2:] | 22 desc = docstr[i + 2:] |
23 else: | 23 else: |
24 desc = " %s" % shortdesc | 24 desc = shortdesc |
25 | |
26 desc = textwrap.dedent(desc) | |
27 | |
25 return (shortdesc, desc) | 28 return (shortdesc, desc) |
26 | 29 |
27 def get_opts(opts): | 30 def get_opts(opts): |
28 for opt in opts: | 31 for opt in opts: |
29 if len(opt) == 5: | 32 if len(opt) == 5: |
67 | 70 |
68 def show_doc(ui): | 71 def show_doc(ui): |
69 # print options | 72 # print options |
70 section(ui, _("Options")) | 73 section(ui, _("Options")) |
71 for optstr, desc in get_opts(globalopts): | 74 for optstr, desc in get_opts(globalopts): |
72 ui.write("%s\n %s\n\n" % (optstr, desc)) | 75 ui.write("%s\n%s\n\n" % (optstr, desc)) |
73 | 76 |
74 # print cmds | 77 # print cmds |
75 section(ui, _("Commands")) | 78 section(ui, _("Commands")) |
76 commandprinter(ui, table) | 79 commandprinter(ui, table) |
77 | 80 |
100 continue | 103 continue |
101 d = get_cmd(h[f], cmdtable) | 104 d = get_cmd(h[f], cmdtable) |
102 subsection(ui, d['cmd']) | 105 subsection(ui, d['cmd']) |
103 # synopsis | 106 # synopsis |
104 ui.write("``%s``\n" % d['synopsis'].replace("hg ","", 1)) | 107 ui.write("``%s``\n" % d['synopsis'].replace("hg ","", 1)) |
108 ui.write("\n") | |
105 # description | 109 # description |
106 ui.write("%s\n\n" % d['desc'][1]) | 110 ui.write("%s\n\n" % d['desc'][1]) |
107 # options | 111 # options |
108 opt_output = list(d['opts']) | 112 opt_output = list(d['opts']) |
109 if opt_output: | 113 if opt_output: |
110 opts_len = max([len(line[0]) for line in opt_output]) | 114 opts_len = max([len(line[0]) for line in opt_output]) |
111 ui.write(_(" options:\n\n")) | 115 ui.write(_("options:\n\n")) |
112 for optstr, desc in opt_output: | 116 for optstr, desc in opt_output: |
113 if desc: | 117 if desc: |
114 s = "%-*s %s" % (opts_len, optstr, desc) | 118 s = "%-*s %s" % (opts_len, optstr, desc) |
115 else: | 119 else: |
116 s = optstr | 120 s = optstr |
117 ui.write(" %s\n" % s) | 121 ui.write("%s\n" % s) |
118 ui.write("\n") | 122 ui.write("\n") |
119 # aliases | 123 # aliases |
120 if d['aliases']: | 124 if d['aliases']: |
121 ui.write(_(" aliases: %s\n\n") % " ".join(d['aliases'])) | 125 ui.write(_(" aliases: %s\n\n") % " ".join(d['aliases'])) |
122 | 126 |