記法の優先順位
記法には優先順位がある
例: #[link]
ページリンク[XXX]がハッシュタグよりも優先されている
この優先順位を調査する。
ルール
インライン系統
開始記号と、それと対になる終了記号をもつものが多い
2つの記法の開始記号と終了記号を交差させ、どちらが優先されるかを見る
`(記法A開始)text(記法B開始)text(記法A終了)text(記法B終了)
例: [], []
順序を変えて試しても一方の記法が常に優先されるとき、優先度に高低があるとする
記法の種類よりも順序の影響が優先されたり、第三の記法が適用されるなら、優先度は同等とする
ブロック系統
文の先頭に配置しないと発効しないものが多く、順序優先が自明なものが半数
開始記号は文頭固定で、終端記号が改行という組み合わせが半数で、交差法があまり利用できない
一部の記法は複数行にまたがるため、割り込みの有無を検証できる
本来記法が適用されるはずの場所で開始記号を記述し、正常に?エスケープされるかを観察する
割り込み可能なら、割り込んだほうが優先順位が高いとする
順序優先なもの
引用>
Helpfeel?
割り込み調査が可能なもの
コードブロックcode:XXX
テーブルtable:XXX
結論(インライン系)
1. インラインスクリプトalert("inline");
2. 空白記法→ ←
3. 文字装飾記法 strike
4. 数式記法$ \text{math}
5. 二重ブラケット記法double bracket
ブロック系列
1. コードブロック
2. テーブル
大半は順序優先が自明なため省略
以下、調査メモ込みで詳細なレポート
インライン系列
1.
開始・終了ともにバッククオート`
test
[] []
2. 空白記法(交差法不可)
開始記号[、終了]
test
[!"#%&'()*+,-./{|}<>_~ ]
[$ ]
3. 文字装飾記法(ぜんぶのせ)
開始[!"#%&'()*+,-./{|}<>_~,終了]
test
[$ d
[$ d
4. 数式記法
開始[$、終了]
test
$ [https://google.com
[[$ ]]
$ [[d]
5. 二重ブラケット記法
開始[[,終了]]
test
#this is strong
#d
[yuki_minoh.icon]dddd ddd[yuki_minoh.icon]
[/help-jp/Scrapbox] [/help-jp/Scrapbox]
6. 外部URL
開始[,終了]
test
[N35.0305897,E135.7591271,Z19 Nota+Inc.]ddd dddddddd [N35.0305897,E135.7591271,Z19 +Nota]
7. アイコン記法、プロジェクト間リンク、プロジェクト内リンク、画像、ロケーション記法
開始[,終了]
test
#yuki_minoh .icon
#yuki_minoh.icon
[/help-jp/scrapboxdd.icon] [yuki_mino/help-jp/scrapbox.icons] [Teach for Japan.icon] [yuki_minoh.iconddd] [yuki_minoh.icon/.png] https://lh3.googleusercontent.com/-nxUB-d-czD4/AAAAAAAAAAI/AAAAAAAAAAA/AMZuuclHd1wPQTCf00djKUzerKPGDbL7AA/s96-c/p[hoto.jpgabc.icon]
N35.0305897,E135.7591271,Z19 Nota+Inc. #
8. ハッシュタグ
開始 #終了 (半角スペース)
引用とコード
前置優先
割り込み不可
code:d.js
code:>d
d
d
引用とテーブル
前置優先
割り込み不可
table:
table:>d
d
d
コードとテーブル
前置優先
codeがtableに割り込み可能
tableコンテキストは残存し、混合記法が成立する(!!!)
またあらたなバグ技を生み出してしまった。
コードブロック中はCSVが破綻する
いや、正常な挙動
コードブロックは正常
じゃなかった。。。
なんかへんな文字はいってる
ような気がしただけだった
code:d.js
table:d
table:code:d
first second third
code:d.js
alert();
d
function () {
return d
}
ddddddddddddddddddddddd sugoikore yuki_minoh.icon
Helpfeelとコードブロック
前置優先
割り込み不可
? code:d.js
code:d.js
? d
? d
Helpfeelとテーブル
前置優先
割り込み不可
? table:d
table:d
d ?
? d
Helpfeelと引用
記法の定義からして完全に二者択一
?> d
? d
? d
番外
テーブルとテーブル
table:table:X
XXX YYY ZZZ
table:Y
コードとコード
code:XXX
code:XXX
de
code:YYY