Respostas:
Take me to [pookie](#pookie)
deve ser a sintaxe correta da marcação para pular para o ponto de ancoragem chamado pookie.
Para inserir um ponto de ancoragem com esse nome, use HTML:
<a name="pookie"></a>
Markdown não parece se importar onde você coloca o ponto de ancoragem. Um local útil para colocá-lo é um cabeçalho. Por exemplo:
### <a name="tith"></a>This is the Heading
funciona muito bem (Eu demonstraria aqui, mas o renderizador da SO retira a âncora.)
id=
versusname=
Uma versão anterior desta postagem sugeria usar <a id='tith' />
, usar a sintaxe de fechamento automático para XHTML e usar o id
atributo em vez de name
.
O XHTML permite que qualquer tag seja 'vazia' e 'fechada automaticamente'. Ou seja, <tag />
é uma abreviação de <tag></tag>
, um par de tags correspondente com um corpo vazio. A maioria dos navegadores aceita XHTML, mas outros não. Para evitar problemas entre navegadores, feche a tag explicitamente usando o <tag></tag>
recomendado acima.
Finalmente, o atributo name=
foi descontinuado em XHTML, então usei originalmente id=
, o que todos reconhecem. No entanto, o HTML5 agora cria uma variável global em JavaScript ao usar id=
, e isso pode não ser necessariamente o que você deseja. Portanto, name=
agora é provável que o uso seja mais amigável.
(Obrigado a Slipp Douglas por me explicar o XHTML e a nailer por apontar o efeito colateral do HTML5 - veja os comentários e a resposta do nailer para obter mais detalhes. Parece funcionar em qualquer lugar, embora esteja obsoleto no XHTML.)name=
<a>
um href, não significa que ele seja fechado automaticamente. A menos que eu esteja completamente louco, os dois: test-xhtml11 e [ sln.6bitt.com/public/test-html5.htmlι(test-html5) renderizam o restante da página na tag <a>. Vá em frente e inspecione com um inspetor da web de sua escolha.
<a id="hi"/> rest of doc
, mas foi tratado como <a id="hi"> rest of doc</a>
. (E a análise de elementos da página também mostra isso.) Meu erro: observei os elementos exibidos e não a fonte bruta. Você acha que a resposta deve ser modificada, à luz desta observação?
name
atributo também cria variáveis globais (consulte stackoverflow.com/questions/3434278/… ); portanto, você também pode usar o id
atributo como o destino dos URLs de identificador de fragmento, conforme desejado.
No bitbucket.org, a solução votada não funcionaria. Em vez disso, ao usar cabeçalhos (com ##), é possível referenciá-los como âncoras, prefixando-os como # markdown-header-my-header-name, em que # markdown-header- é um prefixo implícito gerado pelo representante e o restante é o título do cabeçalho com letras minúsculas, com traços substituindo espaços.
Exemplo
## My paragraph title
produzirá uma âncora implícita como esta
#markdown-header-my-paragraph-title
O URL inteiro antes de cada referência de âncora é opcional, ou seja,
[Some text](#markdown-header-my-paragraph-title)
é equivalente a
[Some text](https://bitbucket.org/some_project/some_page#markdown-header-my-paragraph-title)
desde que estejam na mesma página.
Fonte: https://bitbucket.org/tutorials/markdowndemo/overview (edite a fonte desse arquivo .md e veja como são feitas as âncoras).
## My paragraph title
produzirá a seguinte âncora user-content-my-paragraph-title
, para que você possa referenciá-la com [Some text] (# user-content-my-paragraph-title). No entanto, não encontrei documentação oficial para isso.
[linky](#header)
havia uma âncora suficiente e também funcionava quando publicado no Gist.
Use a name
. Usar um id
não é necessário no HTML 5 e criará variáveis globais no seu JavaScript
Consulte a especificação HTML 5, 5.9.8 Navegando para um identificador de fragmento - ambos id
e name
são usados.
É importante saber que a maioria dos navegadores ainda transforma IDs em variáveis globais . Aqui está um teste rápido . O uso de um name
evita a criação de globais e quaisquer conflitos que possam resultar.
Exemplo usando um nome:
Take me to [pookie](#pookie)
E a âncora de destino:
### <a name="pookie"></a>Some heading
name
e id
é diferente.
fineuploader
, não poderá usar o fineuploader
módulo. Evitar a criação de globais desnecessários ajuda a evitar esses conflitos.
A âncora de Markdown suporta o hashmark; portanto, um link para uma âncora na página seria simplesmente[Pookie](#pookie)
A geração da âncora não é realmente suportada no Gruber Markdown, mas em outras implementações, como o Markdown Extra .
No Markdown Extra, o ID da âncora é anexado a um cabeçalho ou subtítulo com {#pookie}
.
O Markdown com sabor do Github nas páginas do repositório Git (mas não no Gists) gera automaticamente âncoras com várias tags de marcação em todos os cabeçalhos (h1, h2, h3 etc.), incluindo:
id="user-content-HEADERTEXT"
class="anchor"
href="#HEADERTEXT"
aria-hidden="true"
(isto é para um ícone de link svg que é exibido na passagem do mouse)Excluindo o ícone ária / svg, quando se escreve:
# Header Title
O Github gera:
<h1><a id="user-content-header-title" class="anchor" href="#header-title">Header Title</a></h1>
Portanto, não é necessário fazer nada para criar os links do cabeçalho e sempre pode-se vincular a eles com:
[Header Title](#header-title)
Não há sintaxe prontamente disponível para fazer isso na sintaxe original do Markdown, mas o Markdown Extra fornece um meio de pelo menos atribuir IDs aos cabeçalhos - aos quais você pode vincular facilmente. Observe também que você pode usar HTML regular no Markdown e no Markdown Extra e que o name
atributo foi substituído pelo id
atributo nas versões mais recentes do HTML.
Para quem está procurando uma solução para esse problema no GitBook. Foi assim que eu fiz funcionar (no GitBook). Você precisa marcar seu cabeçalho explicitamente, assim:
# My Anchored Heading {#my-anchor}
Em seguida, vincule a esta âncora como esta
[link to my anchored heading](#my-anchor)
Solução e exemplos adicionais podem ser encontrados aqui: https://seadude.gitbooks.io/learn-gitbook/
Tarde para a festa, mas acho que essa adição pode ser útil para as pessoas que trabalham rmarkdown
. Normarkdown
há suporte embutido para referências a cabeçalhos no documento.
Qualquer cabeçalho definido por
# Header
pode ser referenciado por
get me back to that [header](#header)
A seguir está um .rmd
arquivo autônomo mínimo que mostra esse comportamento. Pode ser tricotado em .pdf
e .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).
Usando o Markdown mais recente, você poderá usar a seguinte sintaxe:
[](){:name='anchorName'}
Isso deve criar o seguinte HTML:
<a name="anchorName"></a>
Se você deseja que a âncora tenha texto, basta adicioná-lo entre colchetes:
[Some Text](){:name='anchorName'}
Maruku
conhece essa sintaxe. Veja a marca de babel.
Para os geradores de redução mais comuns. Você tem uma âncora auto gerada simples em cada cabeçalho. Por exemplo, com o pandoc , a âncora gerada será uma lesma de caso de kebab do seu cabeçalho.
echo "# Hello, world\!" | pandoc
# => <h1 id="hello-world">Hello, world!</h1>
Dependendo do analisador de remarcação usado, a âncora pode mudar (pegue o exemplo das respostas de SymbolRush e La muerte Peluda, elas são diferentes!). Veja esta marca de rótulo onde você pode ver as âncoras geradas, dependendo da sua implementação de redução .