从HTML中删除空行,除了在<code></code>块中

2024-09-27 17:48:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Editorial来写我的wordpress博客的文章。在

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

例如:

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

Other markdown paragraph!. 

解析为:

^{pr2}$

在查看器中显示为:

{1美元^

这正是我所期望的。在

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

enter image description here

如你所见,空行太多了。在

我认为Wordpress的CSS页有段落和标题的边距,上面有一个空行,下面有一个空行。<强>但我不能修改CSS <强>,所以我的蛮力解决方案是删除HTML代码段落之间的空行。这样做很好,但过程很乏味。在

因此,我想使用强大的编辑工具来构建一个工作流,使流程自动化。
我们的目标是编写一个python脚本,它接受生成的HTML并删除空行,注意不要删除位于代码块的空行,这些空行是源代码示例。在

我正在考虑一种解决方案,使用正则表达式来查找空行并丢弃代码块,但我对Python及其库还很陌生,所以我尝试的代码片段没有起作用。在

任何人都可以给我举一个例子来说明如何做到这一点,或者吉德林将军亲自来写?

谢谢。在

PD:我知道,在没有任何示例/源代码的情况下发布此类问题是一个非常糟糕的主意,但我的python代码是一堆毫无意义的乱七八糟的代码,所以我决定不发表。


Tags: 代码解析器编辑示例源代码html文章wordpress
1条回答
网友
1楼 · 发布于 2024-09-27 17:48:26

假设您已将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标记替换代码开始代码结束。在

这只是一个快速和肮脏的方法,但应该会帮助你。在

相关问题 更多 >

    热门问题