現在、[[文字列>URL]]のURL部分をソースに書き込む際に、外部サイトを利用してエンコードしているのですが、自動でエンコードしてくれる機能はありますでしょうか。
手間の削減やソースの見やすさの観点から、エンコード前のURLで記入したいです。
イメージ
(1)[[リンク>https://wikiwiki.jp/sample/?cmd=search&word=^]]
(2)[[リンク>https://wikiwiki.jp/sample/?cmd=search&word=%5E]]
(1)のように記入すると、生成されたリンクを押しても「有効なInterWikiNameではありません」と表示される
(2)のように「^」を「%5E」に変換すると意図した表示になるが、ソース文を見たときに意味がくみ取りにくい
⇒ソース文上では(1)のような記載のままで、意図した表示ができるようにしたい
「自動でエンコードしてくれる機能」はないと思います。
一度検索してURLをコピーするくらいでしょうか。
ちなみにURLで使用できる文字が決まっています。
URLで使用できる文字とできない文字はRFC2396(和訳)やRFC3986で定義されています。
ソース上では正しいURLとして記述した方が好ましいのではないかと思います。
可読性を上げたいのであれば「リンク」などの文字列を、
表記したいURLとか検索ワードにするなど工夫したらいかがでしょう?
あと、
https://wikiwiki.jp/sample/?
以降のURLは直でリンク貼らないほうがいいです。?
以降のパラメーターは、仕様変更等でリンク切れが発生することがあるからです。URLで使用できる文字はこちらを参考にしてください。
ありがとうございます。使用できない文字やリンク切れのリスクなど大変参考になりました。
質問の例でよければ以下のように書けばおおよそ期待通りの結果になると思います。
ただし検索するのは設置サイト内になります。また実際にやりたいことが検索ではないのなら改めて具体的に書いてください。
やりたいことが自サイト内の検索リンクではないなら工夫が必要です。
例のように本当にwikiwiki.jp/sample/内の検索リンクなら以下のように書きます。
InterWikiNameの定義
"Sample検索"というInterWikiNameを定義します。名前は任意です。
自分のサイトに"InterWikiName"というページがあるので以下の行を追記。書く位置はどこでもいいです。
リンクを設置
任意のページに以下のように書く。
動作としては"Sample検索:"が前述のURLに置き換わり、さらに":"後の文字列が末尾に付加されます。結果的[[https://wikiwiki.jp/sample/?cmd=search&word=^]]とういリンクが生成されます。
これらはInterWikiという機能です。
検索以外もできます。外部サイトも対象にできます。エンコードも指定できます。
最初に書いた例の"検索"のInterWikiNameはどのサイトにも最初から登録されてます。"Search"も同等のInterWikiNameです。InterWikiNameのページを見れば色々定義されてるのがわかります。
一応各サイトには関連する以下のページが用意されてます。ただし多くの人には意味不明だと思います。
InterWiki
InterWikiName
InterWikiSandBox
InterWikiテクニカル
整形ルール
(1)[[リンク>https://wikiwiki.jp/sample/?cmd=search&word=^]]の書き方がダメなのは、推測ですがブラケット内で"http:~^"と書くとURLと見なされないからだと思います。上記はInterWikiを介すことによりこれを回避してます。
ありがとうございます。分かりやすく解説いただき大変参考になりました。InterWikiでの回避方法試してみたいと思います。
直接の解決案ではないですが、エンコードされたソースの可読性をあげる方法としては原文を//コメントで書いておく手があります。
また現在はできないですが、"[[]] //コメント"みたいに1行の途中からコメントが書ければなおよいと思います。これは今回の件と関係はないですが、個人的にはマルチラインのカッコの{{や}}と同じ行に//コメントを入れたいことがあります。対応するカッコを明確にしたいとか、検索で引っ掛けたいとかです。