-1

我正在使用编辑来写我的带有降价的 WordPress 博客的帖子。

markdown 解析器完美地输出 HTML 代码,Editorial 嵌入式查看器以预期的格式和样式显示结果。但是当我在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>

在查看器中显示为:

在此处输入图像描述

这是我所期望的。

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

在此处输入图像描述

如您所见,空行太多。

我认为WordPress的CSS表将段落和标题的边距配置为在上面放一个空行,在下面放一个空行。但我无法修改那个 CSS,所以我的蛮力解决方案是删除 HTML 代码中段落之间的空白行。这工作正常,但过程很乏味。

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

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

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

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

4

1 回答 1

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        

当然,您必须将code-startcode-end替换为有效的 html 标记。

这只是一种快速而肮脏的方法,但应该对您有所帮助。

于 2013-08-26T14:26:04.647 回答