从<code></code>块中删除HTML中的空行

时间:2013-08-26 14:07:37

标签: python html regex wordpress markdown

我正在使用Editorial用markdown撰写我的wordpress博客的帖子。

降价解析器完美地输出HTML代码,编辑嵌入式查看器以指定的格式和样式显示结果。
但是当我在 Wordpress 移动编辑器中粘贴 HTML 时,它会以错误的格式显示文本,显示太多空行。

例如:

# Header
Hello world, **this is Markdown!**

Other markdown paragraph!. 

解析为:

<h1>Header</h1>

<p>Hello world, <strong>this is Markdown!</strong></p>

<p>Other markdown paragraph!. </p>

在观众中显示为:

enter image description here

这是我的预期。

另一方面, Wordpress 移动应用程序将HTML代码显示为:

enter image description here

如您所见,行太空了。

我认为 CSS Wordpress 的段落和标题的边距配置为在上方放置一个空行,并且下面有一个空行。 但我无法修改CSS ,因此我的强力解决方案是删除HTML代码段落之间的空白行。这很好用,但这个过程很繁琐。

所以我想使用强大的编辑工具来构建工作流程来自动化流程 目标是编写一个python脚本,它采用生成的HTML并擦除空行,小心不要擦除位于代码块的空行,这是源代码示例。

我正在考虑使用正则表达式来找到空行并丢弃代码块的解决方案,但我对Python及其库很新,所以我尝试过的代码片段不起作用。

任何人都可以为我提供一个如何实现这一目标的示例,或者是我自己撰写的一般gideline?

感谢。

PD:发布这样的问题没有我尝试的任何示例/源代码是一个非常糟糕的主意,我知道,但是我的python代码是一个没有任何意义的noob-messy-heap代码,所以我决定不发布它。

1 个答案:

答案 0 :(得分:2)

假设您已将html加载为文本(HTML):

HTML = """
html
html

html

code-start
code
code

code
code-end

"""

new_html = ""
is_code = False
for line in HTML.split('\n'):
    # disable empty line remover when code starts
    if line == 'code-start':
        is_code = True
    # check for empty line/is_code
    if is_code or line != '':
        new_html += line+'\n'
    # enable empty line remover when code ends
    if line == 'code-end':
        is_code = False

print new_html        

当然,您必须将代码启动代码端替换为有效的html代码。

这只是一种快速而肮脏的方法,但可以帮助你。