You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Rmarkdown文件中嵌入HTML代码并正常输出为HTML文件

问题原因

Rmarkdown基于Pandoc进行渲染,默认会将HTML代码段中的空行识别为段落分隔符,将连续的HTML结构拆分为多个独立的文本块处理,导致原有HTML格式失效。另外你提供的代码存在两处语法错误:一是font结束标签多写了size属性(错误写法为</font size>,正确为</font>),二是第二个图片相关的属性值末尾多了无效空格,也会影响渲染效果。

解决方法

有两种可直接使用的修复方案:

  • 方案一:使用Rmarkdown原生HTML块包裹代码
    直接将所有HTML内容放在````{=html}`和```标记的块中,Pandoc会直接保留块内所有内容原样输出,不会做额外拆分处理,不需要修改原有HTML的换行和格式。
    修复后的完整Rmd文件示例:
    ---
    title: "Test Example"
    date: "9/8/2021"
    output: html_document
    ---
    
    ```{=html}
    <div style="text-align:center;">
      <div style="display:inline-block;">
        <div class="wp-block-image" style="display:inline-block;">
          <center>
            <figure class="aligncenter size-full">
              <a href="https://www.idashboards.com/wp-content/uploads/2020/06/IT-Service-Desk.png" target="_blank" rel="noopener">
                <img loading="lazy" width="517" height="261" src="https://www.idashboards.com/wp-content/uploads/2020/06/IT-Service-Desk.png" alt="" class="wp-image-5379">
              </a>
              <br>
              <figcaption>
                <b><u><font size="+2">
                  <a href="https://www.idashboards.com/wp-content/uploads/2020/06/IT-Service-Desk.png">Dashboard Example 1</a>
              </font>
              </b></u>
              </figcaption>
            </figure>
          </center>
        </div>
    
        <div class="wp-block-image" style="display:inline-block;">
          <center>
            <figure class="aligncenter size-full">
              <a href="https://www.geckoboard.com/uploads/CEO-dashboard-geckoboard.png" target="_blank" rel="noopener">
                <img loading="lazy" width="517" height="261" src="https://www.geckoboard.com/uploads/CEO-dashboard-geckoboard.png" alt="" class="wp-image-5379">
              </a>
              <br>
              <figcaption>
                <b><u><font size="+2">
                  <a href="https://www.geckoboard.com/uploads/CEO-dashboard-geckoboard.png">Dashboard Example 2</a>
              </font>
              </b></u>
              </figcaption>
            </figure>
          </center>
        </div>
      </div>
    </div>
    
  • 方案二:删除HTML代码中所有不必要的空行
    只要保证HTML标签之间没有空行分隔,Pandoc就会将其识别为连续的HTML结构正常渲染,不需要额外添加块标记。

内容的提问来源于stack exchange,提问作者RL_Pug

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:30:05