On Fri, 2016-10-21 at 18:11 +0200, Markus Heiser wrote: > Yes and No. It depends on the tools (toolchains) we want to use. > As far as I can see from a abstract POV it should by simple for > math:: / since we already use/need LaTeX for PDF, for other tools > I have to look. Not sure if we were talking past each other - but the pass-through is actually really simple - example patch below. This makes it output an SVG (with fallback to PNG even) into the HTML, a PDF into the PDF, and plain pre-formatted text for both when the plantuml sphinx plugin isn't installed. johannes diff --git a/Documentation/conf.py b/Documentation/conf.py index bf6f310e5170..2c00ab6f0baf 100644 --- a/Documentation/conf.py +++ b/Documentation/conf.py @@ -34,7 +34,8 @@ from load_config import loadConfig # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions = ['kernel-doc', 'rstFlatTable', 'kernel_include', 'cdomain'] +extensions = ['kernel-doc', 'rstFlatTable', 'kernel_include', 'cdomain', + 'plantuml'] # The name of the math extension changed on Sphinx 1.4 if minor > 3: @@ -494,6 +495,9 @@ pdf_documents = [ kerneldoc_bin = '../scripts/kernel-doc' kerneldoc_srctree = '..' +plantuml_output_format = "svg" +plantuml_latex_output_format = "pdf" + # ------------------------------------------------------------------------------ # Since loadConfig overwrites settings from the global namespace, it has to be # the last statement in the conf.py file diff --git a/Documentation/driver-api/index.rst b/Documentation/driver-api/index.rst index 8e259c5d0322..e0d4f24b6039 100644 --- a/Documentation/driver-api/index.rst +++ b/Documentation/driver-api/index.rst @@ -7,6 +7,12 @@ of device drivers. This document is an only somewhat organized collection of some of those interfaces — it will hopefully get better over time! The available subsections can be seen below. +.. uml:: + + Alice -> Bob: Hi! + Alice <- Bob: How are you? + + .. class:: toc-title Table of contents diff --git a/Documentation/sphinx/dummy.py b/Documentation/sphinx/dummy.py new file mode 100644 index 000000000000..cfac42886ebd --- /dev/null +++ b/Documentation/sphinx/dummy.py @@ -0,0 +1,24 @@ +from sphinx.util.compat import Directive +from docutils import nodes +from docutils.parsers.rst import directives + +class IgnoreOptions(object): + def __getitem__(self, key): + return directives.unchanged + +def create_setup(directives): + def setup(app): + for d in directives: + class TextDirective(Directive): + has_content = True + option_spec = IgnoreOptions() + + def run(self): + text = '\n'.join(self.content) + return [nodes.literal_block('', text, + classes=['code', + 'missing-plugin', + 'missing-plugin-%s' % d])] + + app.add_directive(d, TextDirective) + return setup diff --git a/Documentation/sphinx/plantuml.py b/Documentation/sphinx/plantuml.py new file mode 100644 index 000000000000..0007bc7f24fd --- /dev/null +++ b/Documentation/sphinx/plantuml.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +from dummy import create_setup + +try: + from sphinxcontrib.plantuml import * +except: + setup = create_setup(['uml']) -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html