O Jekyll usa links no formato Markdown, mas como posso vincular ao conteúdo interno?
[[link]]
O Jekyll usa links no formato Markdown, mas como posso vincular ao conteúdo interno?
[[link]]
Respostas:
Agora você pode postar links internos usando o seguinte:
[Some Link]({% post_url 2010-07-21-name-of-post %})
Isso também é mencionado na documentação do Jekyll .
[Title of post](/correct/permalink)
com um único comando? Eu só poderia fazê-lo com a filtragem, que é muito detalhada.
Agora é possível vincular a páginas que não sejam postagens usando o link
tag. link
funciona para postagens, páginas, documentos em uma coleção e arquivos.
{{ site.baseurl }}{% link _collection/name-of-document.md %}
{{ site.baseurl }}{% link _posts/2016-07-26-name-of-post.md %}
{{ site.baseurl }}{% link news/index.html %}
{{ site.baseurl }}{% link /assets/files/doc.pdf %}
Lembre-se de incluir a extensão do arquivo ao usar a link
tag. Para usá-lo para criar um link:
[Link to a document]({{ site.baseurl }}{% link _collection/name-of-document.md %})
[Link to a post]({{ site.baseurl }}{% link _posts/2016-07-26-name-of-post.md %})
[Link to a page]({{ site.baseurl }}{% link news/index.html %})
[Link to a file]({{ site.baseurl }}{% link /assets/files/doc.pdf %})
Veja a documentação do Jekyll .
{{ site.baseurl }}
pois ele dobra o valor baseurl no href gerado. [Link to a post]({% link _posts/2016-07-26-name-of-post.md %})
Para páginas, eles decidiram não adicionar uma page_url
tag, porque você precisaria saber o caminho da página. Então você só precisa criar um link manualmente:
[My page](/path/to/page.html)
Ou você pode fazer algo grande e feio como esse se quiser obter programaticamente o título da página:
{% for page in site.pages %}
{% if page.url == '/path/to/page.html' %}
[{{ page.title }}]({{ page.url }})
{% endif %}
{% endfor %}
Se o conteúdo interno estiver na mesma página, é possível vinculá-lo usando o auto_ids
recurso. Você habilita isso em _config.yml
:
kramdown:
auto_ids: true
Com isso ativado, cada cabeçalho recebe uma id
ref com base no texto do cabeçalho. Por exemplo
### My Funky Heading
se tornará
<h3 id="my-funky-heading">My Funky Heading</h3>
Você pode vincular isso a partir do mesmo documento, fazendo algo assim:
The funky text is [described below](#my-funky-heading)
Você pode atribuir um ID explícito se preferir:
### My Funky Heading
{: #funky }
e link para ele
The funky text is [described below](#funky)
Existem várias maneiras de vincular no Jekyll, algumas das quais estão desatualizadas.
A maneira recomendada de vincular a arquivos internos é
[Link]({{ site.baseurl }}{% link path/to/file.md %})
Observe que isso causará um erro se o arquivo for movido ou excluído.
Para vincular a uma página sem causar erros (links quebrados):
[Link]({{ '/path/to/page/' | relative_url }})
Observe que aqui você precisa conhecer o link permanente da página e passá-la pelo relative_url
filtro para garantir que ela seja prefixada com o URL base do site.
O link permanente de uma página depende da permalink
configuração no seu arquivo de configuração e dapermalink
chave na parte da frente do arquivo.
Se você quiser usar caminhos relativos (e quiser que os links funcionem na exibição de descontos do GitHub), use jekyll-relative-links
. Isso permite que você escreva links como:
[Link](./path/to/file.md)
[Link to file in parent folder](../file.md)
Imagine que este é o diretório do seu projeto:
Para vincular "index.md" a um arquivo dentro da pasta "blog" chamado "20190920-post1.md", faça o seguinte:
Adicione o seguinte:
[qualquer texto] (./ caminho relativo)
Por exemplo:
- [Sept 20th 2019 - Kikucare's Journey](./blog/20190920-post1.md)
Resultado: