@@ -94,6 +94,10 @@ def get_link_name(item: Path) -> str:
94
94
}
95
95
"""
96
96
97
+ def san (s : str ) -> str :
98
+ return s .replace ("&" , "&" ).replace ("<" , "<" ).replace (">" , ">" )
99
+
100
+
97
101
with open (ref / "palet.html" , "w" ) as file :
98
102
file .write (
99
103
'{{ comp.header "Palet Scripting Reference" }}\n '
@@ -111,9 +115,6 @@ def get_link_name(item: Path) -> str:
111
115
def text_to_str (t : dict ) -> str :
112
116
s = ""
113
117
114
- def san (s : str ) -> str :
115
- return s .replace ("&" , "&" ).replace ("<" , "<" ).replace (">" , ">" )
116
-
117
118
for c in t ["children" ]:
118
119
if c is True :
119
120
s += '<span class="palet-val">#t</span>'
@@ -143,23 +144,23 @@ def build_sig(vec: list[str | tuple]) -> str:
143
144
results .append (v )
144
145
continue
145
146
if len (v ) == 3 :
146
- results .append (f'<span class="palet-var">[{ v [0 ]} ]</span>' )
147
+ results .append (f'<span class="palet-var">[{ san ( v [0 ]) } ]</span>' )
147
148
else :
148
- results .append (f'<span class="palet-var">{ v [0 ]} </span>' )
149
+ results .append (f'<span class="palet-var">{ san ( v [0 ]) } </span>' )
149
150
return " " .join (results )
150
151
151
152
152
153
def build_var (v : str ) -> str :
153
154
result = ""
154
155
for p in v .replace ("(" , " ( " ).replace (")" , " ) " ).strip ().split (" " ):
155
156
if p in env :
156
- result += f'<a href="#{ p } ">{ p } </a> '
157
+ result += f'<a href="#{ p } ">{ san ( p ) } </a> '
157
158
elif p == "(" :
158
159
result += "("
159
160
elif p == ")" :
160
161
result = result [:- 1 ] + ")"
161
162
else :
162
- result += f"{ p } "
163
+ result += f"{ san ( p ) } "
163
164
return result .strip ()
164
165
165
166
def build_var_sig (sigs : list [str | tuple ]) -> str :
@@ -171,7 +172,7 @@ def build_var_sig(sigs: list[str | tuple]) -> str:
171
172
raise ValueError (f"bad signature: { sigs } " )
172
173
173
174
name , sig , * _ = s
174
- result += f'<p class="mono"> <span class="palet-var">{ name } </span>'
175
+ result += f'<p class="mono"> <span class="palet-var">{ san ( name ) } </span>'
175
176
result += f' : { build_var (sig )} '
176
177
177
178
result += f" = { build_var (s [2 ])} </p>\n " if len (s ) > 2 else "</p>\n "
@@ -197,22 +198,22 @@ def build_var_sig(sigs: list[str | tuple]) -> str:
197
198
if some ["tag" ] == "value" :
198
199
file .write (
199
200
'<div class="palet-block">\n '
200
- f'<p class="mono">{ some ["name" ]} \n '
201
+ f'<p class="mono">{ san ( some ["name" ]) } \n '
201
202
f' : <a href="#{ some ["sig" ]} ">{ some ["sig" ]} </a>'
202
203
' Value</p>\n </div>\n '
203
204
f"<p>{ text_to_str (some ['summary' ])} </p>\n "
204
205
)
205
206
if some ["tag" ] == "syntax" :
206
207
file .write (
207
- f'<div id="{ some ["name" ]} " class="palet-block">\n '
208
+ f'<div id="{ san ( some ["name" ]) } " class="palet-block">\n '
208
209
f'<p class="mono">(<b>{ some ["name" ]} </b> { some ["body" ]} )'
209
210
' Syntax</p>\n </div>\n '
210
211
f"<p>{ text_to_str (some ['summary' ])} </p>\n "
211
212
)
212
213
if some ["tag" ] == "pred" :
213
214
file .write (
214
215
f'<div id="{ some ["name" ]} " class="palet-block">\n '
215
- f'<p class="mono">(<b>{ some ["name" ]} </b> { build_sig (["v" ])} )'
216
+ f'<p class="mono">(<b>{ san ( some ["name" ]) } </b> { build_sig (["v" ])} )'
216
217
' → <a href="#bool?">bool?</a> Procedure</p>\n '
217
218
f'<p class="mono"> <span class="palet-var">v</span>'
218
219
' : <a href="#any?">any?</a></p></div>\n '
@@ -224,7 +225,7 @@ def build_var_sig(sigs: list[str | tuple]) -> str:
224
225
assert isinstance (rname , str ), rname
225
226
file .write (
226
227
f'<div id="{ some ["name" ]} " class="palet-block">\n '
227
- f'<p class="mono">(<b>{ some ["name" ]} </b> { build_sig (varsigs )} )'
228
+ f'<p class="mono">(<b>{ san ( some ["name" ]) } </b> { build_sig (varsigs )} )'
228
229
+ ("" if rname == "none" else f' → { build_var (rname )} ' )
229
230
+ ' Procedure</p>\n '
230
231
)
0 commit comments