文字列書式を統一するUserScript
from 読み込むUserScripts
code:script.js
scrapbox.PopupMenu.addButton({
title: '⚒ 🅰️',
onClick: text => text.split('\n').map(line => {
// 既にリンクになっているところでsplitする
const prettyLine = line.split(/(\.+?\)/).map(m => {
// リンクなら[が存在するはずなのでそのまま返す(配列もそのまま返しちゃうけど…まあいいか)
// それ以外は置換して最後にjoin
if (m.includes('[')) {
return m;
} else {
return m
//.replace(/^\s*/g, s => s.replace(/\s/g, ' '))
.replace(/ぁ-ん|ァ-ヴ゙/g, s => String.fromCharCode(s.charCodeAt(0) + 1))
.replace(/A-Za-z0-9/g, s => String.fromCharCode(s.charCodeAt(0) - 0xFEE0))
.replace(/ /g, ' ') // 全角スペースは半角スペースとして残す
.replace(/:/g, ':')
.replace(/(/g, '(')
.replace(/)/g, ')')
.replace(/=/g, '=')
.replace(/\[ ?/g, '[')
.replace(/ ?\]/g, ']')
.replace(/^ /g, ' ')
.replace(/\S\(/g, s => s.charAt(0) + ()
.replace(/\)\S/g, s => ')' + s.charAt(1))
.replace(/\S.*/g, s => s.charAt(0) + '' + s.slice(1))
.replace(/.*\S/g, s => s.slice(0, -1) + '' + s.slice(-1))
.trimEnd();
}
}).join('');
return prettyLine;
}).join('\n')
})
scrapbox.PopupMenu.addButton({
title: '✂ sp️',
onClick: text => text.split('\n').map(line => {
// 既にリンクになっているところでsplitする
const prettyLine = line.split(/(\.+?\)/).map(m => {
// リンクなら[が存在するはずなのでそのまま返す(配列もそのまま返しちゃうけど…まあいいか)
// それ以外は置換して最後にjoin
if (m.includes('[')) {
return m;
} else {
return m
//.replace(/^\s*/g, s => s.replace(/\s/g, ' '))
.replace(/ /g, '') // スペースを一度消してみる
.trimEnd();
}
}).join('');
return prettyLine;
}).join('\n')
})
更新履歴
v0.0.1 UserScriptおかりしてきた shio - shiology.org🌹(2020/01/11)
整形内容を見直した(2022/02/22)
見栄えのためのスペースを除去したいので、スペース除去を入れてみたが見栄えのためのスペースなのか必要なスペースなのか判別できない(2023/09/29)
リンクになっているところは壊さないようにした(2023/10/12)
スペースのトリムと整形を別ボタンにした(2024/11/27)