jekyll markdown link interni


143

Jekyll utilizza collegamenti in formato Markdown, ma come posso collegarmi al contenuto interno?

[[link]] 

Risposte:


250

È ora possibile pubblicare collegamenti interni utilizzando quanto segue:

[Some Link]({% post_url 2010-07-21-name-of-post %})

Questo è anche indicato nella documentazione Jekyll .

https://github.com/mojombo/jekyll/pull/369


17
Qualche idea su come collegare internamente a una pagina?
Dogweather,

1
Sembra che non sia possibile collegarsi a una pagina. Questo PR è stato chiuso senza essere unito: github.com/jekyll/jekyll/pull/369
northben

1
È possibile visualizzare facilmente il titolo, ad es. Render [Title of post](/correct/permalink)con un solo comando? Potrei farlo solo con un filtro troppo dettagliato.
Ciro Santilli 3 冠状 病 六四 事件 法轮功

Se hai i sottodirectory: [Testo del link] ({% post_url / dirname / 2010-07-21-post%})
alexsalo,

Un piccolo errore: Jekyll Documentazione E ' post-urlnonpost_url
Han Qiu

40

Ora è possibile collegarsi a pagine diverse dai post utilizzando il linktag. linkfunziona per post, pagine, documenti in una raccolta e file.

{{ 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 %}

Ricorda di includere l'estensione del file quando usi il linktag. Per usarlo per creare un collegamento:

[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 %})

Vedi la documentazione Jekyll .


2
Ho anche trovato utile questa pagina di documentazione - jekyllrb.com/docs/liquid/tags/#link
David Douglas,

2
Ho appena scoperto che non è necessario utilizzarlo {{ site.baseurl }}poiché raddoppia il valore baseurl nell'href generato. [Link to a post]({% link _posts/2016-07-26-name-of-post.md %})
oleksa,

Devi usare site.baseurl su Jekyll 3.x, non è più necessario in 4.x. Ma Pages è ancora bloccato su 3.x come versione massima, AFAIK.
Henry Schreiner,

26

Per le pagine, hanno deciso di non aggiungere un page_urltag perché dovresti comunque conoscere il percorso della pagina. Quindi devi solo collegarti ad esso manualmente:

[My page](/path/to/page.html)

Oppure puoi fare qualcosa di grosso e brutto come questo se vuoi ottenere programmaticamente il titolo della pagina:

{% for page in site.pages %}
  {% if page.url == '/path/to/page.html' %}
[{{ page.title }}]({{ page.url }})
  {% endif %}
{% endfor %}

14

Se il contenuto interno si trova sulla stessa pagina, è possibile collegarsi ad esso utilizzando la auto_idsfunzione. Lo abiliti in _config.yml:

kramdown:
    auto_ids: true

Con questa opzione abilitata, ogni intestazione ottiene un riferimento idbasato sul testo dell'intestazione. Per esempio

### My Funky Heading

diventerà

<h3 id="my-funky-heading">My Funky Heading</h3>

Puoi collegarti a questo all'interno dello stesso documento facendo qualcosa del genere:

The funky text is [described below](#my-funky-heading)

Puoi assegnare un ID esplicito se preferisci:

### My Funky Heading
{: #funky }

e link ad esso

The funky text is [described below](#funky)

Funziona anche se vuoi fare riferimento ad altri elementi oltre ai titoli.
Antonio Vinicius Menezes Medei,

1
Questo e 'esattamente quello che stavo cercando. Grazie!
Wimateeka,

Una soluzione così elegante!
Robur_131

Questo può anche essere esteso per i collegamenti in altre pagine. ad esempio: [testo] (/ percorso / su / file / # funky)
Robur_131

8

Esistono diversi modi di collegamento in Jekyll, alcuni dei quali sono obsoleti.

Con tag di collegamento

Il modo consigliato per collegarsi ai file interni è

[Link]({{ site.baseurl }}{% link path/to/file.md %})

Si noti che ciò causerà un errore se il file si sposta o viene eliminato.

Con permalink

Per collegarsi a una pagina senza causare errori (collegamenti interrotti invece):

[Link]({{ '/path/to/page/' | relative_url }})

Nota che qui devi conoscere il permalink della pagina e passarlo attraverso il relative_urlfiltro per assicurarti che abbia il prefisso con l'URL di base del sito.

Il permalink di una pagina dipende permalinkdall'impostazione nel file di configurazione e dalla permalinkchiave nella parte anteriore del file.

Con jekyll-relative-links

Se vuoi usare percorsi relativi (e vuoi che i collegamenti funzionino nella vista markdown di GitHub), dovresti usare jekyll-relative-links. Ciò ti consente di scrivere collegamenti come:

[Link](./path/to/file.md)

[Link to file in parent folder](../file.md)

0

Immagina che questa sia la directory del tuo progetto:

directory di progetto

Per collegare "index.md" a un file nella cartella "blog" chiamato "20190920-post1.md", procedi come segue:

  1. Apri il file "index.md".
  2. Aggiungi quanto segue:

    [qualsiasi testo] (./ percorso relativo)

Per esempio:

- [Sept 20th 2019 - Kikucare's Journey](./blog/20190920-post1.md)

Produzione:

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.