レ点腫瘍学ノート

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


#author("2020-04-25T16:56:10+09:00;1970-01-01T18:00:00+09:00","default:tgoto","tgoto")
*Pukiwiki 1.5.3へのアップデート

これまでに多数のカスタマイズを加えていたために、かなり苦労しました。特に、そのまま上書きしてしまっては現行の機能が損なわれたり設定が初期化されるなどして困るのは次のファイルです。

- 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

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

- keitai.ini.php
- rules.ini.php

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

*JSON-LDへの対応

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

また、OGP imageにも対応できるようにPHPで分岐を作っています。

https://developers.google.com/search/docs/data-types/article?hl=ja

> <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>

*AMP-analyticsの実装

#ogp(https://developers.google.com/analytics/devguides/collection/amp-analytics?hl=ja,amp)