Chromium Code Reviews| Index: chrome/common/extensions/docs/server2/schema_util.py |
| diff --git a/chrome/common/extensions/docs/server2/schema_util.py b/chrome/common/extensions/docs/server2/schema_util.py |
| index 866591d60002739087a5b2d2d2b16928ec90ca79..9c604023817d4a4c5536e3864b5e7ed5e7271b21 100644 |
| --- a/chrome/common/extensions/docs/server2/schema_util.py |
| +++ b/chrome/common/extensions/docs/server2/schema_util.py |
| @@ -54,8 +54,9 @@ def DetectInlineableTypes(schema): |
| type_['inline_doc'] = True |
| -def InlineDocs(schema): |
| +def InlineDocs(schema, remove_nodes): |
|
not at google - send to devlin
2014/07/15 22:43:20
please update this variable as well
|
| '''Replace '$ref's that refer to inline_docs with the json for those docs. |
| + If |remove_nodes| is true, then the inlined nodes are removed from the schema. |
| ''' |
| types = schema.get('types') |
| if types is None: |
| @@ -68,11 +69,13 @@ def InlineDocs(schema): |
| for type_ in types: |
| if type_.get('inline_doc'): |
| inline_docs[type_['id']] = type_ |
| - for k in ('description', 'id', 'inline_doc'): |
| - type_.pop(k, None) |
| + if remove_nodes: |
| + for k in ('description', 'id', 'inline_doc'): |
| + type_.pop(k, None) |
| else: |
| types_without_inline_doc.append(type_) |
| - schema['types'] = types_without_inline_doc |
| + if remove_nodes: |
| + schema['types'] = types_without_inline_doc |
| def apply_inline(node): |
| if isinstance(node, list): |
| @@ -89,10 +92,11 @@ def InlineDocs(schema): |
| apply_inline(schema) |
| -def ProcessSchema(path, file_data, inline=False): |
| - '''Parses |file_data| using a method determined by checking the extension of |
| - the file at the given |path|. Then, trims 'nodoc' and if |inline| is given |
| - and True, handles inlineable types from the parsed schema data. |
| +def ProcessSchema(path, file_data, remove_inlined_nodes=False): |
| + '''Parses |file_data| using a method determined by checking the |
| + extension of the file at the given |path|. Then, trims 'nodoc' and if |
| + |remove_inlined_nodes| is given and True, removes inlineable types from |
| + the parsed schema data. |
| ''' |
| def trim_and_inline(schema, is_idl=False): |
| '''Modifies an API schema in place by removing nodes that shouldn't be |
| @@ -102,10 +106,9 @@ def ProcessSchema(path, file_data, inline=False): |
| # A return of True signifies that the entire schema should not be |
| # documented. Otherwise, only nodes that request 'nodoc' are removed. |
| return None |
| - if inline: |
| - if is_idl: |
| - DetectInlineableTypes(schema) |
| - InlineDocs(schema) |
| + if is_idl: |
| + DetectInlineableTypes(schema) |
| + InlineDocs(schema, remove_inlined_nodes) |
| return schema |
| if path.endswith('.idl'): |