Use str.replace() instead of regex. #13
This commit is contained in:
parent
fe63458a51
commit
a3d392c4fb
2 changed files with 17 additions and 18 deletions
|
@ -4,7 +4,6 @@ from panflute import TableRow, TableCell, Caption, Doc
|
|||
from panflute import ListContainer, Element
|
||||
from typing import Union, Dict
|
||||
|
||||
import re
|
||||
import os
|
||||
import io
|
||||
import warnings
|
||||
|
@ -33,12 +32,12 @@ class HTMLGenerator(OutputGenerator):
|
|||
super().generate(e)
|
||||
|
||||
def escape_special_chars(self, text: str) -> str:
|
||||
text = re.sub(re.compile(r"&"), "&", text)
|
||||
text = re.sub(re.compile(r"<"), "<", text)
|
||||
text = re.sub(re.compile(r">"), "&rt;", text)
|
||||
text = re.sub(re.compile(r"\""), """, text)
|
||||
text = re.sub(re.compile(r"'"), "'", text)
|
||||
# text = re.sub(re.compile(r" '), " ", text) # Don't replace no-break spaces with HTML escapes, because we trust unicode?
|
||||
text = text.replace("&", "&")
|
||||
text = text.replace("<", "<")
|
||||
text = text.replace(">", "&rt;")
|
||||
text = text.replace("\"", """)
|
||||
text = text.replace("'", "'")
|
||||
# text = text.replace(" ", " ") # Don't replace no-break spaces with HTML escapes, because we trust unicode?
|
||||
return text
|
||||
|
||||
def stag(self, tag: str, attributes: Dict[str,str]={}) -> str:
|
||||
|
|
|
@ -23,17 +23,17 @@ class LaTeXGenerator(OutputGenerator):
|
|||
super().generate(e)
|
||||
|
||||
def escape_special_chars(self, text: str) -> str:
|
||||
text = re.sub(re.compile(r"&"), "\\&", text)
|
||||
text = re.sub(re.compile(r"%"), "\\%", text)
|
||||
text = re.sub(re.compile(r"\$"), "\\$", text)
|
||||
text = re.sub(re.compile(r"#"), "\\#", text)
|
||||
text = re.sub(re.compile(r"_"), "\\_", text)
|
||||
text = re.sub(re.compile(r"\{"), "\\{", text)
|
||||
text = re.sub(re.compile(r"\}"), "\\}", text)
|
||||
text = re.sub(re.compile(r"~"), "\\textasciitilde{}", text)
|
||||
text = re.sub(re.compile(r"\^"), "\\textasciicircum{}", text)
|
||||
text = re.sub(re.compile(r"\\"), "\\textbackslash{}", text)
|
||||
text = re.sub(re.compile(r" "), "~", text) # We use unicode no-break spaces to force nbsp in output
|
||||
text = text.replace("&", "\\&")
|
||||
text = text.replace("%", "\\%")
|
||||
text = text.replace("$", "\\$")
|
||||
text = text.replace("#", "\\#")
|
||||
text = text.replace("_", "\\_")
|
||||
text = text.replace("{", "\\{")
|
||||
text = text.replace("}", "\\}")
|
||||
text = text.replace("~", "\\textasciitilde{}")
|
||||
text = text.replace("^", "\\textasciicircum{}")
|
||||
text = text.replace("\\", "\\textbackslash{}")
|
||||
text = text.replace(" ", "~") # We use unicode no-break spaces to force nbsp in output
|
||||
return text
|
||||
|
||||
def stag(self, tag: str, attributes: Dict[str,str]={}) -> str:
|
||||
|
|
Loading…
Reference in a new issue