makerst: Escape default values using reST markup
Otherwise the docs would complain about values like "godot_" which reST tries to interpret as an identifier.
This commit is contained in:
parent
fa0e682027
commit
55676b16da
2 changed files with 37 additions and 33 deletions
|
@ -148,6 +148,8 @@ class State:
|
||||||
setter = property.get("setter") or None # Use or None so '' gets turned into None.
|
setter = property.get("setter") or None # Use or None so '' gets turned into None.
|
||||||
getter = property.get("getter") or None
|
getter = property.get("getter") or None
|
||||||
default_value = property.get("default") or None
|
default_value = property.get("default") or None
|
||||||
|
if default_value is not None:
|
||||||
|
default_value = escape_rst(default_value)
|
||||||
overridden = property.get("override") or False
|
overridden = property.get("override") or False
|
||||||
|
|
||||||
property_def = PropertyDef(property_name, type_name, setter, getter, property.text, default_value, overridden)
|
property_def = PropertyDef(property_name, type_name, setter, getter, property.text, default_value, overridden)
|
||||||
|
@ -622,6 +624,40 @@ def make_class_list(class_list, columns): # type: (List[str], int) -> None
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
|
def escape_rst(text, until_pos=-1): # type: (str) -> str
|
||||||
|
# Escape \ character, otherwise it ends up as an escape character in rst
|
||||||
|
pos = 0
|
||||||
|
while True:
|
||||||
|
pos = text.find('\\', pos, until_pos)
|
||||||
|
if pos == -1:
|
||||||
|
break
|
||||||
|
text = text[:pos] + "\\\\" + text[pos + 1:]
|
||||||
|
pos += 2
|
||||||
|
|
||||||
|
# Escape * character to avoid interpreting it as emphasis
|
||||||
|
pos = 0
|
||||||
|
while True:
|
||||||
|
pos = text.find('*', pos, until_pos)
|
||||||
|
if pos == -1:
|
||||||
|
break
|
||||||
|
text = text[:pos] + "\*" + text[pos + 1:]
|
||||||
|
pos += 2
|
||||||
|
|
||||||
|
# Escape _ character at the end of a word to avoid interpreting it as an inline hyperlink
|
||||||
|
pos = 0
|
||||||
|
while True:
|
||||||
|
pos = text.find('_', pos, until_pos)
|
||||||
|
if pos == -1:
|
||||||
|
break
|
||||||
|
if not text[pos + 1].isalnum(): # don't escape within a snake_case word
|
||||||
|
text = text[:pos] + "\_" + text[pos + 1:]
|
||||||
|
pos += 2
|
||||||
|
else:
|
||||||
|
pos += 1
|
||||||
|
|
||||||
|
return text
|
||||||
|
|
||||||
|
|
||||||
def rstize_text(text, state): # type: (str, State) -> str
|
def rstize_text(text, state): # type: (str, State) -> str
|
||||||
# Linebreak + tabs in the XML should become two line breaks unless in a "codeblock"
|
# Linebreak + tabs in the XML should become two line breaks unless in a "codeblock"
|
||||||
pos = 0
|
pos = 0
|
||||||
|
@ -677,36 +713,7 @@ def rstize_text(text, state): # type: (str, State) -> str
|
||||||
pos += 2
|
pos += 2
|
||||||
|
|
||||||
next_brac_pos = text.find('[')
|
next_brac_pos = text.find('[')
|
||||||
|
text = escape_rst(text, next_brac_pos)
|
||||||
# Escape \ character, otherwise it ends up as an escape character in rst
|
|
||||||
pos = 0
|
|
||||||
while True:
|
|
||||||
pos = text.find('\\', pos, next_brac_pos)
|
|
||||||
if pos == -1:
|
|
||||||
break
|
|
||||||
text = text[:pos] + "\\\\" + text[pos + 1:]
|
|
||||||
pos += 2
|
|
||||||
|
|
||||||
# Escape * character to avoid interpreting it as emphasis
|
|
||||||
pos = 0
|
|
||||||
while True:
|
|
||||||
pos = text.find('*', pos, next_brac_pos)
|
|
||||||
if pos == -1:
|
|
||||||
break
|
|
||||||
text = text[:pos] + "\*" + text[pos + 1:]
|
|
||||||
pos += 2
|
|
||||||
|
|
||||||
# Escape _ character at the end of a word to avoid interpreting it as an inline hyperlink
|
|
||||||
pos = 0
|
|
||||||
while True:
|
|
||||||
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
|
|
||||||
text = text[:pos] + "\_" + text[pos + 1:]
|
|
||||||
pos += 2
|
|
||||||
else:
|
|
||||||
pos += 1
|
|
||||||
|
|
||||||
# Handle [tags]
|
# Handle [tags]
|
||||||
inside_code = False
|
inside_code = False
|
||||||
|
|
|
@ -213,9 +213,6 @@
|
||||||
<member name="mesh_library" type="MeshLibrary" setter="set_mesh_library" getter="get_mesh_library">
|
<member name="mesh_library" type="MeshLibrary" setter="set_mesh_library" getter="get_mesh_library">
|
||||||
The assigned [MeshLibrary].
|
The assigned [MeshLibrary].
|
||||||
</member>
|
</member>
|
||||||
<member name="theme" type="MeshLibrary" setter="set_theme" getter="get_theme">
|
|
||||||
Deprecated, use [member mesh_library] instead.
|
|
||||||
</member>
|
|
||||||
</members>
|
</members>
|
||||||
<signals>
|
<signals>
|
||||||
<signal name="cell_size_changed">
|
<signal name="cell_size_changed">
|
||||||
|
|
Loading…
Reference in a new issue