[ADD] extension: allow to build graphs using graphviz

Part-of: odoo/documentation#1334
This commit is contained in:
wan 2021-11-25 11:10:42 +00:00 committed by Antoine Vandevenne (anv)
parent 3551a5a575
commit 6ae2bfe220
3 changed files with 35 additions and 0 deletions

View File

@ -1,10 +1,12 @@
import re import re
import os import os
import shutil
import sys import sys
from pathlib import Path from pathlib import Path
import docutils import docutils
from pygments.lexers import JsonLexer, XmlLexer from pygments.lexers import JsonLexer, XmlLexer
from sphinx.ext import graphviz
from sphinx.util import logging from sphinx.util import logging
import sphinx import sphinx
@ -156,6 +158,7 @@ else:
extensions += [ extensions += [
'autodoc_placeholder', 'autodoc_placeholder',
] ]
extensions.append('sphinx.ext.graphviz' if shutil.which('dot') else 'graphviz_placeholder')
todo_include_todos = False todo_include_todos = False

View File

@ -0,0 +1,25 @@
from docutils.parsers.rst import Directive, directives
from docutils import nodes
class PlaceHolder(Directive):
""" Placeholder class for directives that must be skipped. """
has_content = True
def run(self):
node = nodes.literal_block('graphviz', '')
node += nodes.Text(
f'{self.content[0]}\n'
'> Graph not rendered because `dot` is not installed'
)
return [node]
def setup(app):
directives.register_directive('graphviz', PlaceHolder)
return {
'parallel_read_safe': True,
'parallel_write_safe': True
}

View File

@ -971,6 +971,13 @@ header.o_main_header {
} }
} }
} }
.graphviz {
overflow-x: auto;
white-space: nowrap;
img {
max-width: unset;
}
}
} }
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------