Pandoc的markdown_github与markdown_mmd为何无法转换HTML内的原生Markdown?
问题排查与解决方案
1. 强制触发HTML内Markdown解析
Pandoc的markdown_in_html_blocks特性默认仅对<div>、<p>等传统块级元素生效,对于<section>这类HTML5新增元素,需显式添加markdown="1"属性强制解析内部内容(你已启用markdown_attribute特性,此方法可直接生效):
<section markdown="1"> # Set the _shell_ ## Install the _shell_ [#](#install-the-shell){.anchor} </section>
2. 替换基础格式避免隐性冲突
你当前以markdown_github为基础格式,而GitHub Flavored Markdown本身默认禁用HTML块内的Markdown解析,即使叠加+markdown_in_html_blocks也可能存在隐性冲突。建议切换为标准Pandoc Markdown作为基础,再叠加所需特性:
from: markdown+abbreviations+all_symbols_escapable+angle_brackets_escapable+auto_identifiers+autolink_bare_uris+backtick_code_blocks+blank_before_blockquote+blank_before_header+bracketed_spans+citations+compact_definition_lists+definition_lists+emoji+escaped_line_breaks+example_lists+fancy_lists+fenced_code_attributes+fenced_code_blocks+fenced_divs+footnotes+four_space_rule+gfm_auto_identifiers+gutenberg+hard_line_breaks+header_attributes+ignore_line_breaks+implicit_header_references+inline_code_attributes+inline_notes+intraword_underscores+latex_macros+line_blocks+link_attributes+lists_without_preceding_blankline+mark+markdown_attribute+markdown_in_html_blocks+mmd_header_identifiers+mmd_link_attributes+mmd_title_block+multiline_tables+pandoc_title_block+pipe_tables+raw_attribute+raw_html+raw_tex+rebase_relative_paths+short_subsuperscripts+shortcut_reference_links+simple_tables+space_in_atx_header+spaced_reference_links+startnum+strikeout+subscript+superscript+table_captions+task_lists+tex_math_dollars+tex_math_double_backslash+yaml_metadata_block
3. 逐步排查冲突特性
若切换基础格式后仍无效,可先简化配置为markdown+markdown_in_html_blocks测试是否生效,再逐个添加所需特性,每次添加后测试转换效果,即可定位出导致冲突的特性。
4. 升级Pandoc版本
旧版本Pandoc对HTML5元素的markdown_in_html_blocks支持有限,建议升级至2.10及以上版本,新版本对HTML5块级元素的解析兼容性更强。
内容的提问来源于stack exchange,提问作者Oo'-
相关产品推荐
相关产品推荐

