正規表現を展開してリンクにしてくれるUserScript
導入方法
使い方
「[正規表現記法]」という形式(「`」も含む)でリンクを書き、Pop upの「正規表現を展開」をクリック
サンプル
https://gyazo.com/c4099de3ab9d978e0797120f44af8d8f
https://gyazo.com/1adfe487e26dac0c17b9cc1e90721181
一緒に使うと良いCSS
これが無いと展開したものが邪魔すぎると思うblu3mo.icon
code:style.css
.popup-menu .button-container .button:empty {
display: none;
}
これを置くとコードブロック以外のところで文字を選択しても謎の空白ができなくなるwogikaze.icon
未来の自分の検索ワードに引っかかって欲しい時に便利そうblu3mo.icon
/icons/-.icon
Helpfeel記法の検索を利用したいblu3mo.icon
Helpfeel記法を勝手に展開してリンクにしてくれるUserScriptがあれば良い?blu3mo.icon
? (アメリカ|米国)の大学出願に必要な(試験|テスト)は?
と書くと、その下に
[( [アメリカの大学出願に必要な試験は?] [アメリカの大学出願に必要なテストは?] [米国の大学出願に必要な試験は?] [米国の大学出願に必要なテストは?] ]
と自動で展開される、みたいな
展開されたリンクが邪魔くさいのはUserCSSでなんとかすれば良さそう
実装自体はそこまで難しくないtakker.icon
code:script.js
const expand = (pattern) => {
const generator = new Generator(pattern);
try {
// " "はワイルドカード
return [
...new Set(
generator.filter(" ").flatMap((pairs) =>
),
),
];
} catch (e) {
// TypeErrorがでたpatternは無視する
if (e instanceof TypeError) return [];
throw e;
}
};
const condition = /^\s*\[([^\n]+)\]/
const processLine = (line) => {
const match = line.match(condition)
if (match === null) {
return line
} else {
return \`[${match[1]}]\ ${expand(match1.replace(/[\\]/g, "")) .flatMap((description) => description !== "" ? [[, [(${description})]]] : [])
.join(" ")}`
}
}
scrapbox.PopupMenu.addButton({
title: (text) => text.split("\n").some(
(line) => condition.test(line.trim())
) ? "正規表現を展開" : "",
onClick: (text) =>
text.split("\n").map(processLine).join("\n"),
});
あるんです! 増井俊之.icon
(知らずに再実装するところだった)
実装結構メンドクサイですが、うまく作れます? 増井俊之.icon
Scrapboxだとimport出来ない?
あ、bundleしないと使えないって言うの忘れてたtakker.icon
compileボタン設置しました
なるほどblu3mo.icon
Helpfeel記法内だとPopUpが表示されないみたい?
ほんとだ
Helpfeel記法の前の行まで選択すればでてくる
takker.iconさんの実装を一部改変しました🙏(前のはHistoryにあります)blu3mo.icon
? Helpfeel記法を(展開|Expand)する(UserScript|拡張機能)
こんな感じのフォーマットにしましたblu3mo.icon
理由
行の後ろにリンクを置きたかった
純正Helpfeel記法だと後ろに別のものを置けない
Text<-このCSSでリンクの存在を示しつつコンパクトに詰め込ました
本物のHelpfeel記法が使えるなら本物のHelpfeelで検索すればいい
/vim-jp-emojis/+1smile.icontakker.icon
?を正規表現と認識してしまうtakker.icon
https://gyazo.com/7e04ccd8c518875e0c79d1c2b6e0fb3a
一つでいいのに4つ出てしまう
このページに辿り着きたい時は良いが、それ以外の時に邪魔
これがUserCSSで解決できれば本当にHelpfeelになる?
小さくしてみた✅blu3mo.icon
https://gyazo.com/e3cd331bb074d8137683d00ba1628367
補完で色々なページにリンクが飛ぶ
Wikiとして成り立たなくなる
なるほどblu3mo.icon
もはやHelpfeel記法に似せる必要も無い気がしてきたblu3mo.icon
質問形式以外でも、普通のリンクのバリエーションを増やしたい時に使えるので
[(正規表現|Regex)記法]というフォーマットを展開する形でよさそう
変えてみた✅
リンクが展開されているという事が分かりやすくて良さそう
検索結果で展開された正規表現のみフィルタして小さくしたい
ゼロ幅スペースを展開時に埋め込めば、a[href*="%E2%80%8B"]でCSSにてフィルタできる?blu3mo.icon やってみた✅
PopUpを使わない形の実装も考えてみたい
書いている側から常時勝手に展開される様なイメージ
現在のカーソル位置と異なる場所に挿入は難しい?
書いて改行したら展開されるとかでも良いか