Text 文本和 html 混合输入时候的格式化问题,有人遇到过吗?Python 中有相应的轮子吗?

2014-10-27 21:42:38 +08:00
 mywaiting
项目遇到个需求,说说吧:

1、原来的程序是像V2EX这样的,发帖只是有限的文本替换,把链接替换成<a></a>这样的,把视频的链接替换成<iframe>这样的,主要是以前留下的代码,跟V2EX帖子输出的格式化部分是差不多的。

2、现在要改造发帖的格式化过程,不限于简单的文本替换了,而是可以输入<a>这样的HTML标签,但是考虑到以前的用户帖子,无法强制要求用户都这样<p>xxxx</p>这样写帖子内容的吧?于是也可以直接写文本这样的帖子,比如像下面这样:

示例文本blalalal

<a href=weibo.com>Weibo</a>


当文本和HTML混合输入的时候,能否解析成下面这样呢:

<p>示例文本blalalal</p>
<p><a href="weibo.com">Weibo</a></p>


实在Google不出来相关的内容,如果可以给关键字我去研究一下。Python下面有没有相应的package是可以干这个的呢?实在不想折腾轮子了。非常感谢!
1919 次点击
所在节点    问与答
3 条回复
mywaiting
2014-10-27 22:07:49 +08:00
好吧,自己回复自己一个吧。有点着急过头了,静一下想想就知道怎么办了~

还算好解决的问题吧~

使用各种html tidy的实现tidy输出一次就好了,比如这个 lxml.soupparser

感谢围观~
msg7086
2014-10-27 23:20:23 +08:00
我会考虑反过来做。比如把用户输入先转成markdown/bbcode,然后再整体转回html。
mywaiting
2014-10-27 23:58:32 +08:00
@msg7086 老实说,上面示例的文本还真是挺适合用markdown来解析的说。

看了一下 Typecho的代码,发现他们有个 paragraph.php的文件是干我上面说的事情的,来来回回就是查找正则替换吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/141936

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX