@@ -181,31 +181,21 @@ def handle_placeholders(self, content):
181
181
elif placeholder_pair == "language-footer" :
182
182
re_pattern = re .compile (
183
183
r"""
184
- # Language footer - normal
185
- ^\s*<p\ class="shaded(?:\ a-nobreak)?">\s*
186
- <a(?:\ name="languages")?\ id="languages">
187
- .*(?:\s*</p>)?
188
- (?=\s*</div>\s*</div>\s*<div\ id="deed-foot">)
189
- # Language footer - missing 2nd closing div
190
- |
191
- ^\s*<p\ class="shaded(?:\ a-nobreak)?">\s*
192
- <a(?:\ name="languages")?\ id="languages">
193
- .*\s*</p>
194
- (?=\s*</div>\s*<div\ id="deed-foot">)
195
- # Language footer - extra list markup w/random " char
196
- |
197
- ^\s*<p\ class="shaded(?:\ a-nobreak)?">\s*
198
- <a(?:\ name="languages")?\ id="languages">
199
- .*\s*</p>
200
- (?=
201
- \s*</li>\s*</ol>\s*</div>\s*</div>\s*"
202
- \s*<div\ id="deed-foot">
184
+ # Language list
185
+ (?P<prefix>
186
+ ^\s*<p\ class="shaded(?:\ a-nobreak)?">\s*
187
+ <a(?:\ name="languages")?\ id="languages">
188
+ .*?</a>[^<]+
203
189
)
190
+ (?P<languages>
191
+ .*?</a>[.。]
192
+ )
193
+ (?=.*officialtranslations)
204
194
""" ,
205
195
re .DOTALL | re .MULTILINE | re .VERBOSE ,
206
196
)
207
- target = re_pattern .search (content ).group ()
208
- replacement = f"{ start } \n { target .strip ()} \n { end } \n "
197
+ target = re_pattern .search (content ).group ("languages" )
198
+ replacement = f"\n { start } \n { target .strip ()} \n { end } \n "
209
199
content = content .replace (target , replacement , 1 )
210
200
return content
211
201
0 commit comments