tautan internal penurunan harga jekyll

143

Jekyll menggunakan tautan berformat Markdown, tetapi bagaimana saya bisa menautkan ke konten internal?

[[link]] 
JuanPablo
sumber

Jawaban:

249

Anda sekarang dapat memposting tautan internal dengan menggunakan yang berikut:

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

Ini juga dirujuk dalam Dokumentasi Jekyll .

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

Brett Hardin
sumber
17
Adakah yang tahu bagaimana cara menautkan secara internal ke suatu halaman?
Dogweather
1
Sepertinya tidak mungkin untuk menautkan ke halaman. PR ini ditutup tanpa digabung: github.com/jekyll/jekyll/pull/369
northben
1
Apakah mungkin untuk mendapatkan judul untuk ditampilkan dengan mudah, misalnya membuat [Title of post](/correct/permalink)dengan satu perintah? Saya hanya bisa melakukannya dengan penyaringan yang terlalu bertele-tele.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Jika Anda memiliki subdir: [Teks Tautan] ({% post_url / dirname / 2010-07-21-post%})
alexsalo
Satu kesalahan kecil: Jekyll Dokumentasi Ini post-urlbukanpost_url
Han Qiu
40

Sekarang mungkin untuk menautkan ke halaman selain posting menggunakan linktag. linkberfungsi untuk posting, halaman, dokumen dalam koleksi, dan 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 %}

Ingatlah untuk menyertakan ekstensi file saat menggunakan linktag. Untuk menggunakannya untuk membuat tautan:

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

Lihat Dokumentasi Jekyll .

elfxiong
sumber
2
Saya juga menemukan halaman dokumentasi ini bermanfaat - jekyllrb.com/docs/liquid/tags/#link
David Douglas
2
Saya baru saja menemukan bahwa tidak perlu digunakan {{ site.baseurl }}karena menggandakan nilai baseurl dalam href yang dihasilkan. [Link to a post]({% link _posts/2016-07-26-name-of-post.md %})
oleksa
Anda perlu menggunakan site.baseurl di Jekyll 3.x, tidak lagi diperlukan di 4.x. Namun Pages masih terjebak pada 3.x sebagai versi maksimal, AFAIK.
Henry Schreiner
26

Untuk halaman, mereka memutuskan untuk tidak menambahkan page_urltag karena Anda harus mengetahui jalur halaman itu. Jadi, Anda hanya perlu menautkannya secara manual:

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

Atau Anda dapat melakukan sesuatu yang besar dan jelek seperti ini jika Anda ingin mendapatkan judul halaman secara terprogram:

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

Jika konten internal berada di halaman yang sama maka dimungkinkan untuk menautkannya menggunakan auto_idsfitur. Anda mengaktifkan ini di _config.yml:

kramdown:
    auto_ids: true

Dengan ini diaktifkan setiap heading mendapat idreferensi berdasarkan teks heading. Sebagai contoh

### My Funky Heading

akan menjadi

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

Anda dapat menautkan ini dari dalam dokumen yang sama dengan melakukan sesuatu seperti ini:

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

Anda dapat menetapkan id eksplisit jika Anda lebih suka:

### My Funky Heading
{: #funky }

dan tautan ke sana

The funky text is [described below](#funky)
starfry
sumber
Itu berfungsi bahkan jika Anda ingin merujuk elemen lain selain judul.
Antonio Vinicius Menezes Medei
1
Ini persis apa yang saya cari. Terima kasih!
Wimateeka
Solusi yang sangat elegan!
Robur_131
Ini juga dapat diperpanjang untuk tautan di halaman lain. misalnya: [teks] (/ path / ke / file / # funky)
Robur_131
8

Ada beberapa cara menghubungkan di Jekyll, beberapa di antaranya sekarang sudah ketinggalan zaman.

Dengan tag tautan

Cara yang disarankan untuk menautkan ke file internal adalah

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

Perhatikan bahwa ini akan menyebabkan kesalahan jika file bergerak atau terhapus.

Dengan permalinks

Untuk menautkan ke halaman tanpa menyebabkan kesalahan (tautan yang terputus):

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

Perhatikan bahwa di sini Anda perlu mengetahui permalink halaman dan meneruskannya melalui relative_urlfilter untuk memastikan bahwa diawali dengan url dasar situs.

Permalink suatu halaman tergantung pada permalinkpengaturan dalam file konfigurasi Anda dan permalinkkunci di bagian depan file tersebut.

Dengan jekyll-relative-links

Jika Anda ingin menggunakan jalur relatif (dan ingin tautan berfungsi dalam tampilan penurunan harga GitHub), Anda harus menggunakan jekyll-relative-links. Ini memungkinkan Anda menulis tautan seperti:

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

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

Bayangkan ini adalah direktori proyek Anda:

direktori proyek

Untuk menautkan "index.md" ke file di dalam folder "blog" bernama "20190920-post1.md", lakukan hal berikut:

  1. Buka file "index.md".
  2. Tambahkan yang berikut ini:

    [teks apa saja] (./ jalur relatif)

Sebagai contoh:

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

Keluaran:

masukkan deskripsi gambar di sini

yogescicak
sumber