summaryrefslogtreecommitdiff
path: root/doc/_extensions/autojsdoc
diff options
context:
space:
mode:
authorXavier Morel <xmo@odoo.com>2018-08-27 12:55:21 +0200
committerXavier Morel <xmo@odoo.com>2018-08-27 12:55:21 +0200
commit0e307f8280eda4343a63c7faa2d52e33d46c9c0c (patch)
tree7ff2d1f7e5b6faaae2c78a8b2a1b35d2663c4c12 /doc/_extensions/autojsdoc
parent8233e524c23ad309c5088cfdccd50e836dbd7caa (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/autojsdoc')
-rw-r--r--doc/_extensions/autojsdoc/parser/jsdoc.py5
-rw-r--r--doc/_extensions/autojsdoc/parser/parser.py5
2 files changed, 8 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):