レ点腫瘍学ノート

pukiwikiカスタマイズ箇所/2020 の履歴の現在との差分(No.2)


#author("2020-04-25T20:04:56+09:00;2020-04-25T16:56:10+09:00","default:tgoto","tgoto")
*Pukiwiki 1.5.3へのアップデート
#author("2024-03-29T09:38:25+09:00;2020-04-30T08:09:28+09:00","default:tgoto","tgoto")
これまで[[pukiwikiカスタマイズ箇所/2018]]、[[pukiwikiカスタマイズ箇所/2019]]で書いてきたような改造を続けてきましたが、2020年もpukiwikiに対してのカスタマイズを追加しています。その過程を忘れてしまわないように記録しておきます。

pukiwikiは一時期ほとんどアップデートが止まっていましたが、最近になって1.5.2そして1.5.3と立て続けにアップデートがリリースされました。主にPHPのバージョンアップへの対応ですが、本家でもついにレスポンシブに対応するなどモバイルユーザビリティを意識したアップデートになりました。
#contents

#ogp(https://pukiwiki.osdn.jp/?PukiWiki/Download/1.5.3,amp)
*Pukiwiki 1.5.3へのアップデート [#f87f9e77]

これまでに多数のカスタマイズを加えていたために、1.5.3へのアップデートはかなり苦労しました。特に、AMP対応とURL短縮を維持したままでPHPファイルを置き換えるのに、PHPエラーが出て表示が真っ白になってしまったりして随分と修正に時間がかかりました。
#ogpi(https://oncologynote.jp/?80fea5855e,prefetch)

そのまま上書きしてしまっては現行の機能が損なわれたり設定が初期化されるなどして困るのは次のファイルです。
*サイト構造化データ(JSON-LD)への対応 [#e2fbaa57]

- default.ini.php
- en.lng.php
- ja.lng.php
- pukiwiki.ini.php
- lib/func.php
- lib/html.php
- lib/makelink.php
- lib/pukiwiki.php
- plugin/edit.php
- plugin/newpage.php
- plugin/read.php
- plugin/ref.php
- plugin/search.php
- plugin/topicpath.php
#ogpi(https://oncologynote.jp/?ab056d28f5)
#ogpi(https://oncologynote.jp/?ce7e54ca7d)
#ogpi(https://oncologynote.jp/?0eff11efc5)

また、attach、backup、cache、counter、diff、skin、wikiのフォルダは一切触れません。そして、下記のファイルは使用しないので、これもまた触りません(削除してしまっても問題ないと思います)
*AMP対応の改善 [#gf3253b9]

- keitai.ini.php
- rules.ini.php
#ogpi(https://oncologynote.jp/?78d3e6b858)
#ogpi(https://oncologynote.jp/?a9db412a51)
#ogpi(https://oncologynote.jp/?ed13e08e9b)
#ogpi(https://oncologynote.jp/?c0f678f270)
#ogpi(https://oncologynote.jp/?d310f6b14d)

これらのカスタマイズ箇所を上書きしてしまわないように気をつけつつ、慎重にアップデートを行います。カスタマイズ箇所を探すにはテキストファイルの差分(diff)がかんたんに表示できるソフトウェアが便利です。macの場合はFilemergeが活用できました。
*CDN(Cloudflare)対応 [#d3471e9c]

*JSON-LDへの対応
#ogpi(https://oncologynote.jp/?30974ad92d)

SEOにどれほど貢献するのかは不明ですが、検索エンジンで(たとえばがんゲノムなどの)当サイトで記事を書いているキーワードがあったときに表示されやすくなればと思ってJSON-LDへの対応を行いました。JSON-LD以外にもschema.orgに対応しているフォーマットであればどれでも良いのですが、JSON-LDはHTMLのどこに書いても良いというのがPukiwikiカスタマイズとの相性の面で利便性が高いと思います。当サイトではHTMLのbodyの末尾につけています。
*ref.inc.phpプラグインのWEBP画像フォールバック対応 [#a5ef8982]

また、OGP imageにも対応できるようにPHPで分岐を作っています。
#ogpi(https://oncologynote.jp/?5b041d2a93)

#ogp(https://developers.google.com/search/docs/data-types/article?hl=ja,amp)
*リンクのprefetch対応(instant.pageでprefetchを効率化する) [#c09969ab]

> <script type="application/ld+json">
> 	{
> 	"@context": "http://schema.org",
> 	"@type": "Article",
> 	"name": "<?php echo $title ?> - <?php echo $page_title ?>",
> 	"author": "author",
> 	"author.name": "author",
> 	"datePublished": "<?php echo substr($lastmodified, 0, 10) ?>",
> 	"headline": "<?php echo plugin_topicpath_leafname_inline() ?>",
> <?php if(file_exists($ogpijpg)) { /*JPGのOGP画像が存在するとき*/ ?>
> 	"image": "<?php echo get_script_uri().$ogpijpg ?>",
> <?php } else if(file_exists($ogpipng)) { /*PNGのOGP画像が存在するとき*/ ?>
> 	"image": "<?php echo get_script_uri().$ogpipng ?>",
> <?php } else { /*JPGもPNGもOGP画像が存在しないとき*/ ?>
> 	"image": "<?php echo get_script_uri() ?>img/toppage.png",
> <?php } ?>
> 	"publisher.name": "m0370",
> 	"publisher.logo": "favicon192x192.png",
> 	"publisher.logo.url": "<?php echo get_script_uri() ?>favicon192x192.png",
> 	"mainEntityOfPage": "<?php echo $canonical_url ?>",
> 	"dateModified": "<?php echo substr($lastmodified, 0, 10) ?>",
> 	"description": "<?php echo $str = str_replace(array("\r\n", "\n"), '', mb_substr(strip_htmltag($body, $all = TRUE), 1, 170, "UTF-8")); /*本文の170文字を抜粋*/ ?>"
> 	}
> </script>
#ogpi(https://oncologynote.jp/?b64eee490b)

*AMP-analyticsの実装
*短縮URLを検索画面やリスト画面にも対応させる [#k170803c]

#ogp(https://developers.google.com/analytics/devguides/collection/amp-analytics?hl=ja,amp)
ダジャレンジャーさんの[[PukiWikiのクソ長いURLをURL短縮ライブラリを組み込んで解決する!>https://dajya-ranger.com/pukiwiki/embed-url-shortener/]]で提供されているプラグインを検索画面やcmd=listでも使えるようにします。

#ogpi(https://oncologynote.jp/?27dbf117d9)
#ogpi(https://oncologynote.jp/?5b74253bf0)

#navi(pukiwikiカスタマイズ箇所)