Skip to content

m0370/pukiwiki_tweet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

pukiwiki自作プラグイン tweet.inc.php

PukiwikiにTwitterの単体のツイートを埋め込むだけのプラグインです。

TLの複数のツイートを埋め込んだり検索結果を表示するような高度な機能は備えていません。JavaScriptを利用しているので自分のpukiwikiサーバにはほとんど負荷をかけません。キャッシュとしてツイート内容を保存しておき、2回目の表示からはフォールバックとしてツイートをキャッシュから表示することができます。

自分のpukiwikiを「はてなダイアリー」的なブログのように利用するために自作して自分だけで使っていたプラグインですが、せっかく作ったので公開しておきます。

詳しくはこちらのサイトもご覧ください。 https://oncologynote.jp/?b723fa4260

設置方法

  1. pluginフォルダにtweet.inc.phpを設置します。
  2. キャッシュの保存場所のためにcacheフォルダ内にtweetというサブフォルダを作っておきます。このフォルダには読み書き可能なパーミッション(666)を与えます。

使い方

#tweet(1375069974583074816)
// ツイートIDを書く場合

#tweet(https://twitter.com/m0370/status/1375069974583074816)
// ツイートURLを書く場合

上記のように記載すればツイートが表示されます。

変更履歴

ver2.1までの変更点

ver1.0と比べての変化点は、TwitterのサイトからJSONでツイート内容を取得してキャッシュしておく機能が付いた点です。また、ver2.0からver2.1に変わるときにキャッシュファイルの形式を変更しました(拡張子も.datから.txtに変更し、互換性はありません)。

ver2.2の変更点

https://platform.twitter.com/widgets.js を遅延読み込みで呼び出す方法を、 lazysizes.js を使わずにこのプラグイン単独で対応しています。

具体的には初回スクロール(scroll)または初回マウス移動(mousemove)で発火するjavascriptを使ってwidget.jsを読み込んでいます。このjavascriptはスキンの$head_tagの中に配置するようにしています。初回スクロールで発火するjavasriptは下記のサイトを参考にさせていただきました。なお、widgets.jsをpreloadで読み込むようにすることでさらに高速化が図れます。

https://q-az.net/lazy-load-script/

ver2.3の変更点

第2引数以降の引数にnoimgまたはnoconvとつけると、それぞれ画像を非表示にしたりリプライツイートのスレッドを非表示にできます。両方を併用することもできます。

しくみ

Twitter Publishで発行されるHTMLタグを出力するだけなので単純な構造です。プラグインの第1引数にツイートIDかツイートのURLのどちらかを記載します。これによって、旧版ver1.0ではフォールバックを記載しておくことができましたが、ver2.0以降ではJSONキャッシュから自動でフォールバックが作成されます。

昔すぎるツイートは読み込めません

ツイートのURLでもツイートIDでも使用できるようにしていますが、ツイートIDかどうかを判定するところを暫定的に9桁で判定しているので、非常に昔のツイート(ツイートIDが8桁以下だった時代)のツイートは読み込めません。

ぼくがTwitterを始めた2007年6月の時点ですでにツイートIDは9000万台なので、ツイートIDが8桁と言えば2007年夏頃までの古いツイートでしょうか…(ちなみに当時のTwitterはまだインターフェイスが日本語化されておらず非常にマイナーでした)。

About

Pukiwiki自作プラグイン tweet.inc.php

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages