19

I'm using Jekyll on Github, and I wonder whether there's a way to link to a section within a page. Say I have a section like

## Section 1 ##
section content 

and later in the same page I want to link to this section. I've found how to link to another page within the blog and do footnotes, but not this.

As a note, I use markdown: kramdown in my _config.yml

Community
  • 1
  • 1
user7843034
  • 429
  • 4
  • 8

4 Answers4

25

kramdown supports the automatic generation of header IDs if the option auto_ids is set to true (which is the default). This is done by converting the untransformed, i.e. plain, header text

So in the above example ## Section 1 ##, it would generate the following id: id="section-1", then the anchor is linked to via the A element:

<A href="#section-1">Section One</A>

Or in plain kramdown/markdown: [Section 1](#section-1)

marcanuy
  • 23,118
  • 9
  • 64
  • 113
  • Usually you don't need anything else but automatically generated id's like "first-section" for "First Section" section title. Good answer. – kludg Sep 15 '20 at 09:05
5

It seems that this has been changed to #heading-section-1 (checking on Jekyll 3.7.3 right now).

As a way to figure this out on your own, you can inspect the element and see the id being used on the rendered page.

spygi
  • 412
  • 3
  • 10
1

I found a nice repository that helps add anchors to all headers in three simple steps.

From docs:

  1. Download the anchor_headings.html file from the master branch

  2. Toss that file in your _includes folder

  3. Where you typically would put {{ content }} in your layout, you would instead use this Liquid tag to output your page's content:

    {% include anchor_headings.html html=content anchorBody="#" %}

As result you will see:

enter image description here

Which is easy to customize.

Ilarion Halushka
  • 2,083
  • 18
  • 13
0

If the section of the page you want to jump to is not a section heading, then this accepted answer didn't work for me. The following worked for me:

[jump](#final-solution)


<div id="final-solution"></div>
TrigonaMinima
  • 1,828
  • 1
  • 23
  • 35