diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2019-05-16 16:11:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-16 16:11:02 +0200 |
commit | 053808e194cf869280eccfea5fa50aff55e7e03f (patch) | |
tree | e8da495f8aa94a4aa3ed57ac4cd045856e0ab80c /doc/tools | |
parent | 4a2506508993cf5918736d321c3a53ebcdbcd635 (diff) | |
parent | 102f73b88a5b2d297ede17db00fbbf1d16cac72e (diff) |
Merge pull request #28931 from staddy/master
Add support for [url=] tag to makerst.py
Diffstat (limited to 'doc/tools')
-rwxr-xr-x | doc/tools/makerst.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/doc/tools/makerst.py b/doc/tools/makerst.py index e81b4db13e..c3e15b2f9a 100755 --- a/doc/tools/makerst.py +++ b/doc/tools/makerst.py @@ -683,10 +683,16 @@ def rstize_text(text, state): # type: (str, State) -> str # Handle [tags] inside_code = False + inside_url = False + url_has_name = False + url_link = "" pos = 0 tag_depth = 0 + previous_pos = 0 while True: pos = text.find('[', pos) + if inside_url and (pos > previous_pos): + url_has_name = True if pos == -1: break @@ -795,12 +801,16 @@ def rstize_text(text, state): # type: (str, State) -> str elif cmd.find('image=') == 0: tag_text = "" # '![](' + cmd[6:] + ')' elif cmd.find('url=') == 0: - tag_text = ':ref:`' + cmd[4:] + '<' + cmd[4:] + ">`" + url_link = cmd[4:] + tag_text = ':ref:`' tag_depth += 1 + url_has_name = False + inside_url = True elif cmd == '/url': - tag_text = '' + tag_text = ('' if url_has_name else url_link) + '<' + url_link + ">`" tag_depth -= 1 escape_post = True + inside_url = False elif cmd == 'center': tag_depth += 1 tag_text = '' @@ -871,6 +881,7 @@ def rstize_text(text, state): # type: (str, State) -> str text = pre_text + tag_text + post_text pos = len(pre_text) + len(tag_text) + previous_pos = pos if tag_depth > 0: print_error("Tag depth mismatch: too many/little open/close tags, file: {}".format(state.current_class), state) |