2016-09-01 2 views
2

Я использую R Studio для создания документа уценки. Я пробовал:Использовать внутренние ссылки в RMarkdown HTML output

Jump to [Header 1](#anchor) 

Я хотел бы настроить ссылку так, когда читатель нажимает на него, можно перейти к определенной точке на этой странице.
Скажем, точка, к которой я хочу, чтобы они были направлены, имеет заголовок «## Test».

ответ

1

Вот решение для HTML-документов с помощью JQuery:

--- 
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 идет от 0, первый кусок, чтобы N, самый последний фрагмент в вашем документе.

11

Pandoc поддерживает явные и неявные ссылки раздела для заголовков; см. the pandoc manual.

  • Явный: вы даете пользовательское имя заголовка ## 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).