parent
4a25065089
commit
102f73b88a
1 changed files with 13 additions and 2 deletions
|
@ -683,10 +683,16 @@ def rstize_text(text, state): # type: (str, State) -> str
|
||||||
|
|
||||||
# Handle [tags]
|
# Handle [tags]
|
||||||
inside_code = False
|
inside_code = False
|
||||||
|
inside_url = False
|
||||||
|
url_has_name = False
|
||||||
|
url_link = ""
|
||||||
pos = 0
|
pos = 0
|
||||||
tag_depth = 0
|
tag_depth = 0
|
||||||
|
previous_pos = 0
|
||||||
while True:
|
while True:
|
||||||
pos = text.find('[', pos)
|
pos = text.find('[', pos)
|
||||||
|
if inside_url and (pos > previous_pos):
|
||||||
|
url_has_name = True
|
||||||
if pos == -1:
|
if pos == -1:
|
||||||
break
|
break
|
||||||
|
|
||||||
|
@ -795,12 +801,16 @@ def rstize_text(text, state): # type: (str, State) -> str
|
||||||
elif cmd.find('image=') == 0:
|
elif cmd.find('image=') == 0:
|
||||||
tag_text = "" # '![](' + cmd[6:] + ')'
|
tag_text = "" # '![](' + cmd[6:] + ')'
|
||||||
elif cmd.find('url=') == 0:
|
elif cmd.find('url=') == 0:
|
||||||
tag_text = ':ref:`' + cmd[4:] + '<' + cmd[4:] + ">`"
|
url_link = cmd[4:]
|
||||||
|
tag_text = ':ref:`'
|
||||||
tag_depth += 1
|
tag_depth += 1
|
||||||
|
url_has_name = False
|
||||||
|
inside_url = True
|
||||||
elif cmd == '/url':
|
elif cmd == '/url':
|
||||||
tag_text = ''
|
tag_text = ('' if url_has_name else url_link) + '<' + url_link + ">`"
|
||||||
tag_depth -= 1
|
tag_depth -= 1
|
||||||
escape_post = True
|
escape_post = True
|
||||||
|
inside_url = False
|
||||||
elif cmd == 'center':
|
elif cmd == 'center':
|
||||||
tag_depth += 1
|
tag_depth += 1
|
||||||
tag_text = ''
|
tag_text = ''
|
||||||
|
@ -871,6 +881,7 @@ def rstize_text(text, state): # type: (str, State) -> str
|
||||||
|
|
||||||
text = pre_text + tag_text + post_text
|
text = pre_text + tag_text + post_text
|
||||||
pos = len(pre_text) + len(tag_text)
|
pos = len(pre_text) + len(tag_text)
|
||||||
|
previous_pos = pos
|
||||||
|
|
||||||
if tag_depth > 0:
|
if tag_depth > 0:
|
||||||
print_error("Tag depth mismatch: too many/little open/close tags, file: {}".format(state.current_class), state)
|
print_error("Tag depth mismatch: too many/little open/close tags, file: {}".format(state.current_class), state)
|
||||||
|
|
Loading…
Reference in a new issue