在RMarkdown HTML输出

时间:2016-09-01 21:38:09

标签: html rstudio knitr r-markdown

我正在使用R Studio创建降价文档。 我试过了:

Jump to [Header 1](#anchor)

我想设置一个链接,以便当读者点击它时,可以跳转到页面上的特定点 让我们说我希望他们被引导到的那个点有一个标题" ## Test"。

2 个答案:

答案 0 :(得分:30)

Pandoc支持标题的显式和隐式节引用;见the pandoc manual

  • explicit:您为标题## Test {#test}提供自定义名称,然后使用链接语法引用它:see [the relevant section](#test)
  • 隐式:您未设置自定义名称的标题,例如## Test,仍然可以参考:See the section called [Test]

这两种语法都应该允许您单击链接以转到锚点,并且应该以大多数输出​​格式工作。 (仅用html和pdf测试)。

---
output:  pdf_document
---

## A section

blah blah

## A second section with a custom identifier {#custom}

blah blah

## Links

You can use implicit references to refer to sections
you have not explicitly named, like this: 
see [A section]. 

You can use links to refere to sections with explicit
references, like this: see [the second section](#custom).

答案 1 :(得分:0)

以下是使用jQuery的HTML文档解决方案:

---
title: "Internal Links"
output: html_document
---

# First Section

## Second Section

### Third Section


<script type="text/javascript">
  // When the document is fully rendered...
  $(document).ready(function() {
    // ...select all header elements...
    $('h1, h2, h3, h4, h5').each(function() {
      // ...and add an id to them corresponding to their 'titles'
      $(this).attr('id', $(this).html());
    });
  });
</script>


<a href="#First Section">Go to first section</a><br>
<a href="#Second Section">Go to second section</a><br>
<a href="#Third Section">Go to third section</a>

正如评论所指出的那样,我们只需选择所有标题,读出其内容(例如“第一部分”),并将属性id添加到每个标题的特定内容对应的值。 现在,您可以使用#HEADER链接到任何标头(例如#First Section)。

这当然可以扩展到您希望锚定的所有其他元素。因此,如果要链接到任何块,只需将此脚本添加到文档中:

<script type="text/javascript">
  $(document).ready(function() {
    $('pre.r').each(function(i) {
      $(this).attr('id', 'Chunk_' + i);
    });
  });
</script>

现在,您可以使用<a href="Chunk_i">My Chunk</a> i来链接到块,其中N从0(第一个块)到var name = v.name.replace(search,"<b>search</b>");,即文档中的最后一个块。