MediaWikiコンポーネント
from Wikichase実装ログ
つくる
リンク遷移がちゃんと成り立つようにすべきだな
formsみたいな感じでイベントハンドラをpropsで持てば良いのか
EventHandlerを継承すると良いことあるのかな
継承というか、既存のを使う感じか
any型で諦めない React.EventCallback - Qiita
.replaceってやつでいけそうblu3mo.icon
https://kray.jp/blog/react-html-parser/
いい感じにできたらnpmとかで公開したいなと思ってたけど、これMediaWikiに正確に対応するの辛いな
MediaWikiの仕様を理解しないといけない
Wikipediaさえそれっぽく表示できればいいので、そこまでのモチベはない
API:Parsing wikitext - MediaWiki
色々paramsあるな(Github Copilotの推薦で気づいた)
useMediaWikiHTML()を作る
WikipediaをMediaWikiに一般化
継承とかではなく、関数コンポーネントを入れ子にする形でspecializeしろと
コンポジション vs 継承 – React
MediawikiのCSSを使いたい
https://yamory.io/blog/about-gpl-license/
コードに組み込むなら派生物もGPLライセンスにしないとなのね
https://ja.wikipedia.org/w/load.php?lang=ja&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cjquery.makeCollapsible.styles%7Cmediawiki.page.gallery.styles%7Cskins.vector.styles.legacy%7Cwikibase.client.init&only=styles&skin=vector
から引っ張ってこれるな
良いのかな
mediawiki/resources/src at 130b9b05fcd7ee8830ebb55b01ed5c7a814042a5 · wikimedia/mediawiki · GitHub
ここにcssあるな
MediaWikiコンポーネント#6213c0ce79e1130000943836のurlはこれらをbundleしてる感じかな?
modulesが
code: _
ext.cite.styles
ext.uls.interlanguage
ext.visualEditor.desktopArticleTarget.noscript
ext.wikimediaBadges
jquery.makeCollapsible.styles
mediawiki.page.gallery.styles
skins.vector.styles.legacy
wikibase.client.init
5,6行目はhttps://github.com/wikimedia/mediawiki/tree/130b9b05fcd7ee8830ebb55b01ed5c7a814042a5/resources/src を参照してるな
wikibase.client.initはこれか
Extension:Wikibase Client - MediaWiki
というかskins.vector.styles.legacyだけで良いみたい?
他のmoduleのcssは何なんだろう、わからん
「あれ、これwikipediaと違う」となったら調べればいいか
mediawikiページだとskins.vector.icons,stylesだ
skins.vector.stylesだけでもいけるな
ようわからんけどlegacyじゃ無いほうが良いだろう
で、結局ソースは?
MediaWikiのSkinが何なのかを把握しよう
あ〜〜、Vectorという名前のSkinがあるのね
https://www.mediawiki.org/wiki/Skin:Vector/en
GNU General Public License 2.0 or later
Vector CSSの上に、Wikipediaのcommon.cssも重なってるのか
https://en.wikipedia.org/wiki/MediaWiki:Common.css
言語によって細かい違いがあるな
出典不足のラベルのサイズが違うとか
とりあえず面倒なので雑にjaのcssを読み込んでおく
webpackとか使ったちゃんとした読み込み方は後で考える
まあ細かいparamsとかは置いといて、Vector + Wikipedia Common.cssでWikipediaっぽくなる
wikipedia.orgのmoduleでsite.stylesを指定するとcommon.css他がもらえる
つまりhttps://wikipedia.org/w/load.php?lang=ja&modules=skins.vector.styles|site.styles&only=stylesで欲しいcssは取得できる
ただ、問題はこれが権利的にどうなのか
CSS自体はGPL Licenseっぽい
https://www.gnu.org/licenses/gpl-faq.en.html
When we say “copy code,” we mean just that: you're taking a section of code from one source, with or without modification, and inserting it into your own program, thus forming a work based on the first section of code. “Use a library” means that you're not copying any source directly, but instead interacting with it through linking, importing, or other typical mechanisms that bind the sources together when you compile or run the code.
use a libraryはコピペとは別扱いなのね
あ〜、でも派生物もGPLで公開しないと?
というかWikipediaの内容自体にも権利あるか
Wikipedia:ウィキペディアを二次利用する - Wikipedia
CC BY-SA 3.0か
Credit表記すればセーフ
画像は違う場合もあるよ、と
え〜〜、
あーでも基本二次利用可な画像か
Wikipedia:画像利用の方針 - Wikipedia
でも保証は無いよな、大丈夫なのだろうか
Wikipediaに権利的にまずい画像が載ると、巻き添えをくらう