V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mywaiting
V2EX  ›  问与答

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

  •  
  •   mywaiting · 2014-10-27 21:42:38 +08:00 · 1972 次点击
    这是一个创建于 3682 天前的主题,其中的信息可能已经有所发展或是发生改变。
    项目遇到个需求,说说吧:

    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是可以干这个的呢?实在不想折腾轮子了。非常感谢!
    3 条回复    2014-10-27 23:58:32 +08:00
    mywaiting
        1
    mywaiting  
    OP
       2014-10-27 22:07:49 +08:00
    好吧,自己回复自己一个吧。有点着急过头了,静一下想想就知道怎么办了~

    还算好解决的问题吧~

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

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

    看了一下 Typecho的代码,发现他们有个 paragraph.php的文件是干我上面说的事情的,来来回回就是查找正则替换吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1819 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:34 · PVG 00:34 · LAX 08:34 · JFK 11:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.