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

Unified Diff: grit/format/policy_templates/writers/doc_writer.py

Issue 911563002: Fixed bug with paragraphs in policy description (Closed) Base URL: https://chromium.googlesource.com/external/grit-i18n.git@master
Patch Set: Created 5 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: grit/format/policy_templates/writers/doc_writer.py
diff --git a/grit/format/policy_templates/writers/doc_writer.py b/grit/format/policy_templates/writers/doc_writer.py
index e90e16cb63388e9e2b9f5f642a91f5c06e07d445..bb76fb898129dc4b91cfe4c0e9e2cb1202b8bc04 100644
--- a/grit/format/policy_templates/writers/doc_writer.py
+++ b/grit/format/policy_templates/writers/doc_writer.py
@@ -58,32 +58,37 @@ class DocWriter(xml_formatted_writer.XMLFormattedWriter):
'''
return ', '.join([item_map[x] for x in items])
- def _AddTextWithLinks(self, parent, text):
- '''Parse a string for URLs and add it to a DOM node with the URLs replaced
- with <a> HTML links.
+ def _AddTextWithLinksAndParagraphs(self, parent, text):
+ '''Parse a string for URLs and paragraphs and
+ add it to a DOM node with the URLs replaced
+ with <a> HTML links and paragraphs replaced by <p>.
Args:
parent: The DOM node to which the text will be added.
text: The string to be added.
'''
- # Iterate through all the URLs and replace them with links.
- out = []
+
+ # Open paragraph
+ paragraph = self.AddElement(parent, 'p')
while True:
- # Look for the first URL.
+ # Look for the first URL or break line.
res = self._url_matcher.search(text)
if not res:
break
- # Calculate positions of the substring of the URL.
- url = res.group(0)
+ # Calculate positions of the substring of the URL or new line.
+ group = res.group(0) # Either "/n/n" or "http://some.url"
start = res.start(0)
end = res.end(0)
- # Add the text prior to the URL.
- self.AddText(parent, text[:start])
- # Add a link for the URL.
- self.AddElement(parent, 'a', {'href': url}, url)
+ # Add the text prior to the URL or break line.
+ self.AddText(paragraph, text[:start])
+ # Either add new paragraph or add a link for the URL.
+ if group == "\n\n": #have we found a break line?
+ paragraph = self.AddElement(parent, 'p')
+ else:
+ self.AddElement(paragraph, 'a', {'href': group}, group)
# Drop the part of text that is added.
text = text[end:]
- self.AddText(parent, text)
+ self.AddText(paragraph, text)
def _AddStyledElement(self, parent, name, style_ids, attrs=None, text=None):
@@ -114,8 +119,9 @@ class DocWriter(xml_formatted_writer.XMLFormattedWriter):
parent: The DOM node for which the feature list will be added.
policy: The data structure of a policy.
'''
- # Replace URLs with links in the description.
- self._AddTextWithLinks(parent, policy['desc'])
+
+ # Replace URLs with links and /n with <p>...</p> in the description.
+ self._AddTextWithLinksAndParagraphs(parent, policy['desc'])
# Add list of enum items.
if policy['type'] in ('string-enum', 'int-enum', 'string-enum-list'):
ul = self.AddElement(parent, 'ul')
@@ -508,7 +514,7 @@ class DocWriter(xml_formatted_writer.XMLFormattedWriter):
problem_href = policy['problem_href']
div = self._AddStyledElement(parent, 'div', ['div.note'])
note = self._GetLocalizedMessage('note').replace('$6', problem_href)
- self._AddTextWithLinks(div, note)
+ self._AddTextWithLinksAndParagraphs(div, note)
def _AddPolicyRow(self, parent, policy):
'''Adds a row for the policy in the summary table.
@@ -597,7 +603,7 @@ class DocWriter(xml_formatted_writer.XMLFormattedWriter):
summary_div = self.AddElement(self._main_div, 'div')
self.AddElement(summary_div, 'a', {'name': 'top'})
self.AddElement(summary_div, 'br')
- self._AddTextWithLinks(
+ self._AddTextWithLinksAndParagraphs(
summary_div,
self._GetLocalizedMessage('intro'))
self.AddElement(summary_div, 'br')
@@ -691,7 +697,7 @@ class DocWriter(xml_formatted_writer.XMLFormattedWriter):
}
# A simple regexp to search for URLs. It is enough for now.
- self._url_matcher = lazy_re.compile('(http://[^\\s]*[^\\s\\.])')
+ self._url_matcher = lazy_re.compile('(http://[^\\s]*[^\\s\\.])|\n\n')
Mattias Nissler (ping if slow) 2015/02/10 08:30:08 It's rather confusing to do both URL matching and
def GetTemplateText(self):
# Return the text representation of the main <div> tag.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698