Twitter で URL が自動的にリンクされないようにする

TL;DR

  • ドット . の代わりに1点ドットリーダ を使う

背景

このブログは名前を text.superbrothers.dev としています。そして各エントリの HTML title タグの構造を {エントリタイトル} - text.superbrothers.dev としています。この状態で、特定エントリを Twitter でポストするために HTML title タグから取得した文字列とエントリ URL を投稿しようとすると、Twitter カードとして展開されるのはエントリ URL ではなく、title タグに含まれる text.superbrothers.dev になってしまいます。

これは text.superbrothers.dev が URL 判定されてしまうことで、ポストされる文字列に2つの URL が存在すると判定され、先に出てくる URL が優先される処理になっているためだと考えられます。ここで対処方法として考えたのは当然ながら「ブログの名前を変える」です。ただ、ブログの名前を素直に変えるのは考えるのが面倒なので却下です。そこで、スラッシュの利用が禁止されているフォームで代わりによく似た文字で代替するというテクニックが使われていることを知っていたので、同じようにドットに似た文字列がないかを探したら、まさにドンピシャなエントリが見つかったのでその紹介です。

1点ドットリーダ

How To Stop Twitter Auto Linking URLs – Terence Eden’s Blog では、目的は異なるものの Twitter で URL が自動的にリンクされない方法としていくつかのドットの代替文字を紹介しています。その1つが1点ドットリーダです。

ユニコード名 表示 コード
Full stop(終止符) . U+002E
One dot leader(1点ドットリーダ) U+2024

Full stop はいわゆるドット、ピリオドです。今回代替文字として利用した One dot leader は、よく調べていませんが3点リーダのために使うものなんでしょうか。英語圏で3点リーダはもちろん3つのドットを並べるのだと思いますが、本来はドット、ピリオドではなく、1点ドットリーダを3つ並べないといけないのかもしれません。

実際にブログ名を text.superbrothers.dev(ドット) から text․superbrothers․dev(1点ドットリーダ)に変更したところ、その部分が URL 判定されなくなり、結果として正しくエントリ URL が Twitter カードとして展開できるようにしました。

1つ注意する点として、この1点ドットリーダを使った URL 風の文字列は、どの場面でも URL として判定されなくなります。例えばブラウザのアドレスバーに入力してもドットではないので当然ながら URL として判定されません。ぱっと見で気づくことが難しいので利用する際は注意してください。

まとめ

Twitter で URL が自動的にリンクされないようにするには、1点ドットリーダ()をドット、ピリオド(.)の代わりに使うのが1つのやり方です。