Geany中Markdown缩进代码块语法高亮异常问题咨询
问题场景
在Geany中输入以下Markdown内容时,语法高亮显示正常:
* Item 1 * My code block will go after this line break ```sql CREATE EVENT SESSION query_performance ON SERVER ADD EVENT sqlserver.sql_statement_completed(
- Item 3
但将代码块的结束标记```也缩进4个空格后,内容变为: ```markdown * Item 1 * My code block will go after this line break ```sql CREATE EVENT SESSION query_performance ON SERVER ADD EVENT sqlserver.sql_statement_completed( ``` * Item 3
此时Geany的语法高亮出现错误,文档后续内容均被识别为代码块的一部分。
疑问解答
1. 上述缩进代码块的方式是否符合Markdown规范?
符合主流Markdown规范(比如CommonMark)。在列表项中嵌套围栏代码块时,要求代码块的开始和结束标记都缩进至与列表项内容的层级一致(即4个空格),这种写法是列表嵌套代码块的标准正确方式。
2. 如何解决Geany的这种语法高亮错误?
可以尝试以下几种方法:
- 临时替代写法:将代码块的结束标记改为无缩进(虽然不符合规范,但能让Geany暂时正确识别代码块边界),不过这种写法在其他Markdown解析器中可能显示异常。
- 升级Geany版本:该问题可能是旧版本Geany的Markdown语法解析bug,更新到最新版后大概率能修复。
- 替换语法高亮定义文件:可以查找Geany社区维护的更完善的Markdown语法定义文件,替换掉默认文件来修复解析问题。
- 改用缩进式代码块:放弃围栏代码块,直接用4个空格缩进代码内容,这种写法符合规范且Geany能正确识别,示例如下:
* Item 1 * My code block will go after this line break CREATE EVENT SESSION query_performance ON SERVER ADD EVENT sqlserver.sql_statement_completed( * Item 3
内容的提问来源于stack exchange,提问作者J. Mini
相关产品推荐
相关产品推荐

