# Anchors in markdown

**URL:** <https://talk.commonmark.org/t/anchors-in-markdown/247>\
**Category:** Spec\
**Created:** [September 4, 2014, 8:39am UTC](https://talk.commonmark.org/t/anchors-in-markdown/247 "2014-09-04T08:39:07Z")\
**Posts on this page:** 1\
**Showing post:** 20

<div class="post-metadata">

**Author:** ![Crissov](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/crissov/32/1455_2.png) [@Crissov](https://talk.commonmark.org/u/Crissov)\
**Post date:** [December 25, 2016, 2:22am UTC](https://talk.commonmark.org/t/anchors-in-markdown/247/20 "2016-12-25T02:22:31Z")

</div>

There are lots of subtle syntax variants that most people would also accept, but which may score better at compatibility. Several ones of them could be supported, others forbidden. Some alternatives play better with info strings of fenced code blocks, others with current or proposed link syntax.

## Meta data inside curly braces

1. `## Heading {#ID .class}`

2. `## Heading ## {#ID .class}`

3. `## Heading {#ID .class} ##`

4. `## {#ID .class} Heading`

5. `{#ID .class} ## Heading`

6. `{#ID .class}`  
`## Heading`

7. `{#ID .class}`  
`## Heading ##`

8. `## Heading`  
`{#ID .class}`

9. `## Heading ##`  
`{#ID .class}`

10. `Heading {#ID .class}`  
`-------`

11. `{#ID .class} Heading`  
`-------`

12. `Heading`  
`------- {#ID .class}`

13. `Heading`  
`{#ID .class} -------`

## Meta data (only) separated by line affix

1. `## Heading ## #ID .class`

2. `#ID .class ## Heading ##`

3. `#ID .class ## Heading`

4. `#ID ## Heading ## .class`

5. `.class ## Heading ## #ID`

6. `Heading`  
`------- #ID .class`

## Explicit IDs by reusing link (definition) syntax

1. `[ID]`  
`## Heading`

2. `[ID]:`  
`## Heading`

3. `## Heading [][ID]`

4. `## [][ID] Heading`

5. `## [Heading][ID]`

6. `## Heading`  
`[][ID]`

7. `[][ID]`  
`## Heading`

8. `## Heading …`  
`[Heading]: ID`

9. `## Heading …`  
`[Heading]: #ID`

10. `## Heading …`  
`[#Heading]: ID`

11. `## Heading …`  
`[#Heading]: #ID`

12. `## Heading …`  
`[Heading]: [ID]`

13. `## [Heading] …`  
`[Heading]: ID`

14. `## [Heading] …`  
`[Heading]: #ID`

15. `## [Heading] …`  
`[#Heading]: ID`

16. `## [Heading] …`  
`[#Heading]: #ID`

17. `## [Heading] …`  
`[Heading]: [ID]`

I’m probably forgetting some possibilities and proposals.

---

_[View the full topic](https://talk.commonmark.org/t/anchors-in-markdown/247)._
