Различные результаты работы Django Server и PyCharm
Я столкнулся с проблемой, что я получаю разные результаты, выполняя один и тот же код на PyCharm и на Django Server. PyCharm дает ожидаемый и необходимый результат, так что это проблема, которую нужно решить. Потому что я использую PyCharm только для тестирования.
Входная строка:
# HTML
HTML is a markup language that can be used to define the structure of a web page. HTML elements include
* headings
* paragraphs
* lists
* links
* and more!
The most recent major version of HTML is HTML5.
Код:
# A list of simple markdown and there html aquvalents.
# First element is the inner html/markdown second is the whole markdown, third is the starting html tag and fourth the closing html tag
regex_hugging_html = [
[r"(?<=^#{1})[^#][^\n]*$", r"^#{1}[\s]*[^#][^\n]*$", "<h1>", "</h1>"], # heading first level (#)
[r"(?<=^#{2})[^#][^\n]*$", r"^#{2}[\s]*[^#][^\n]*$", "<h2>", "</h2>"], # heading second level (##)
[r"(?<=^#{3})[^#][^\n]*$", r"^#{3}[\s]*[^#][^\n]*$", "<h3>", "</h3>"], # heading third level (###)
[r"(?s)\*\*(.*?)\*\*", r"(?s)\*\*.+?\*\*", "<b>", "</b>"], # boldface (** **)
[r"(?s)__(.*?)__", r"(?s)__.+?__", "<b>", "</b>"], # boldface (__ __)
[r"(?s)\n{2}(.+?)(?=\n{2}|\Z)", r"(?s)(\n{2}.+?)(?=\n{2}|\Z)", "<p>", "</p>"], # paragraphs (blank line)
]
def markdown_to_html(markdown):
html = markdown
for replacer in regex_hugging_html:
# Find all occurances of the markdown expression
for substr in re.compile(replacer[0], re.M).findall(html):
# Replace the complet markdown expresion with the inner string surrounded by html
html = re.compile(replacer[1], re.M).sub(replacer[2] + substr.strip() + replacer[3], html, count=1)
return html
Если я распечатаю html в Pycharm, то получу следующий вывод:
<h1>HTML</h1><p>HTML is a markup language that can be used to define the structure of a web page. HTML elements include</p><p>* headings
* paragraphs
* lists
* links
* and more!</p><p>The most recent major version of HTML is HTML5.</p>
На моем Django-сервере вывод выглядит следующим образом:
<h1>HTML</h1>
HTML is a markup language that can be used to define the structure of a web page. HTML elements include
* headings
* paragraphs
* lists
* links
* and more!
The most recent major version of HTML is HTML5.
Так вы можете увидеть недостающие теги абзацев из html, так же, как я осматриваю сторону.
Как это может быть, я понятия не имею?
Я попробовал его на PyCharm, так как столкнулся с проблемой, и, как я вижу, он должен работать правильно.