【问题标题】:Removing markdown formatting for quick excerpt删除 Markdown 格式以快速摘录
【发布时间】:2012-03-31 12:17:51
【问题描述】:

有人知道可以帮助我使用现有的降价格式内容创建快速摘录的脚本或已构建的函数吗?

我正在查看诸如 StackOverflow 之类的格式化结果,其中我有标题和简短的摘录,基本上是新闻视图。我想完全删除markdown,只保留几个字。

我担心的是我将使用 codeigniter 助手word_limiter()来限制输出。这可能会造成损坏的降价:

**This is a sentence which has some _markdown_ that is [cutoff..

所以我不知道该怎么做。

我所有的内容都是用 markdown(不是 HTML 格式)存储的,否则我会做 'striptags' 等;

我在这里找到了类似 Ruby on SO 的东西:Truncate Markdown?,但我喜欢 PHP 的东西。

我只是不确定我是否应该基本上删除所有*_[]()> 字符?但是如果有一个 URL(分成两半),我担心它会看起来很糟糕。

想法?我环顾四周,但乍一看还没有发现任何剥离降价的东西。

【问题讨论】:

    标签: php codeigniter markdown


    【解决方案1】:

    考虑标记文本,然后运行 ​​strip_tags。

    -- 更新--

    还有其他几个选项,如果您不想标记文本只是为了去除标签,您可以:

    1. 引入正则表达式以去除降价元素

    2. 将内容存储在数据库中,没有标记/降价,只有文本

    3. 如果你标记然后strip_tags,你可以将结果存储在memcache中以避免额外的开销

    【讨论】:

    • 问题是我不想处理整个内容块,我只想抓取 200 个字符(来自数据库)
    • 内容块有那么大吗?它们实际上会影响页面的加载时间吗?如果你实现分页,比如 20 到 30 条新闻,我认为不会那么痛苦。
    • 它们并没有那么大,但我试图使解决方案变得优雅,而不必进行转换,只在之后剥离标签然后缩短文本,这似乎有点矫枉过正。跨度>
    • 我会把它给你,因为我只是让它保持简单,你是对的,因为它的内容不多,我可以抓住它,markitdown 然后 strip_tag 它,然后缩短。所以我决定这样做。谢谢!
    • 对于任何使用正则表达式选项的人,这是我想出的一个草率的/(?<=\n|^)\s*(#|```([A-Za-z-_]+)?)|((\*{1,2}|_{1,2}|~{2}|\[|\]|\(|\)|`))/。问题是这将删除所有没有任何 Markdown 角色的字符,例如 * ** _ __ ~~ [ ] ( ),例如Hello _world 将失去其_
    猜你喜欢
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 2015-02-13
    • 2015-12-29
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多