SphinxにTwitter Cardを出力させる
Sphinx(実際はAblogですが)にTwitter cardを出力させてみます。
実際にはmake html(ablog build)一発では出力されず、出力後にhtmlファイルの修正が必要になります。
目次
Twitter Cardとは
Twitterのタイムラインを眺めていると、ウェブサイトを紹介するツイートにそのサイトのアイキャッチ画像が表示されていることがあります。これをhtmlのヘッダにメタタグを設定することで実現します。
HTMLにおけるTwitter Cardの設定の仕方
Cards Markup Tag Reference を参照してください。
最低限必要なタグはこれです。
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="タイトル" />
<meta name="twitter:description" content="サイトの説明文" />
<meta name="twitter:image" content="アイキャッチ画像の絶対URL"
これを<head>と</head>の間に書きます。
SphinxでのMetaタグ出力
SphinxからHTML出力するときのメタタグの指定は、metaディレクティブで行います。
.. meta::
:nameの内容: contentの内容
ちょっとわかりにくいのですが、これをHTML出力するとこうなります。
<meta name="nameの内容" content="contentの内容" />
card、title、description、imageのそれぞれにmetaディレクティブを書きます。つまり、metaディレクティブが少なくとも4つ必要になります。
ここで問題が発生します。
Sphinxのディレクティブのオプションにはコロンが使えません。
metaタグのnameにどうやってコロンを入れるか
¥でエスケープしてみる
¥でコロンをエスケープすると、エラーが出ずに通ります。しかし、¥(バックスラッシュ)も一緒にタグに出力されてしまいます。
HTMLエンコードしてみる
HTML内に<や>を書くときのようにエンコードしてみます。ところが、ビルドするとエンコード用の&もエンコードされてしまいます。 まあ、エンコードがうまくいってもTwitterが認識してくれるとは限らないのですが。
テキストエディタで直す
仕方がないので、テキストエディタで直すことにします。
自動化したいなあ。 Linuxの人ならgrepとsedで置換してしまうのでしょうねえ。
公開日
広告
PCカテゴリの投稿
- BlenderでマルチGPUをしてみた
- CPUとGPUの組み合わせでBlenderのレンダリングをしてみた
- Jupyter Notebookがすごい
- Jupyter notebookをWindows10にインストール
- SphinxにTwitter Cardを出力させる
- Surface Pro 6でトリプルディスプレイ
- Surface Pro 6のBlenderのレンダリング性能を測る
- USキーボードでプログラミングが捗るというのは本当なのか
- USキーボードの使用をやめた話
- Visual Studio CodeでSSHを使ってサーバーのファイルを編集する
- Visual Studio Codeで定型文(スニペット)を入力する
- reStructuredTextをdocx(Word形式)ファイルに変換してみた
- 安売りのPCにLinuxを入れようとしてハマった話
- 用紙のサイズのまとめ