How to link to part of the same document in Markdown?

前端 未结 14 1502
眼角桃花
眼角桃花 2020-11-29 14:50

I am writing a large Markdown document and would like to place a table of contents of sorts at the beginning that will provide links to various locations in the document. Ho

相关标签:
14条回答
  • 2020-11-29 15:01

    In addition to the above answers,

    When setting the option number_sections: true in the YAML header:

    number_sections: TRUE
    

    RMarkdown will autonumber your sections.

    To reference those autonumbered sections simply put the following in your R Markdown file:

    [My Section]

    Where My Section is the name of the section

    This seems to work regardless of the section level:

    # My section

    ## My section

    ### My section

    0 讨论(0)
  • 2020-11-29 15:03

    The pandoc manual explains how to link to your headers, using their identifier. I did not check support of this by other parsers, but it was reported that it does not work on github.

    The identifier can be specified manually:

    ## my heading text {#mht}
    
    Some normal text here,
    including a [link to the header](#mht).
    

    or you can use the auto-generated identifier (in this case #my-heading-text). Both are explained in detail in the pandoc manual.

    NOTE: This only works when converting to HTML, LaTex, ConTeXt, Textile or AsciiDoc.

    0 讨论(0)
  • 2020-11-29 15:04

    This may be out-of-date thread but to create inner document links in markdown in Github use...
    (NOTE: lowercase #title)

        # Contents
         - [Specification](#specification) 
         - [Dependencies Title](#dependencies-title) 
    
        ## Specification
        Example text blah. Example text blah. Example text blah. Example text blah. 
    Example text blah. Example text blah. Example text blah. Example text blah. 
    Example text blah. Example text blah. Example text blah. Example text blah. 
    Example text blah. Example text blah. 
    
        ## Dependencies Title
        Example text blah. Example text blah. Example text blah. Example text blah. 
    Example text blah. Example text blah. Example text blah. Example text blah. 
    Example text blah. Example text blah. Example text blah. Example text blah. 
    Example text blah. Example text blah. 
    

    A good question was made so I have edited my answer;

    An inner link can be made to any title size using - #, ##, ###, #### I created a quick example below... https://github.com/aogilvie/markdownLinkTest

    0 讨论(0)
  • 2020-11-29 15:05

    Github automatically parses anchor tags out of your headers. So you can do the following:

    [Custom foo description](#foo)
    
    # Foo
    

    In the above case, the Foo header has generated an anchor tag with the name foo

    Note: just one # for all heading sizes, no space between # and anchor name, anchor tag names must be lowercase, and delimited by dashes if multi-word.

    [click on this link](#my-multi-word-header)
    
    ### My Multi Word Header
    

    Update

    Works out of the box with pandoc too.

    0 讨论(0)
  • 2020-11-29 15:05

    Since MultiMarkdown was mentioned as an option in comments.

    In MultiMarkdown the syntax for an internal link is simple.

    For any heading in the document simply give the heading name in this format [heading][] to create an internal link.

    Read more here: MultiMarkdown-5 Cross-references.

    Cross-References

    An oft-requested feature was the ability to have Markdown automatically handle within-document links as easily as it handled external links. To this aim, I added the ability to interpret [Some Text][] as a cross-link, if a header named “Some Text” exists.

    As an example, [Metadata][] will take you to # Metadata (or any of ## Metadata, ### Metadata, #### Metadata, ##### Metadata, ###### Metadata).

    Alternatively, you can include an optional label of your choosing to help disambiguate cases where multiple headers have the same title:

    ### Overview [MultiMarkdownOverview] ##

    This allows you to use [MultiMarkdownOverview] to refer to this section specifically, and not another section named Overview. This works with atx- or settext-style headers.

    If you have already defined an anchor using the same id that is used by a header, then the defined anchor takes precedence.

    In addition to headers within the document, you can provide labels for images and tables which can then be used for cross-references as well.

    0 讨论(0)
  • 2020-11-29 15:07

    Experimenting, I found a solution using <div…/> but an obvious solution is to place your own anchor point in the page wherever you like, thus:

    <a name="abcde">
    

    before and

    </a>
    

    after the line you want to "link" to. Then a markdown link like:

    [link text](#abcde)
    

    anywhere in the document takes you there.

    The <div…/> solution inserts a "dummy" division just to add the id property, and this is potentially disruptive to the page structure, but the <a name="abcde"/> solution ought to be quite innocuous.

    (PS: It might be OK to put the anchor in the line you wish to link to, as follows:

    ## <a name="head1">Heading One</a>
    

    but this depends on how Markdown treats this. I note, for example, the Stack Overflow answer formatter is happy with this!)

    0 讨论(0)
提交回复
热议问题