【问题标题】:How does mentions works in markdown files (*.md) or any other text?提及如何在降价文件 (*.md) 或任何其他文本中工作?
【发布时间】:2020-08-08 12:06:19
【问题描述】:

我想开一个 React/Next/Vue 博客,真的无所谓,唯一重要的是它会基于 JavaScript 框架,关于猫

例如,我有一个带有cats 的数据库:

ID    Name (<= unique)
 1   Kitty
 2   Catty
 N   .....

所以我想在 Markdown 中写一些关于我的猫的很酷的事实,比如一篇博客文章:

  fact_one.md

My cats are @Kitty and @Catty and they are awesome!

然后发布。稍后,假设每只猫都有一个个人页面,当它访问该页面时,它会看到(不管具体如何)这只小猫在fact #1 中被提及。

要点:

我不是在问,浏览器通知的工作原理、事件监听器等等。我问的是:

  • 我究竟应该通过 @ (任何正则表达式模式)等符号在文本中解析用户提及的内容?
  • 在这种情况下使用降价不合适吗?也许有更好的方法?
  • 您会推荐什么npm 模块/博客文章?

例如,我查看了marked.jsGFM,但我仍然不确定。

我的意思是,如果我的博客变得流行,如果我的每篇文章都存储为原始的*.md 文件,那将是一个问题,我想我应该将它存储在数据库中。最好的方法是什么?我的意思是将文本存储为 markdown/html 语法中的字段,还是将 raw *.md 存储为二进制?但是,如果我将文本存储在数据库中,如何控制提及?还是有别的办法?

因此,每条有用和有用的信息都会受到赞赏和奖励。

【问题讨论】:

  • 这取决于您要使用的用户名格式。如果您的用户名没有空格,您可以在@@ 之后的空格之间查找用户名。
  • 说实话,标记用户并不是一个真正的问题,我为每只猫派生了一个slugName,所以不会有空格等等。所以每次我写这样的东西时:@Catty 它将是@catty

标签: javascript node.js markdown node-modules github-flavored-markdown


【解决方案1】:

您可以使用像\s@(\w+) 这样的正则表达式来匹配和捕获名称。

在数据库中保存新帖子或更新帖子时,您可以提取提及并将它们更新为个人页面和带有提及的帖子之间的关系。

【讨论】:

  • 好的,谢谢。我也考虑过,比如每次在创建/更新时检查 md 文件以获取提及。
猜你喜欢
  • 2021-07-10
  • 2013-11-28
  • 2023-03-19
  • 2014-08-24
  • 2013-07-09
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 2020-12-03
相关资源
最近更新 更多