从twitter 支持的起点来看,基本规则似乎是主题标签必须以空格开头,并在任何空格或标点符号处停止。
引自 Twitter 的支持:
检查您的主题标签以获取以下内容:
- 主题标签中或之后是否有任何符号?
- 如果您写#noican't,您的消息将被归类为#noican。标点符号( , . ; ' ? ! 等)将在标点符号出现的地方结束您的主题标签。
- #symbol 前面有字母吗?
- 如果你写 23#idoittoo 或 word#idoittoo,你的推文将不会显示在标签 #idoittoo 的搜索中。Hashtags 不适用于# 符号前面的字母或数字。# 符号前面必须有一个空格,才能在搜索中正确显示。
因此,初始标记#
前面有一个空格,终止符是任何空格或标点符号。他们的标点符号列表中的“等”(“ , . ; ' ?
经过一段时间的挖掘,我发现了 Terence Eden 的一些有趣的博客文章(Hashtags and Implicit Knowledge , Hashtag Standards),这些文章提供了 Twitter 甚至没有标准的证据,因为它在不同平台上开发的软件似乎有不同的什么是主题标签的规则。
它还提供了一个指向 Twitter 一致性库的链接,其中包含twitter / twitter-text-conformance / autolink.yml。autolink.yml中的hashtag
部分有很多符合上述规则的情况,但也有一些违反它们的情况仍然应该自动链接。一些例子:
- description: "DO NOT Autolink all-numeric hashtags"
text: "text #1234"
expected: "text #1234"
- description: "Autolink hashtag preceded by a period"
text: "text.#hashtag"
expected: "text.<a href=\"http://twitter.com/search?q=%23hashtag\" title=\"#hashtag\" class=\"tweet-url hashtag\">#hashtag</a>"
- description: "Autolink hashtag with full-width hash (U+FF03)"
text: "#hashtag"
expected: "<a href=\"http://twitter.com/search?q=%23hashtag\" title=\"#hashtag\" class=\"tweet-url hashtag\">#hashtag</a>"
这些只是与第一篇支持文章中给出的基本规则不匹配的几个示例,不幸的yml
是,其中还有很多其他示例。