【问题标题】:Why my pug template doesn't render properly my converted Markdown?为什么我的哈巴狗模板不能正确呈现我转换后的 Markdown?
【发布时间】:2022-02-15 03:00:04
【问题描述】:

我有一个数据库(mongodb),我在其中存储了一个 html 格式字符串(从类似 markdown 的输入转换而来),但是当我尝试用 pug 渲染它时,它会复制 html...

viewController.js的getArticle函数是一个由'/article/:slug'路由调用的中间件

async function getArticle(req, res, next) {
  try {
    const article = await Article.findOne({ slug: req.params.slug });

    res.status(200).render('article', {
      [...],
      article /* see below to see his content */
    })

  } catch(err) {
    return next(err);
  }
}

文章内容:

{
  [...],
  "slug": "test-slug",
  "content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras aliquet metus ut luctus pulvinar. Maecenas faucibus",
  "sanitizedHtml": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras aliquet metus ut luctus pulvinar. Maecenas faucibus</p>"
}

然后,我尝试将其添加到名为 article.pug

的 pug 模板中
#{article.sanitizedHtml}

但是当我进入 localhost:8000/article/test-slug 时,我得到了这个 html:

<
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras aliquet metus ut luctus pulvinar. Maecenas faucibus
>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras aliquet metus ut luctus pulvinar. Maecenas faucibus
>

我尝试将此 html 格式复制并粘贴到 Pug 和 HTML 在线转换器中,但我没有收到此错误...我该怎么办?

【问题讨论】:

    标签: node.js express markdown pug mongoose-schema


    【解决方案1】:

    我能够复制这个问题,并且能够通过在你的 html 中添加一个 p-tag 来解决它:

    p #{article.sanitizedHtml}

    【讨论】:

    • 在你的情况下,我得到字符串“

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras aliquet metus ut luctus pulvinar. Maecenas faucibus

      ” 作为回应。但是,我不想那样。我想要一个 p-tag,我可以在其中阅读“Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras aliquet metus ut luctus pulvinar. Maecenas faucibus”而不是我的错误
    • 能否在将响应传递给 pug 进行渲染之前从 html sn-ps 中删除

      标签?

    • 另外,你用的是什么版本的哈巴狗?我使用的是 2.0.4 版本,这似乎工作正常。
    • 感谢您尝试帮助我,但我找到了解决方案。我没有写:“#{article.sanitizedHtml}”,而是写了“!= #{article.sanitizedHtml}”,它有效!见:how != works
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 2017-06-28
    • 2018-04-08
    • 1970-01-01
    相关资源
    最近更新 更多