Skip to content

Commit

Permalink
Merge pull request #16728 from KidRigger/master
Browse files Browse the repository at this point in the history
Documentation tool does not add escapes to code and codeblocks unnecessarily
  • Loading branch information
akien-mga authored Feb 15, 2018
2 parents 133942c + 84e8c49 commit 9f590b4
Showing 1 changed file with 26 additions and 4 deletions.
30 changes: 26 additions & 4 deletions doc/tools/makerst.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,9 @@ def rstize_text(text, cclass):

# Escape * character to avoid interpreting it as emphasis
pos = 0
next_brac_pos = text.find('[');
while True:
pos = text.find('*', pos)
pos = text.find('*', pos, next_brac_pos)
if pos == -1:
break
text = text[:pos] + "\*" + text[pos + 1:]
Expand All @@ -165,7 +166,7 @@ def rstize_text(text, cclass):
# Escape _ character at the end of a word to avoid interpreting it as an inline hyperlink
pos = 0
while True:
pos = text.find('_', pos)
pos = text.find('_', pos, next_brac_pos)
if pos == -1:
break
if not text[pos + 1].isalnum(): # don't escape within a snake_case word
Expand Down Expand Up @@ -264,6 +265,27 @@ def rstize_text(text, cclass):
if escape_post and post_text and post_text[0].isalnum(): # not punctuation, escape
post_text = '\ ' + post_text

next_brac_pos = post_text.find('[',0)
iter_pos = 0
while not inside_code:
iter_pos = post_text.find('*', iter_pos, next_brac_pos)
if iter_pos == -1:
break
post_text = post_text[:iter_pos] + "\*" + post_text[iter_pos + 1:]
iter_pos += 2

iter_pos = 0
while not inside_code:
iter_pos = post_text.find('_', iter_pos, next_brac_pos)
if iter_pos == -1:
break
if not post_text[iter_pos + 1].isalnum(): # don't escape within a snake_case word
post_text = post_text[:iter_pos] + "\_" + post_text[iter_pos + 1:]
iter_pos += 2
else:
iter_pos += 1


text = pre_text + tag_text + post_text
pos = len(pre_text) + len(tag_text)

Expand Down Expand Up @@ -500,7 +522,7 @@ def make_rst_class(node):
enums.append(c)
else:
consts.append(c)

if len(consts) > 0:
f.write(make_heading('Numeric Constants', '-'))
for c in list(consts):
Expand All @@ -512,7 +534,7 @@ def make_rst_class(node):
s += ' --- ' + rstize_text(c.text.strip(), name)
f.write(s + '\n')
f.write('\n')

if len(enum_names) > 0:
f.write(make_heading('Enums', '-'))
for e in enum_names:
Expand Down

0 comments on commit 9f590b4

Please sign in to comment.