diff docs/conf.py @ 2962:3f466d348047

doc: add documentation for evolve commands By using a sphinx directive that call `hg help`.
author Philippe Pepiot <phil@philpep.org>
date Fri, 01 Sep 2017 08:32:17 +0200
parents ef361938dfa1
children b84dda686fb1
line wrap: on
line diff
--- a/docs/conf.py	Thu Sep 21 16:11:59 2017 +0200
+++ b/docs/conf.py	Fri Sep 01 08:32:17 2017 +0200
@@ -1,6 +1,16 @@
 # Add any Sphinx extension module names here, as strings. They can be extensions
 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+from mercurial import demandimport
+demandimport.disable()
+from docutils import nodes
+from docutils.parsers.rst import Directive
+from mercurial import ui
+from mercurial import extensions as hgext
+from mercurial import commands
+import os, sys
+
 extensions = ["sphinx.ext.graphviz"]
+
 # autoclass_content = 'both'
 # Add any paths that contain templates here, relative to this directory.
 # templates_path = []
@@ -124,3 +134,24 @@
 # htmlhelp_basename = ''
 
 graphviz_output_format = "svg"
+
+class hghelpdirective(Directive):
+    has_content = True
+
+    def run(self):
+        u = ui.ui()
+        u.disablepager()
+        u.setconfig(
+            'extensions', 'evolve',
+            os.path.join(
+                os.path.abspath(os.path.dirname(__file__)),
+                os.pardir, 'hgext3rd', 'evolve'))
+        hgext.loadall(u)
+        u.pushbuffer()
+        commands.help_(u, self.content[0])
+        return [
+            nodes.literal_block(text=u.popbuffer())]
+
+
+def setup(app):
+    app.add_directive('hghelp', hghelpdirective)