diff options
| author | Anish | 2018-02-16 02:24:05 +0530 |
|---|---|---|
| committer | Hein-Pieter van Braam | 2018-02-19 22:28:03 +0100 |
| commit | 5c2b2ca95bdb144a034d6c69896b37c6e1ce6375 (patch) | |
| tree | a2791df40505818d5069d1505ae22a35e71d93fb | |
| parent | 57f707f951faff7c6d27be4d8fffcc59b236a6fa (diff) | |
| download | godot-5c2b2ca95bdb144a034d6c69896b37c6e1ce6375.tar.gz godot-5c2b2ca95bdb144a034d6c69896b37c6e1ce6375.tar.zst godot-5c2b2ca95bdb144a034d6c69896b37c6e1ce6375.zip | |
Documentation tool does not add escapes to code and codeblocks
Instead of adding the escapes to all * and _ the tool now excludes
the characters inside [code] and [codeblock].
Resolves: #15156
(cherry picked from commit 84e8c49f5d4cb5ba0fca2f50340a18a0a0e2c241)
| -rw-r--r-- | doc/tools/makerst.py | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/doc/tools/makerst.py b/doc/tools/makerst.py index 492f3b6d5..9e767bf3d 100644 --- a/doc/tools/makerst.py +++ b/doc/tools/makerst.py @@ -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:] @@ -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 @@ -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) @@ -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): @@ -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: |
