Estou escrevendo um documento Markdown grande e gostaria de colocar uma espécie de sumário no início que forneça links para vários locais do documento. Como posso fazer isso?
Eu tentei usar
[a link](# MyTitle)
onde MyTitle
está um título no documento e isso não funcionou.
markdown
multimarkdown
recipriversexclusion
fonte
fonte
Respostas:
No pandoc , se você usar a opção
--toc
na produção de html, um índice será produzido com links para as seções e voltará ao índice a partir dos títulos das seções. É semelhante aos outros formatos que o pandoc escreve, como LaTeX, rtf, rst, etc. Portanto, com o comandoeste pouco de remarcação:
produzirá isso como o corpo do html:
fonte
git clone
inserido no diretório tmbundle mais baixo ou mais externo,~/Library/Application\ Support/TextMate/Bundles
para simplificar a integração.-1
à primeira repetição do id,-2
à segunda, etc.O Github analisa automaticamente as tags âncora dos seus cabeçalhos. Então você pode fazer o seguinte:
No caso acima, o
Foo
cabeçalho gerou uma marca de âncora com o nomefoo
Nota : apenas um
#
para todos os tamanhos de cabeçalho, sem espaço entre#
e o nome da âncora , os nomes das marcas de âncoras devem estar em minúsculas e delimitados por traços, se houver várias palavras .Atualizar
pandoc
Também funciona fora da caixa .fonte
[just](#like-this-one)
.## Foo
, tente [este é o meu link para Foo] (# foo) ... ou seja: hash único , sem espaço entre o hash e o minúsculo-kebab-case-name- do cabeçalhoExperimentando, encontrei uma solução usando,
<div…/>
mas uma solução óbvia é colocar seu próprio ponto de ancoragem na página onde você quiser, assim:antes e
após a linha que você deseja 'vincular'. Em seguida, um link de remarcação como:
em qualquer lugar do documento leva você até lá.
A
<div…/>
solução insere uma divisão "fictícia" apenas para adicionar aid
propriedade, e isso é potencialmente prejudicial à estrutura da página, mas o<a name="abcde"/>
solução deve ser bastante inócua.(PS: pode ser bom colocar a âncora na linha que você deseja vincular, da seguinte maneira:
mas isso depende de como Markdown trata isso. Observo, por exemplo, que o formatador de respostas Stack Overflow está satisfeito com isso!)
fonte
## headers
.<div/>
várias linhas abaixo serão afetadas. Em vez disso, tenho que envolver o texto que estou vinculando em umadiv
cláusula de marca completa e preciso ESPECIFICAR novamente o comportamento do zero usando HTML real. Vaia.<a name="head1"/>
por<a id="head1"/>
.Pode ser um encadeamento desatualizado, mas para criar links internos de documentos na remarcação no Github use ...
(NOTA: #title em minúsculas)
Uma boa pergunta foi feita, então eu editei minha resposta;
Uma ligação interna pode ser feita a qualquer tamanho de título usando -
#
,##
,###
,####
eu criei um exemplo rápido abaixo ... https://github.com/aogilvie/markdownLinkTestfonte
(#dependencies-title)
informa a remarcação no Github que este é um link interno. O texto a seguir pode ter qualquer tamanho de título. Aqui está um exemplo de teste que eu fiz ... https://github.com/aogilvie/markdownLinkTestsim, a remarcação faz isso, mas você precisa especificar o nome âncora
<a name='xyx'>
.um exemplo completo,
isso cria o link
[tasks](#tasks)
posteriormente no documento, você cria a âncora nomeada (seja como for chamada).
observe que você também pode envolvê-lo no cabeçalho.
fonte
O manual pandoc explica como vincular seus cabeçalhos, usando o identificador deles. Não verifiquei o suporte a isso por outros analisadores, mas foi relatado que ele não funciona no github .
O identificador pode ser especificado manualmente:
ou você pode usar o identificador gerado automaticamente (neste caso
#my-heading-text
). Ambos são explicados em detalhes no manual pandoc .NOTA : Isso funciona apenas na conversão para HTML , LaTex , ConTeXt , Textile ou AsciiDoc .
fonte
Algumas coisas adicionais a serem lembradas, se você gosta de símbolos nos cabeçalhos que deseja navegar para ...
... coisas como
#
,;
,&
, e:
na posição cordas são geralmente são ignorados / listrado em vez de escapar, e também se pode usar citação ligações estilo de fazer uso rápido mais fácil.Pontos bônus?
Apenas no caso de alguém estar se perguntando como as imagens e outros links dentro de um cabeçalho são analisados em um
id
...Ressalvas
A renderização do MarkDown difere de um lugar para outro, então coisas como ...
... no GitHub terá um elemento com
id
, como ...... onde o saneamento de baunilha resultaria em um
id
...... significando que a gravação ou compilação de arquivos MarkDown a partir de modelos exige o direcionamento de uma maneira de slugifeing , ou a adição de configurações e lógica de script para as várias maneiras inteligentes que os locais gostam de limpar o texto do cabeçalho.
fonte
Soluções universais
Esta pergunta parece ter uma resposta diferente de acordo com a implementação da remarcação.
De fato, a documentação oficial do Markdown é silenciosa sobre esse tópico.
Nesses casos, e se você quiser uma solução portátil, poderá usar HTML.
Antes de qualquer cabeçalho, ou na mesma linha de cabeçalho, defina um ID usando alguma tag HTML.
Por exemplo:
<a id="Chapter1"></a>
Você verá isso no seu código, mas não no documento renderizado.
Exemplo completo:
Veja um exemplo completo (online e editável) aqui .
Para testar este exemplo, você deve adicionar um espaço extra entre a lista de conteúdo e o primeiro capítulo ou reduzir a altura da janela.
Além disso, não use espaços no nome dos IDs.
fonte
## Chapter 1
precisa de uma linha aberta acima dela. (2) O link não funciona ...<span id="Chapter1"><span>
Não existe essa diretiva na especificação Markdown. Desculpa.
fonte
O Gitlab usa GitLab Flavored Markdown (GFM)
Aqui "todos os cabeçalhos renderizados pelo Markdown recebem identificações automaticamente"
Pode-se usar o mouse para:
copie e salve o link usando o botão direito do mouse
Por exemplo, no arquivo README.md, tenho o cabeçalho:
## series expansion formula of the Boettcher function
que fornece um link:
O prefixo pode ser removido, portanto o link aqui é simplesmente
o que aqui significa:
Agora pode ser usado como:
[series expansion formula of the Boettcher function](README.md#series-expansion-formula-of-the-boettcher-function)
Também é possível fazer isso manualmente: substitua espaços por hífen.
O exemplo ao vivo está aqui
fonte
Usando o kramdown, parece que isso funciona bem:
Eu vejo que foi mencionado que
funciona de forma eficiente, mas o primeiro pode ser uma boa alternativa para elementos além de cabeçalhos ou cabeçalhos com várias palavras.
fonte
Desde MultiMarkdown foi mencionado como uma opção nos comentários.
No MultiMarkdown, a sintaxe para um link interno é simples.
Para qualquer cabeçalho do documento, basta fornecer o nome do cabeçalho neste formato
[heading][]
para criar um link interno.Leia mais aqui: MultiMarkdown-5 Referências cruzadas .
fonte
Mais algumas rodadas no
<a name="">
truque:fonte
Além das respostas acima,
Ao definir a opção
number_sections: true
no cabeçalho YAML:O RMarkdown numerará automaticamente suas seções.
Para referenciar essas seções numeradas automaticamente, basta colocar o seguinte no seu arquivo R Markdown:
[My Section]
Onde
My Section
está o nome da seçãoIsso parece funcionar independentemente do nível da seção:
# My section
## My section
### My section
fonte