2023年5月21日:エスケープ処理を追加しました。
マークダウンでリンクを作成する書式
[タイトル](URL)
でサイトのタイトルとURLをクリップボードにコピーするブックマークレットです。
Windows版の
- Chrome 113.0.5672.93
- Firefox 113.0.1
で確認しました。
プログラムにClipboardを使っているのでHTTPSのみで動作します。
Clipboard - Web API | MDN
下のリンクになっているテキスト部分をブラウザのブックマークバーにドラッグアンドドロップして使用してください。
ブックマークレットをクリックするとサイトのタイトルとURLがマークダウン形式でクリップボードにコピーされます。(プロンプトなどは表示されません)
自分の環境ではこれで十分ですが、今まで使っていた拡張機能ではタイトルの[]
と
<>
、URLの()
以外もエスケープ処理がされていました。
例:
[HTMLElement\.focus\(\) \- Web API \| MDN](https://developer.mozilla.org/ja/docs/Web/API/HTMLElement/focus)
一応、エスケープ処理が多いタイプも作成しました。
MDLinkEx(エスケープ処理が多いタイプ)
※ブックマークレットの名前は、ドラッグアンドドロップ後ブックマークレットを右クリック「編集」から変更できます。
変換前のコード
(function () {
const title = document.title
.replace(/\[/g, "\\[")
.replace(/\]/g, "\\]")
.replace(/\</g, "\\<")
.replace(/\>/g, "\\>");
const url = document.URL.replace(/\(/g, "\\(").replace(/\)/g, "\\)");
const markdownLink = `[${title}](${url})`;
navigator.clipboard.writeText(markdownLink);
})();
タイトルの[]
と
<>
、URLの()
をエスケープ処理しました。
Markdownでのリンクを貼る時のエスケープシーケンス #Markdown - Qiita
エスケープ処理が多いタイプ
(function () {
let title = document.title;
if (/[\[\]\(\)\|\.-]/g.test(title)) {
title = title.replace(/[\[\]\(\)\|\.\<\>-]/g, function (match) {
return {
"<": "\\<",
">": "\\>",
"[": "\\[",
"]": "\\]",
"(": "\\(",
")": "\\)",
"|": "\\|",
".": "\\.",
"-": "\\-",
}[match];
});
}
const url = document.URL.replace(/\(/g, "\\(").replace(/\)/g, "\\)");
const markdownLink = `[${title}](${url})`;
navigator.clipboard.writeText(markdownLink);
})();
ブックマークレットとして使用する際は、ブックマークレット作成サイトなどでプログラムを変換してください。
ブックマークレット作成サイトの一例です。
サイトによってコメントを削除したり、スペースを%20
に変換するなどの違いがあります。
コメントなし:
コメントを投稿