Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Side by Side Diff: chrome/common/extensions/docs/server2/document_renderer.py

Issue 220023002: Cleanup ReferenceResolver (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add documentation in document_renderer.py Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/common/extensions/docs/server2/reference_resolver.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import logging 5 import logging
6 import os 6 import os
7 from document_parser import ParseDocument 7 from document_parser import ParseDocument
8 from third_party.json_schema_compiler.model import UnixName 8 from third_party.json_schema_compiler.model import UnixName
9 9
10 10
11 class DocumentRenderer(object): 11 class DocumentRenderer(object):
12 '''Performs document-level rendering such as the title, references, 12 '''Performs document-level rendering such as the title, references,
13 and table of contents: pulling that data out of the document, then 13 and table of contents: pulling that data out of the document, then
14 replacing the $(title), $(ref:...) and $(table_of_contents) tokens with them. 14 replacing the $(title), $(ref:...) and $(table_of_contents) tokens with them.
15 15
16 This can be thought of as a parallel to TemplateRenderer; while 16 This can be thought of as a parallel to TemplateRenderer; while
17 TemplateRenderer is responsible for interpreting templates and rendering files 17 TemplateRenderer is responsible for interpreting templates and rendering files
18 within the template engine, DocumentRenderer is responsible for interpreting 18 within the template engine, DocumentRenderer is responsible for interpreting
19 higher-level document concepts like the title and TOC, then performing string 19 higher-level document concepts like the title and TOC, then performing string
20 replacement for them. The syntax for this replacement is $(...) where ... is 20 replacement for them. The syntax for this replacement is $(...) where ... is
21 the concept. Currently title and table_of_contents are supported. 21 the concept. Currently title and table_of_contents are supported.
22 ''' 22 '''
23 23
24 def __init__(self, table_of_contents_renderer, ref_resolver): 24 def __init__(self, table_of_contents_renderer, ref_resolver):
25 self._table_of_contents_renderer = table_of_contents_renderer 25 self._table_of_contents_renderer = table_of_contents_renderer
26 self._ref_resolver = ref_resolver 26 self._ref_resolver = ref_resolver
27 27
28 def _RenderLinks(self, document, path): 28 def _RenderLinks(self, document, path):
29 ''' Replaces all $(ref:...) references in |document| with html links 29 ''' Replaces all $(ref:...) references in |document| with html links.
30
31 References have two forms:
32
33 $(ref:api.node) - Replaces the reference with a link to node on the
34 API page. The title is set to the name of the node.
35
36 $(ref:api.node Title) - Same as the previous form, but title is set
37 to "Title".
30 ''' 38 '''
31 START_REF = '$(ref:' 39 START_REF = '$(ref:'
32 END_REF = ')' 40 END_REF = ')'
33 MAX_REF_LENGTH = 256 41 MAX_REF_LENGTH = 256
34 42
35 new_document = [] 43 new_document = []
36 44
37 # Keeps track of position within |document| 45 # Keeps track of position within |document|
38 cursor_index = 0 46 cursor_index = 0
39 start_ref_index = document.find(START_REF) 47 start_ref_index = document.find(START_REF)
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 parsed_document = ParseDocument(document, expect_title=render_title) 90 parsed_document = ParseDocument(document, expect_title=render_title)
83 toc_text, toc_warnings = self._table_of_contents_renderer.Render( 91 toc_text, toc_warnings = self._table_of_contents_renderer.Render(
84 parsed_document.sections) 92 parsed_document.sections)
85 93
86 # Only 1 title and 1 table of contents substitution allowed; in the common 94 # Only 1 title and 1 table of contents substitution allowed; in the common
87 # case, save necessarily running over the entire file. 95 # case, save necessarily running over the entire file.
88 if parsed_document.title: 96 if parsed_document.title:
89 document = document.replace('$(title)', parsed_document.title, 1) 97 document = document.replace('$(title)', parsed_document.title, 1)
90 return (document.replace('$(table_of_contents)', toc_text, 1), 98 return (document.replace('$(table_of_contents)', toc_text, 1),
91 parsed_document.warnings + toc_warnings) 99 parsed_document.warnings + toc_warnings)
OLDNEW
« no previous file with comments | « no previous file | chrome/common/extensions/docs/server2/reference_resolver.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698