mtane0412
https://gyazo.com/8950dbf71bfdcc24cac4599ed4952655
code:script.js
// Merriam-WebsterのChoose the Right Synonymのフォーマット
scrapbox.PopupMenu.addButton({
title: 'webster',
onClick: text => text.split('\n').map(function(line) {
return '/icons/point.icon ' + line // 先頭にiconラベルを追加
// 単語にリンクをつけてリストに整理
.replace(/(?<!,|and)\ (A-Z{2,})/g, '\n $1') // 例文のネストを下げてe.g.をつける
.replace(/(?<=\.)\ +(?!\[|\n|$)/g, '\n e.g.\ ')
}).join('\n')
})
// []を全角に変換
scrapbox.PopupMenu.addButton({
title: 'square bracket',
onClick: text => text.split('\n').map(function(line) {
return line
.replace(/\[/g, '[')
.replace(/\]/g, ']')
}).join('\n')
})
// 辞書のコピペをフォーマット
scrapbox.PopupMenu.addButton({
title: 'format',
onClick: text => text.split('\n').map(function(line) {
return line
// 発音記号のスペースを削除
.replace(/(?<!:.*?)\|\ (.*?)\ \|/g, (match, s) => '|' + s + '|')
// 辞書の品詞分類をイタリックにする
.replace(/^(noun|verb|adjective|adverb|preposition|exclamation|pronoun|plural noun)(\ &\ (noun|verb|adjective|adverb|preposition|exclamation|pronoun|plural noun))?/g, s => '\n' + s + '')
// 品詞後に発音記号がある場合は修正
// 特定タグをリンク付きイタリックにする
.replace(/(Art|Architecture|Aeronautics|Music|Military|Printing|Finance|Logic|technical|\boffensive\b|Fishing|Knitting|Nautical|Surveying|Medicine|Greek Mythology|Sailing|Anthropology|Anatomy|Astrology|Astronomy|Philosophy|Mathematics|Statistics|Botany|Chemistry|Dentistry|Electronics|Entomology|Theology|Physics|Psychiatry|Physiology|Biochemistry|Biology|Genetics|Geology|Geometry|Geography|Archaeology|Economics|Meteorology|Zoology|Grammar|Linguistics|Phonetics|Computing|Law|Photography|Heraldry|North\ American|\bUS\b|British|Australian|NZ|Scottish Gaelic|Scottish|Polish|Czech|South African|Irish|vulgar|slang|Falconry|Baseball|Cricket|Basketball|Boxing|American\ Football|Soccer|Golf|Skiing|Weightlifting|Chess|Bridge)/g, s => '' + s + '') // 特定タグをリンクなしイタリックにする
.replace(/(?<=(\]\ |\d\ |•\ |\)\ |^|\|\ |(chiefly|or|\,)\ |:\ ))(informal|figurative|\bformal\b|literary|archaic|historical|chiefly|proverb|dialect|dated|humorous|rare)(,\ )?(informal|figurative|\bformal\b|literary|archaic|historical|chiefly|proverb|dialect|dated|humorous|rare)?/g, s => '' + s + '')
// 番号にピリオドを追加
.replace(/^(\d)(?=\ )/g, '$1.')
// リストをScrapbox形式に変換
.replace(/•/g, '')
// 複数単語ある場合に大見出しにする(例文改行回避用に発音記号の区切り文字の内側スペースも削除)
.replace(/^(\w+?)(\d)(?=\s\|(.*?)\|)/g, (match, s, d) => '\n$ \\mathrm{' + s + '}^' + d + '')
//.replace(/^(\w+?)(\d)(?:\s\|\s(.*?)\s\|)?/g, (match, s, d, p) => '\n$ \\mathrm{' + s + '}^' + d + ' \|' + p + '\|')
// 強調リンク 動詞の活用
// 強調リンク 形容詞の変化
// 強調リンク 名詞複数形
.replace(/(?<=\(plural\ )(\w+)(?=\))/g, s => '' + s + '') // 強調リンク 例文 品詞変化
.replace(/(?<=as\ (adjective|noun)\ )\w+/g, s => '' + s + '') // 不規則動詞・複数形に強調リンク & 例文改行回避
.replace(/(?<=\((?:past|plural).*?)(\w+)\ \|\ (.*?)\ \|/g, (match, word, symbol) => '' + word + ' |' + symbol + '|') // 中見出し
.replace(/(DERIVATIVES)|(ORIGIN)|(PHRASAL VERBS)|(PHRASES)|(USAGE)/g, s => '\n' + s + '')
// DERIVATIVESの項目をリストにする
.replace(/^(\w+-?\w*)(?=(\ \|.*?\|)|\ (noun|verb|adverb|adjective))/g, s => ' + s + '')
//.replace(/(\w+-?\w*)(?=(\ \|.*?\|\ )?((noun|verb|adverb|adjective)(\ &\ (noun|verb|adverb|adjective))?(\ \(\archaic\))?))/g, s => ' + s + '')
//.replace(/(\w+-?\w*)(?:\s\|\s)(.*?)?(?:\s\|\s)((noun|verb|adverb|adjective)(\ &\ (noun|verb|adverb|adjective))?(\ \(\archaic\))?)$/g, (match, word, symbol, partOfSpeech) => ' + word + ' |' + symbol + '| ' + partOfSpeech)
// DERIVATIVESの項目をリストにする(発音記号なしの場合)
//.replace(/(\w+-?\w*)\s((\(also \w+?\)\ )?(noun|verb|adverb|adjective)(\ &\ (noun|verb|adverb|adjective))?(\ \(\archaic\))?)$/g, (match, word, partOfSpeech) => ' + word + ' ' + partOfSpeech)
// 例文にe.g.をつけて改行(補足タグ & ORIGIN内除外)
.replace(/(?<!(\]\ |\)\ |(English|century|\d{4}s)(\s\(?.*?\)?)?)):\ /g, ':\n \e.g.\ ')
// 例文が複数あるときに区切り文字' | 'を改行にしてe.g.をつける
.replace(/\s\|\s/g, '\n \e.g.\ ')
// ORIGIN内の言語起源にリンクをはる
.replace(/\d+?th century|Middle\ English|Old\ English|French|Old\ French|Anglo-Norman French|Old Northern French|Swiss French|Latin|Anglo-Latin|\bGerman\b|Low German|Middle Low German|Middle High German|Germanic|West Germanic|Spanish|Old Spanish|Portuguese|Greek|Dutch|Middle Dutch|Italian|Danish|Norwegian|Swedish|Scandinavian|Afrikaans|Old Norse|Sanskrit|Provençal|Gothic|Celtic|Old Irish|Anglo-Irish|Turkish|Arabic|Breton|Icelandic|Hindi/g, s => '+ s + '')
}).join('\n')
})