利用者・トーク:Ami

提供:Noita Wiki
ナビゲーションに移動 検索に移動

Tensama0415 (トーク) 2023年11月27日 (月) 10:10 (UTC)

Template:Spoilerの修正ありがとうございます。どれが問題か私にはさっぱりでした。
変更履歴を見るに過去にこのテンプレートを今のバージョンで改変してくださった方ですね。そうでしたらちょっとしたお願いがあるんですけど…

この前からリンクが掛かった日本語が隠れない問題を解決するために孤軍奮闘していますが、中々進捗がありません。
英語のぼかしに使っているGlyphsフォントの日本語領域にGlyph文字を埋め込んだバージョンをMediawikiにアップロードしてそれに切れ変えもしましたが、
その新しいGlyph文字でメモ帳では日本語もGlyphへ変わるのを確認したのにウィキ上では全然変わらないです。
NoitaGlyphScaled.ttf)(フォントはこれです)

もしHTMLやCSSに詳しい方でしたら、、フォントが適用されない利用や、もしくは:rootで相続されたリンク付き文字の色を強制的に変える方法に関して助言をいただきたいです、

英語ウィキの

{{Spoiler/start}}~{{Spoiler/end}}

のテンプレートもコードコピペしてきたのになぜcollapsed?クリックでフォントが反転されないのかについても心当たりがありましたらそれもお願いしたいです。

長文失礼しました。改めてTemplate:Spoilerの問題解決、本当にありがとうございます。

テンプレート:Spoiler の件

こんにちは。こちらこそ、wikiの管理を引きついでいただきありがとうございます。私も僅かばかりですが、できる範囲で翻訳などお手伝いできればと思います

(翻訳しようにもen版との差が大きすぎて、どう手を付けたらよいかと悩んでいたので助かりました)

私もHTMLやCSS、MediaWikiに関しては正直ごく部分的な知識しかもっていないので、あまりお力になれるかはわからないのですが…

あまり自信はないのですが、私の調べた・理解している範囲でご説明します

フォント切り替えについて

まず、テンプレート:Spoiler/startテンプレート:Spoiler/end でフォントの切り替えが適用されない理由ですが、これは恐らく各言語版のサイトに適用されているJavaScriptファイルがen版とja版で異なるためです

特に、en版の以下の部分が Spoiler テンプレートに影響していると思われます

	// synopsis: Add/remove functions to handle spoiler toggles for [[Template:Spoiler]] / [[Template:Spoiler/start]]
	mw.hook('wikipage.content').add(function($content) {
		var excludedElements = ['VIDEO', 'A'];
		$content.find('.spoiler-toggle').click(function(event) {
			var clickedElement = event.target;
			if (excludedElements.includes(clickedElement.tagName)) {
				return;
			}
			
		    var spoiler = event.currentTarget;
		    var content = $(spoiler).find('.spoiler-content');
		    
		    if (content) {
			    if (content.hasClass('spoiler-hidden')) {
			        content.removeClass('spoiler-hidden');
			    }
			    else {
			        content.addClass('spoiler-hidden');
			    }
		    }
		});	
	});

解決手段としては、ja:MediaWiki:Common.jsをen版の内容でアップデートしてあげれば良いのではないかと思います。(特別な権限が必要なので、私は編集できません)

(Spoilerに関係するのは上記部分のみですが、ほかのテンプレートも移行するのであれば、その他の部分も同様に必要になるかと)

単純に内容をコピペしてもよいですし、あるいはja:MediaWiki:Common.jsを以下のようにすることでen版のCommon.jsファイルを読み込むようにできるっぽいのですが、検証できていないので上手く動作するかは分からないです…

(※ただし、en版のCommon.jsの変更の影響を直接受けるようになるリスクがあります)

$(function() {
  mw.loader.load('https://example.wiki.gg/wiki/MediaWiki:Common.js?action=raw&ctype=text/javascript');
});

(※今のMediaWiki:Common.jsにもperk関係っぽい既存コードがあるものの、パークのページをぱっと見た感じ使われてなさそう?に見えるので、消しても大丈夫っぽそうな…これも確認できていないです)

[追記2] ※ このCommon.jsの修正を行うと、現状のja:テンプレート:Spoilerに関しては動作が変になるかもです

フォントファイルの適用について

日本語用のフォントファイルをアップロードされたとのことですが、サイトのCSSファイルで対応するフォントファイルが指定されているため、en版と異なるフォントファイルを適用するにはCSSを編集する必要があります (これも特別な権限が必要なので、私は編集できません)


[追記] ※ もし https://commons.wiki.gg/images/c/ca/NoitaGlyphScaled.ttf 自体を置き換えられたのであれば、この節の操作は不要です

[追記3] ※ フォントファイル自体を変更済みであることを確認しましたが、en版で挙動を確認したところ日本語テキストにはなぜかフォントが反映されません。何かややこしい原因がありそうな感じがします(フォントファイル側の設定、サイトの設定 etc...)

ja版では以下の記載により、en版のCommon.cssを読み込むようになっています

@import url(/load.php?lang=en&modules=site.styles&only=styles&skin=vector);

en版の中で、関係しているのは以下の部分です('glyphs'という名前のフォントに使用するフォントファイルを割り当てています)

@font-face {
  font-family: 'glyphs';
  src: local('Noita Wiki Glyphs'), url('https://commons.wiki.gg/images/c/ca/NoitaGlyphScaled.ttf') format('truetype');
  font-display: swap;
}

en版と異なるフォントファイルを適用するには、この部分を書き換える必要があると思われます。

これも単にコピペしてこの部分だけを変更してもよいのですが、CSSファイルはより後に書いたものが優先される性質があるので、ja:MediaWiki:Common.cssを以下のようにすることでen版を流用しつつフォントファイルの指定のみオーバーライドすることができる…と思われます(これも検証できていないですが)

@import url(/load.php?lang=en&modules=site.styles&only=styles&skin=vector);

@font-face {
  font-family: 'glyphs';
  src: local('Noita Wiki Glyphs'), url('[ここにアップロードしたフォントのURL]') format('truetype');
  font-display: swap;
}

恐らく以上の方法をとれば、日本語用フォントによるフォント切り替えが機能するようになるのではないかと考えています

(※あとは現状のテンプレート:Spoilerを使用しているページの修正も必要ですが、幸いあまり数は多くはなさそうです)

代替案

もし上記の方法がうまくいかない場合の暫定的な代替案として、"ぼかし" をもう少しちゃんとした方法でかけてやる、という方法もあります

ja:MediaWiki:Common.cssを以下のようにすると、おそらくハイパーリンクを含めてぼかしが掛かるようになるのではないかと思います

(はじめ、これと同様のことを テンプレート:Spoiler 側でできないかと試していたのですが、どうもテンプレートの側で filter を指定することは MediaWiki が禁止しているようで、やむを得ず今の形に…)

@import url(/load.php?lang=en&modules=site.styles&only=styles&skin=vector);

.spoiler-hidden {
    filter: blur(5px);
}


長くなってしまいましたが、何か不明な部分があればお気軽にお知らせください (私にできる範囲であればご協力できればと思います)


Tensama0415 (トーク) 2023年11月27日 (月) 16:55 (UTC)
フォントは諦めて最後の方法で解決しました。ありがとうございます!!!!!!!!!!!!