要約
- Twitter側で勝手にリンクに変換されそうな内容は、ゼロ幅スペース(
\u2003
)を入れて回避できる - 見た目は変化がないが、実際にはゼロ幅スペースが入ってしまっているので、コピペで使ってもらう場合は推奨しない(わかりにくいバグに繋がるかもしれない)
参考:
背景
tweet時に勝手にリンクを貼ってしまう時がある。メンション、URL、ドメイン、ハッシュタグなど。プログラミングのネタをタイトルに含めるとしばしばその条件に反応してしまい意図しないリンクが貼られてしまう。
そこでtwitter側で勝手にリンクを貼らないようにできないか探ったが、なさそうだった。しかし、上記の参考先に上げた内容をみたところ、置き換える条件に一致しない文字列にしてしまえばリンクに変換しなくなるらしい。その方向で回避してみることにした。
確認
はてなBlogのタイトルの twitter.com
の .
の前にゼロ幅スペース(\u2003
)がない場合、ある場合の記事を投稿し、ツイート連携の結果を比較する。
ツイッター連携は以下。
確認結果
項目 | なし | あり |
---|---|---|
はてなBlogのタイトル | なし | あり |
はてなBlogのRSS上のタイトル | なし | あり |
はてなBlogのTwitter連携 | ![]() |
![]() |
IFTTTのRSS→Twitter連携 | ![]() |
![]() |
IFTTTは登録してからの最新しかとってくれないようだったので記事を投稿しなおしたりしたため、タイトルが微妙に違う。
はてなBlog側でゼロ幅スペースを勝手に消すことはなさそうだった。
ただ、どちらもゼロ幅スペースがあると自動的にリンクされなくなるので、こういった目的にはよいかもしれない。
参考: メンションなどの他のものはどうやって回避しているか?
参考にした実装を眺めると以下のようにやっていた。
https://github.com/rhysd/break-tweet-autolink/blob/master/index.ts#L54
また、twitter-textというtwitterの投稿内容をパースするライブラリがあり、その実装をみるとリンクに置き換わる箇所をどう判定しているか分かるかもしれない(list-slugとか初めて知った)