РЕДАКТИРОВАТЬ:
Используйте python-markdown2 для обработки ввода и попросите пользователей сделать отступ в областях кода.
>>> print html
I like this article, but the third code example <em>could have been simpler</em>:
#include <stdbool.h>
#include <stdio.h>
int main()
{
printf("Hello World\n");
}
>>> import markdown2
>>> marked = markdown2.markdown(html)
>>> marked
u'<p>I like this article, but the third code example <em>could have been simpler</em>:</p>\n\n<pre><code>#include <stdbool.h>\n#include <stdio.h>\n\nint main()\n{\n printf("Hello World\\n");\n}\n
\ n '>>> печать помечена
Мне нравится эта статья, но третий пример кода мог бы быть проще :
#include <stdbool.h>
#include <stdio.h>
int main()
{
printf("Hello World\n");
}
Если вам все еще нужно перемещаться и редактировать его с BeautifulSoup, сделайтематериал ниже.Включите преобразование сущностей, если вам нужно вставить «<» и «>» (вместо «<» и «>»).
soup = BeautifulSoup(marked,
convertEntities=BeautifulSoup.HTML_ENTITIES)
>>> soup
<p>I like this article, but the third code example <em>could have been simpler</em>:</p>
<pre><code>#include <stdbool.h>
#include <stdio.h>
int main()
{
printf("Hello World\n");
}
def загущенный (суп): "" "
blah blah <entity> blah
blah
" "" codez = soup.findAll ('code') # получить теги кода для кода в codez: # взять все содержимое внутри кодатеги и преобразовать их в одну строку escape_me = '' .join ([k .__ str __ () для k в code.contents]) escaped = cgi.escape (escape_me) # экранировать их с помощью cgi code.replaceWith ('
%s
'% escaped) # replace Объекты Tag на экранированную строку возвращают суп