fix: 优化markdown解析器
This commit is contained in:
@@ -236,8 +236,24 @@ impl MarkdownParser {
|
||||
|
||||
// 收集所有事件和位置信息
|
||||
for event in parser {
|
||||
events.push((event, current_offset));
|
||||
current_offset += 1; // 简化的偏移计算
|
||||
events.push((event.clone(), current_offset));
|
||||
|
||||
// 根据事件类型正确计算字节偏移
|
||||
match &event {
|
||||
Event::Text(text) => {
|
||||
current_offset += text.len();
|
||||
}
|
||||
Event::Code(code) => {
|
||||
current_offset += code.len();
|
||||
}
|
||||
Event::SoftBreak | Event::HardBreak => {
|
||||
current_offset += 1; // 换行符通常是1字节
|
||||
}
|
||||
_ => {
|
||||
// 对于其他事件类型,不增加偏移量
|
||||
// 因为它们通常是结构性的,不对应实际的文本内容
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 构建AST
|
||||
@@ -347,8 +363,6 @@ impl MarkdownParser {
|
||||
// 处理其他事件类型
|
||||
}
|
||||
}
|
||||
|
||||
current_offset += 1; // 简化的偏移计算
|
||||
}
|
||||
|
||||
Ok(root)
|
||||
|
||||
Reference in New Issue
Block a user