利用者:1108-Kiju/エスケープ転載ツール・V2
経緯[編集]
WxYukiさんのエスケープ転載ツールは素晴らしいツールだと思っており、私も利用者の1人なのですが、いくつか不利点があることに気が付きました:
- スマホ/iPadからは利用できない。
- 事前設定の難易度が少し高いこと。BadEditorさんの補足を読み、その通りに操作すれば利用できるはずなのですが、起こりうるトラブルを自分でリカバリーできなかった場合利用できない・PCに不慣れな方には少し難しい
- cmdで動かしているので、要約と本文の境目が分かりづらい/コピー時の感触が慣れない = コピーしづらい。
- なぜか重い
- コピーを2回行わないといけない
等の不利点があります。正直、エスケープ転載を1ページで完結でき、投稿者リスト化を数秒で行える有難みに比べれば非常にどうでもいいのですが、やはりもっと利便性を高くしたい。
という経緯があり、みんな大好きJavaScriptでエスケープ転載ツールを作りました。これにより、ツールがウェブ上で完結するようになりました。
なお、[編集]
- 当然ながら、大方の案はWxYukiさんのもの ―よみもの:Pythonを使ったエスケープ転載ツールの感想など― をお借りしました。
- WxYukiさんのツールを批判する意図は全くなく、むしろリスペクトしています。
比較[編集]
- 1. 必要な内容を素早く表示する時間 : WxYukiさん作ツールはcmdで完結していますが、こちらは履歴ページに移動しなくてはなりません。
- 2. 内容をエンペディアの編集画面にペーストして作成する時間 : これは改善したつもりです。要約欄が自動入力されるためです(要約欄に収まりきらなかったら移入元情報ページの内容もコピーできる)
- 3. ユーザーフレンドリーさ : これは改善したつもりです。ボタンで操作できます。
- 4. 全体的な作業速度 : かなり微妙
結局のところ、人に「便利」と感じるツールは異なってくると言えます。一度試してみて、好みの方を使うことを推奨。
仕組み[編集]
ChatGPTに最後のFixを頼んだところ、親切にコードの意味まで解説してくれました。簡潔で、わかりやすかったためそのまま転記します。
このカスタムJavaScriptコードは、MediaWikiウィキペディアの特定のページで動作するスクリプトです。このスクリプトは、ウィキペディアの歴史ページで特定の機能を提供します。以下に、スクリプトの主要な機能とその動作を説明します。
- 1. ドキュメントの読み込み待機: 最初に、ページのドキュメントが読み込まれた後にスクリプトが実行されるように、「
$(document).ready()
」関数が使われています。これは、ページの読み込みが完了してからスクリプトが動作することを保証します。
- 2. 現在のURLの取得:
window.location.href
を使用して、現在のページのURLを取得しています。
- 3. URLに「action=history」が含まれているか確認 : 取得したURLに「action=history」が含まれているかを確認し、歴史ページであるかどうかを判定します。
- 4. 要素の作成 : 歴史ページである場合、新しいHTML要素(ボタン、テキスト、リンクなど)を作成します。これらの要素は後でページに挿入されます。
- 5. ボタンの表示と非表示の切り替え : 「移入元情報を表示」ボタンと「閉じる」ボタンを作成し、初めに「閉じる」ボタンを非表示に設定します。ボタンをクリックすると、情報コンテンツの表示と非表示を切り替えることができます。
- 6. 最新の日時の取得 :
.mw-changeslist-date
クラスの要素から、最新の版の投稿日時を取得します。
- 7. wgPageName の取得 :
mw.config.get("wgPageName")
を使用して、現在のページのタイトルを取得します。
- 8. 投稿者一覧の取得 :
.mw-userlink
クラスの要素から、このページに投稿したすべての投稿者のリストを取得します。
- 9. 注の追加とリンクの作成 : いくつかの注を追加し、特定の条件下でページの全版を表示するためのリンクを作成します。これには、赤いテキスト色や青いリンク色の設定が含まれます。
- 10. 転載ボタンの作成 : 特定のボタンがクリックされたときに、指定のURLにリダイレクトするボタンを作成します。このボタンをクリックすると、特定のページの版を別のウィキペディアでエスケープ転載できます。
- 11. テキスト選択の監視 : Ctrl + A キーが押されたときに、指定された要素内のテキストを選択するためのキーボードイベントを監視します。
- 12. 要素の挿入 : 最後に、作成した要素を特定の場所に挿入します(
#mw-content-subtitle
セレクタで特定の要素を選択)。
使い方[編集]
初期設定[編集]
利用する方法には、1. ブックマークレットとして追加する方法、2. カスタムJSとして追加する方法 があります(Consoleからもどぞ)。全く知らない方でも理解できるように解説します。
1. ブックマークレット[編集]
- 対象者:ワンクリック/タップで簡単に表示したい方向け
- 必要:ご利用のブラウザのブックマークのツール
お気に入りのサイトに簡単にリンクできる、「ブックマーク」を使います。実は、こういったコードの実行にも使えます。
- 手順
1. ブックマーク登録画面を開きます
ブックマーク登録に関するヒント
- 方法は基本的にGoogle検索で出てきます。
- 一部、URLを指定できない端末もあるようです。その場合、適当なURLを登録した後に編集/詳細から変更してください。
2. ブックマークを追加するところで、URLを
javascript:(function(){const s = document.createElement("script"); s.src="https://enpedia.rxy.jp/w/index.php?title=User:1108-Kiju/escape.js&action=raw&ctype=text/javascript"; document.body.appendChild(s);})()
として追加してください。
これで完了です。#利用方法に進んでください。
2. カスタムJS[編集]
- 対象者:常時表示したい方向け
- 必要:ウィキペディアのアカウント
ウィキペディアのアカウントが必要になります → アカウント作成
追伸:カスタムJSを編集する程度だったら、目的外利用ではないでしょう...
- 手順
1. ウィキペディアのアカウントにログインした状態で、「あなたのCommon.js」に移動してください。
2. 以下の内容で「ページを保存」します。
mw.loader.load("//enpedia.rxy.jp/w/index.php?title=User:1108-Kiju/escape.js&action=raw&ctype=text/javascript");
これで完了です。#利用方法に進んでください。
利用方法[編集]
※ この節は重要です。利用前に必ず目を通してください。
エスケープ転載を行うウィキペディアのページの「履歴」アクセスします。
ブックマークレットで使っている方は、ブックマークレットを開いてください。プログラムが実行されます。カスタムJSで使っている方は既に表示されているはずです。
「このページの記録を表示 (編集フィルター記録を閲覧)」の下にボタンが3つあります。モバイル版では都合によりリンクとなっていますが、動作は特段変わりません。
- 「この記事をエスケープ転載」
- 要約欄が自動入力された状態で、Enpediaの同名記事作成画面に移動します。
- ※標準名前空間にしか対応していません。
- 「この記事のソースを表示」
- ソースが画面いっぱいに表示されます。
- 簡単にコピーできるようになんとか工夫しました。勘弁してください。
- 「移入元情報を表示」
- 投稿者が要約欄に収まりきらないほど多い際、エンペディアの
{{移入元情報}}
のスタイルで移入元情報を表示します。 - 初版は義務ではないので記載しません(する必要はありません)。
- 投稿者が要約欄に収まりきらないほど多い際、エンペディアの
- 「warning:ページ上に全ての版を表示しているか確認してください」と表示された場合、必ず「ページの全版を表示する」をクリック/タップしてください。必ずです。
というわけで[編集]
お読みいただきありがとうございます。ご自由にお使いください。バグ等ありましたら、利用者・トーク:1108-Kijuまで一報お願いします。