メインコンテンツまでスキップ

AST

パーサプラグインと、AST トークンを読むカスタムルール向けです。DOM 層(startOffset / endOffset ゲッターなど)は変わっていません。

変更v4v5
開始位置startOffset, startLine, startColoffset, line, col
終了位置endOffset, endLine, endColoffset + raw、または @markuplint/parser-utils/location
自己閉じselfClosingSolidustagCloseChar/ で始まる
条件conditionalTypeblockBehavior?.type
パーサ型MLMarkupLanguageParser / ParseMLParser
getNamespace@markuplint/html-parser@markuplint/parser-utils(第 2 引数は親ノード)
親/対応ノード参照parentNode / pairNode(オブジェクト参照)parentNodeUuid / pairNodeUuid(文字列)。MLASTDocument.nodeList と照合して解決
引用符なし属性値の終端文字/ も終端文字だった空白と > のみが終端。/ は値の一部として残る(HTML LS — attribute value (unquoted) state

endOfUnquotedValueChars(parser-utils の attrTokenizer() / visitAttr())の既定値から / が外れました。既定値に依存する同梱パーサー — html-parservue-parserejs-parserastro-parsermdx-parserjsx-parsersvelte-parser — では、引用符なし属性値中の / が値の途中で区切られず、値の一部として保持されるようになります(例: <img src=path/to/file.png> の値は最初の / で打ち切られなくなりました)。pug-parser は独自に endOfUnquotedValueChars: [] を渡しており影響を受けません。attrTokenizer() / visitAttr() を直接呼び出し、/ が値を終端することに依存していたカスタムパーサーやルールは、endOfUnquotedValueChars を明示的に渡す必要があります。