なろう傍点記法の入力はめんどい
めんどい
小説家になろうの(リッチエディタで入力される)傍点は、一文字ごとに「・」を青空文庫記法のルビで付与したものだからだ。
HTML+CSSにはちゃんとtext-emphasisプロパティがあるというのに、カクヨムはそれに置換される独自記法を用意してくれているというのに、なろうでは未だにルビしか使えない。
ころす
TextExpander(未完成)
TextExpander 5.1.5前提
仕方がないので、フィルインでフレーズを入力し、それに傍点を付与した上で出力するスクリプトを書いてみる。
コード
# !/bin/bash
echo '%filltext%' | sed -e 's/./|&《・》/g' | xargs echo -n
はいかんたん。
なにが問題かというと、フィルイン時の表示がおかしい。
なんでかソースコード表示されるんですな。
なんとかしたい。
Typinator
TextExpanderから乗り換えたので。
シェルスクリプトの文字コードがデフォルトでUTF-8になっていないようで、文字化けして焦った。ちゃんと文字コード指定してやれば問題なし。UIがおかしくなったりもせず快適。
{{filltext=?傍点部}}{/Shell
export LANG=ja_JP.UTF-8
echo ${filltext} | sed -e 's/./|&《・》/g' | xargs echo -n
}
AutoHotKey
こっちはGUIもきれいだし、正規表現置換関数が用意されてるのでもっと簡単だった。
コード
::od::
PasteString(RegExReplace(InputBox("なろう傍点テキスト"),".","|$0《・》"))
return
; テキストをペーストする関数
PasteString(String)
{
OnClipboardChange("ClipChanged",0)
Backup := ClipboardAll
Clipboard := String
Sleep, 100 ; 削除が間に合わないので
Send, ^v ; sendplayがwin10の大半のアプリで機能せず
Sleep, 200 ; 元のクリップボードをペーストしてしまうことがある
Clipboard := Backup
OnClipboardChange("ClipChanged",1)
}
; 入力フィールドを表示して入力内容を返り値とする関数
InputBox(Prompt,DefaultText="テキストを入力",vW=600)
{
Gui, Margin, 0, 0
Gui, Color, , d0d0d0
; vW = 600
Gui, Font, Q5 s10 W550, Meiryo UI ; UIフォントの指定
Gui, Add, Text, w%vW% -Wrap, %Prompt%
; テキストを中央寄せする場合は幅の指定も必要(そうでないとテキスト幅=コントロール幅になるので)
Gui, Font, Q5 s11 W550, Cica ; editフォントの指定
static InputText
Gui, Add, Edit, X0 Y+3 w%vW% vInputText -Multi, %DefaultText% ; %InputText%
Gui, Font, Q5 s10 W550, Meiryo UI ; ボタンフォントの指定
vX := vW - 120
vX2 := vX - 125
Gui, Add, Button, Y+3 w120 x%vX% Default, OK
; Gui, Add, Button, w120 x+5 GCancel, Esc(&C)
Gui, Show, Center AutoSize, %A_ScriptName%
WinWaitClose, %A_scriptname% ahk_class AutoHotkeyGUI, %Prompt%
return, InputText
ButtonOK:
Gui, Submit
; Clipboard := InputText
GuiClose:
GuiEscape:
Gui, Destroy
Return
}