首页 文章

降价时的交叉引用(命名锚点)

提问于
浏览
417

是否有相应的markdown语法:

Take me to <a href="#pookie">pookie</a>

... 

<a name="pookie">this is pookie</a>

8 回答

  • 561
    Take me to [pookie](#pookie)
    

    应该是正确的降价语法,以跳转到名为pookie的锚点 .

    要插入该名称的锚点,请使用HTML:

    <a name="pookie"></a>
    

    Markdown似乎并不介意你把锚点放在哪里 . 放在 Headers 中的一个有用的地方 . 例如:

    ### <a name="tith"></a>This is the Heading
    

    效果很好 . (我在这里演示但是SO的渲染器剥离了锚 . )

    关于自闭标签和id =对名=的注意事项

    这篇文章的早期版本建议使用 <a id='tith' /> ,使用XHTML的自关闭语法,并使用 id 属性而不是 name .

    XHTML允许任何标记为'empty'和'self-closed' . 也就是说, <tag /><tag></tag> 的简写,是一对带有空体的匹配标签 . 大多数浏览器都会接受XHTML,但有些浏览器不接受 . 要避免跨浏览器问题,请使用 <tag></tag> 显式关闭标记,如上所述 .

    最后,属性 name= 在XHTML中已弃用,因此我最初使用 id= ,每个人都认可 . 但是,当使用 id= 时,HTML5现在在JavaScript中创建一个全局变量,这可能不一定是您想要的 . 因此,使用 name= 现在可能更友好了 .

    (感谢Slipp Douglas向我解释XHTML,并且nailer用于指出HTML5副作用 - 请参阅注释和 naileranswer以获取更多详细信息. name= 似乎无处不在,尽管在XHTML中已弃用 . )

  • 16

    在bitbucket.org上,投票的解决方案不起作用 . 相反,当使用标头(带##)时,可以通过将它们作为#markdown-header-my-header-name加前缀来引用它们作为锚点,其中#markdown-header-是渲染器生成的隐式前缀,并且其余的是较低的 Headers Headers ,用破折号代替空格 .

    ## My paragraph title
    

    会产生这样的隐式锚点

    #markdown-header-my-paragraph-title
    

    每个锚引用之前的整个URL是可选的,即

    [Some text](#markdown-header-my-paragraph-title)
    

    相当于

    [Some text](https://bitbucket.org/some_project/some_page#markdown-header-my-paragraph-title)
    

    只要它们在同一页面中 .

    来源:https://bitbucket.org/tutorials/markdowndemo/overview(编辑此.md文件的源代码并查看如何制作锚点) .

  • 52

    Use a name. Using an id isn't necessary in HTML 5 and will create global variables in your JavaScript

    请参阅HTML 5规范5.9.8 Navigating to a fragment identifier - 使用 idname .

    知道most browsers still turn IDs into global variables非常重要 . 这是a quick test . 使用 name 可以避免创建全局变量以及可能导致的任何冲突 .

    使用名称的示例:

    Take me to [pookie](#pookie)
    

    目的地锚点:

    ### <a name="pookie"></a>Some heading
    
  • 8

    在原始Markdown语法中没有现成的语法,但Markdown Extra提供了至少为 Headers 分配ID的方法 - 然后您可以轻松链接到 Headers . 另请注意,您可以在Markdown和Markdown Extra中使用常规HTML,并且 name 属性已被更新版本的HTML中的 id 属性取代 .

  • 2

    Markdown Anchor 支持哈希标记,因此页面中锚点的链接只是 [Pookie](#pookie)

    Gruber Markdown实际上不支持生成锚,但是在其他实现中,例如Markdown Extra .

    在Markdown Extra中,锚ID附加到带有 {#pookie} 的 Headers 或子 Headers .

    Github Flavored Markdown 在Git存储库页面中(但不在Gists中) automatically generates anchors 在所有 Headers (h1,h2,h3等)上有多个标记标记,包括:

    • id="user-content-HEADERTEXT"

    • class="anchor"

    • href="#HEADERTEXT"

    • aria-hidden="true" (这是针对鼠标悬停时显示的svg链接图标)

    当一个人写道时,排除aria / svg图标:

    • # Header Title

    Github生成:

    • <h1><a id="user-content-header-title" class="anchor" href="#header-title">Header Title</a></h1>

    因此,创建 Headers 链接无需任何操作,并且始终可以使用以下链接链接到它们:

    • 链接到 [Header Title](#header-title)
  • 56

    迟到了,但我认为这个添加可能对使用 rmarkdown 的人有用 . 在 rmarkdown 中,内置支持对文档中 Headers 的引用 .

    由...定义的任何标头

    # Header
    

    可以引用

    get me back to that header(#header)
    

    以下是显示此行为的最小独立 .rmd 文件 . 它可以编织为 .pdf.html .

    ---
    title: "references in rmarkdown"
    output:
      html_document: default
      pdf_document: default
    ---
    
    # Header
    
    Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. 
    
    Go back to that [header](#header).
    
  • 0

    对于大多数常见的降价发生器 . 每个 Headers 中都有一个简单的自生成锚点 . 例如,使用pandoc,生成的锚将成为 Headers 的kebab case slug .

    echo "# Hello, world\!" | pandoc
     # => <h1 id="hello-world">Hello, world!</h1>
    

    根据你使用的降价解析器,锚点可以改变(以symbolrush和La muerte Peluda答案为例,它们是不同的!) . 看到babelmark,您可以在其中看到生成的锚点 depending on your markdown implementation .

  • 4

    使用最新的Markdown,您应该能够使用以下语法:

    [](){:name='anchorName'}

    这应该创建以下HTML:

    <a name="anchorName"></a>

    如果您希望锚具有文本,只需在方括号内添加测试:

    `Some Text {:name ='anchorName'}

相关问题