pub(crate) fn parse_quotes_pairs(v: &str) -> Option<Vec<(String, String)>>Expand description
::before / ::after の content 値を解析する。
文字列リテラル(“…” / ‘…’)、attr(name)(対象要素自身の属性値、無ければ空)、
counter(name) / counter(name, style)(style 引数は無視し常に十進数表記)に対応。
複数トークンの連結(例 attr(href) " ")も可。それ以外の未対応関数形式や
none/normal は「表示なし」として空文字列を返す(テキストとして誤描画しないため)。
quotes: "«" "»" "‹" "›" のような文字列リテラルの並びから、入れ子レベルごとの
全ペア(レベル1, レベル2, …)を取り出す。以前は最初の1組しか取り出さず、
open-quote/close-quote の入れ子(<q> の入れ子)に対応する複数組指定を
常に無視していたが、ここで全ペアを保持し、呼び出し側(quote_depth を使う
parse_content_value)で入れ子レベルに応じたペアを選べるようにする。
戻り値: None=quotes 未指定(呼び出し側で既定の二重引用符へフォールバック)、
Some(vec![])=quotes:none(仕様どおり何も出力しない)、
Some(pairs)=ペア列(レベルが手持ちのペア数を超える場合は最後のペアを繰り返す、仕様どおり)。