diff options
| author | Xavier Morel <xmo@odoo.com> | 2018-08-27 12:55:21 +0200 |
|---|---|---|
| committer | Xavier Morel <xmo@odoo.com> | 2018-08-27 12:55:21 +0200 |
| commit | 0e307f8280eda4343a63c7faa2d52e33d46c9c0c (patch) | |
| tree | 7ff2d1f7e5b6faaae2c78a8b2a1b35d2663c4c12 /doc/_extensions | |
| parent | 8233e524c23ad309c5088cfdccd50e836dbd7caa (diff) | |
[FIX] doc building and warnings
doc:
* fix incorrect doc comments (documenting params which don't exist)
* correctly quote non-refs
* fix role label syntax (backticks must be escaped)
* add newline to fix warning
JS doc parser:
* fix handling of already-resolved objects
* fix handling of non-string properties (e.g. foo[0] at module toplevel)
* don't blow up if subject of .include call can't be resolved (just ignore)
Others:
* add translator support for ``problematic`` node (apparently used for
some refs by recent Sphinx)
Diffstat (limited to 'doc/_extensions')
| -rw-r--r-- | doc/_extensions/autojsdoc/parser/jsdoc.py | 5 | ||||
| -rw-r--r-- | doc/_extensions/autojsdoc/parser/parser.py | 5 | ||||
| -rw-r--r-- | doc/_extensions/odoo_ext/translator.py | 12 |
3 files changed, 20 insertions, 2 deletions
diff --git a/doc/_extensions/autojsdoc/parser/jsdoc.py b/doc/_extensions/autojsdoc/parser/jsdoc.py index ff6d3196254..eb9d595330a 100644 --- a/doc/_extensions/autojsdoc/parser/jsdoc.py +++ b/doc/_extensions/autojsdoc/parser/jsdoc.py @@ -62,6 +62,11 @@ class CommentDoc(pyjsdoc.CommentDoc): d['name'] = self.name return d + # don't resolve already resolved docs (e.g. a literal dict being + # include-ed in two different classes because I don't even care anymore + def become(self, modules): + return self + class PropertyDoc(CommentDoc): @classmethod def from_param(cls, s, sourcemodule=None): diff --git a/doc/_extensions/autojsdoc/parser/parser.py b/doc/_extensions/autojsdoc/parser/parser.py index d979170bbc9..a5eb45a8e85 100644 --- a/doc/_extensions/autojsdoc/parser/parser.py +++ b/doc/_extensions/autojsdoc/parser/parser.py @@ -60,7 +60,7 @@ ref = collections.namedtuple('Ref', 'object property') def _name(r): bits = [] while isinstance(r, ref): - bits.append(r.property) + bits.append(str(r.property)) r = r.object return '.'.join(reversed(bits)) def deref(item, prop=None): @@ -348,7 +348,8 @@ class ModuleExtractor(Visitor): def resolve_extension(modules): t = target.become(modules) if not isinstance(t, jsdoc.ClassDoc): - raise ValueError("include() subjects should be classes, %s is %s" % (target_name, type(t))) + return # FIXME: log warning + # raise ValueError("include() subjects should be classes, %s is %s" % (target_name, type(t))) # TODO: note which module added these for it in items: if isinstance(it, dict): diff --git a/doc/_extensions/odoo_ext/translator.py b/doc/_extensions/odoo_ext/translator.py index da4e8731628..cf6c149d063 100644 --- a/doc/_extensions/odoo_ext/translator.py +++ b/doc/_extensions/odoo_ext/translator.py @@ -190,6 +190,18 @@ class BootstrapTranslator(nodes.NodeVisitor, object): def depart_compact_paragraph(self, node): pass + def visit_problematic(self, node): + if node.hasattr('refid'): + self.body.append('<a href="#%s">' % node['refid']) + self.context.append('</a>') + else: + self.context.append('') + self.body.append(self.starttag(node, 'span', CLASS='problematic')) + + def depart_problematic(self, node): + self.body.append('</span>') + self.body.append(self.context.pop()) + def visit_literal_block(self, node): if node.rawsource != node.astext(): # most probably a parsed-literal block -- don't highlight |
