簡體   English   中英

Jekyll:使用內部markdown文件的鏈接

[英]Jekyll : Using links to internal markdown files

帶有Folder/file.md鏈接的md文件

當jekyll生成索引時,該文件的鏈接仍然是folder/file.md ,因此不會連接到生成的file.html jekyll可以用相應的html文件替換markdown中的鏈接嗎?

我真的想要維護我的文件夾結構(大約7個子文件夾,每個子文件夾有3個降價文件)。

自2016年12月以來的答案是使用jekyll-relative-links插件。

如果你在GitHub頁面上托管它是一個白名單插件,所以你可能已經擁有它。


如果您不使用GitHub頁面,則需要以下安裝說明( 來自README ):

1.將以下內容添加到您網站的Gemfile中:

gem 'jekyll-relative-links'

2.將以下內容添加到您站點的配置文件中:

gems:
  - jekyll-relative-links

我寫了一個簡單的插件來解決這個問題。 把它放在_plugins/ ,並使鏈接引用*.md文件(所以github渲染鏈接工作); 如果你使用jekyll構建它(當你能夠運行插件時),鏈接將更改為*.html 由於github不運行插件,因此不適用。

module ChangeLocalMdLinksToHtml
  class Generator < Jekyll::Generator
    def generate(site)
      site.pages.each { |p| rewrite_links(site, p) }
    end
    def rewrite_links(site, page)
      page.content = page.content.gsub(/(\[[^\]]*\]\([^:\)]*)\.md\)/, '\1.html)')
    end
  end
end

它並不完美(我敢肯定你可以欺騙正則表達式)但它已經足夠我的目的了。

您正在尋找的標簽是{% link %} ,它於2016年到貨。

如果您有{% link _funkyCollection/banjo.md %} ,它將生成輸出文件funkyCollection/banjo.htmlfunkyCollection/banjo/index.html的正確路徑,或者其他任何內容,無論它funkyCollection/banjo/index.html

這就是我用jekyll 3.8.5解決這個問題的方法。

對於根目錄中的鏈接:/file.md

---
layout: page
title: Root File
permalink: /file/
---

This file is in root directory.

對於子目錄中的鏈接:/folder/file.md

---
layout: page
title: SubDir File
permalink: /folder/file/
---

This file is in sub-directory.

現在鏈接這些文件:

[Root File]({{site.baseurl}}/file/))

[Sub Dir File]({{site.baseurl}}/folder/file/)

希望這有助於某人。

Folder/file.md頁面將導致創建_site/Folder/file.html頁面。

因此,當您鏈接到此頁面時,它是[Link to page]({{site.baseurl}}/Folder/file.html)而不是[Link to page]({{site.baseurl}}/Folder/file.md)

傑奇絕不會重寫file.mdfile.html的URL。 所以你必須自己設置你的鏈接目標到結果page.url ,它通常是一個html文件,但可以是css,je,json,...

如果您在任何file.md中使用permalink: /folder/folder/ ,它將生成一個/folder/folder/index.html文件,可通過[Link to page]({{site.baseurl}}/folder/folder/)

我遇到了這個並編寫了一個基本的Jekyll / Kramdown插件 它比正則表達式方法更不容易破解。

只要你的鏈接不以http://或類似的東西開頭,並以.md結尾,它就會將鏈接轉換為它們的小寫和帶連字符的名稱。

當然,您可以隨時修改行為以滿足您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM