jekyll-wikirefsJekyll-Wikilinks เพิ่ม Wikilinking (ความสามารถในการอ้างอิงเอกสารท้องถิ่นผ่านทางไวยากรณ์ของวงเล็บสองตาราง-[[เช่นนี้]]) รองรับ Jekyll-และอีกมากมาย
อัญมณีนี้ทำงานร่วมกับ jekyll-graph
อัญมณีนี้เป็นส่วนหนึ่งของโครงการ Jekyll-Bonsai
ทำตามคำแนะนำสำหรับการติดตั้งปลั๊กอิน Jekyll สำหรับ jekyll-wikilinks
ค่าเริ่มต้นมีลักษณะเช่นนี้:
wikilinks :
attributes :
enabled : true
css :
exclude : []
name :
typed : ' typed '
wiki : ' wiki-link '
web : ' web-link '
invalid_wiki : ' invalid-wiki-link '
embed_container : ' embed-container '
embed_title : ' embed-title '
embed_content : ' embed-content '
embed_link : ' embed-wiki-link '
embed_image_container : ' embed-image-container '
embed_image : ' embed-image '
enabled : true
exclude : [] attributes : สลับแอตทริบิวต์เปิด/ปิดและ wikilinks ระดับบล็อก หากปิดข้อมูลเมตา attributes จะไม่ถูกเพิ่มลงในแต่ละเอกสารและ Wikilink ระดับบล็อกจะไม่ถูกลบออกจากเนื้อหาของเอกสาร
css_names : ชื่อคลาส CSS Customiztable
css.exclude : กำหนดรายการคลาส CSS ที่ไม่ควรมีคลาส wiki หรือ web CSS ที่เพิ่มเข้ามา
web-link เชื่อมโยง ตัวอย่างเช่น kramdown เพิ่ม footnote และคลาส CSS reversefootnote ให้กับ a ที่เป็นเชิงอรรถ เนื่องจากพวกเขาเป็นลิงค์ภายในไปยังไซต์พวกเขาจะไม่มีการเพิ่ม wiki-link ไปยังพวกเขา แต่มีแนวโน้มที่ไม่เป็นที่พึงปรารถนาที่จะเพิ่ม web-link ในองค์ประกอบเหล่านี้ สิ่งนี้ทำให้พวกเขาเป็นผู้สมัครที่ดีในการแยกออกจากการประมวลผล CSS ของปลั๊กอินโดยสิ้นเชิงและจัดรูปแบบคลาสเหล่านั้นแยกกัน enabled : สลับเพื่อปิดปลั๊กอินหรือปิด
exclude : ประเภท jekyll ใด ๆ ( pages posts หรือ collections ตามชื่อ) อาจถูกเพิ่มเข้าไปในรายการเอกสารที่ยกเว้นเพื่อไม่ได้รับการประมวลผลโดยปลั๊กอิน Jekyll-Wikilinks
[[ filename ]] ลิงค์นี้จะตรงกับเอกสาร Markdown ที่ใดก็ได้ในโครงการ Jekyll ตราบใดที่มีชื่อว่า filename.md ชื่อไฟล์จะต้องไม่ซ้ำกันช่องว่างได้รับอนุญาตและกรณีจะถูกละเว้น แอตทริบิวต์ Frontmatter title ของไฟล์คือสิ่งที่ได้รับการแสดงผลข้อความภายในของ a ก
ผลลัพธ์ HTML:
< a class =" wiki-link " href =" url " > lower-cased frontmatter title attribute </ a >link_type:: [[ filename ]]ประเภทไม่ควรมีช่องว่าง (แนะนำ Kabob-case แต่ Snake_case และ Camelcase ก็ใช้งานได้เช่นกัน)
Wikilinks เหล่านี้แสดงผลในสถานที่เช่น Wikilinks ที่ยังไม่ได้รับ พวกเขายังเพิ่มคลาส CSS typed เช่นเดียวกับคลาส CSS ที่มีชื่อของประเภทลิงก์ที่กำหนด
ผลลัพธ์ HTML:
< a class =" wiki-link typed link_type " href =" url " > lower-cased frontmatter title attribute </ a > เรียกอีกอย่างว่า attributes ของเอกสารบล็อก Wikilink นั้นพิมพ์ wikilinks ที่เป็นข้อความเดียวในบรรทัดเดียว:
link_type::[[filename]]
Some more text.
นอกจากนี้ยังมีการสนับสนุนรายการและอาจถูกกำหนดโดยรายการเครื่องหมายจุลภาคหรือรายการ markdown (ตรวจสอบให้แน่ใจว่าประเภทกระสุนที่ตรงกันสำหรับรายการทั้งหมด; เช่นรายการทั้งหมดใช้ +'s, -'s หรือ *' s):
link_type::[[file-1]], [[file-2]], [[file-3]]
link_type::
- [[file-1]]
- [[file-2]]
- [[file-3]]
link_type::
+ [[file-1]]
+ [[file-2]]
+ [[file-3]]
link_type::
* [[file-1]]
* [[file-2]]
* [[file-3]]
Wikilinks เหล่านี้จะถูกลบออกจากไฟล์ทั้งหมดและ URL เอกสารที่เกี่ยวข้องและประเภทลิงก์จะถูกบันทึกไว้ใน attributes Frontmatter ของแอตทริบิวต์ของเอกสารปัจจุบันและตัวแปร frontmatter attributed ของเอกสารที่เชื่อมโยง
การลบประเภท Wikilink เหล่านี้มีประโยชน์ในสถานการณ์ที่สร้างรูปแบบของ InfoBox ที่แยกจากเนื้อหาหลักของไฟล์เป็นที่ต้องการ
บล็อก Wikilinks ทำงานเฉพาะในระดับไฟล์และไม่รองรับฉลากหรือการฝัง พวกเขาอาจสลับในการกำหนดค่าโดยการตั้งค่า:
wikilinks:
attributes:
enabled: false
[[ filename#header ]] ลิงค์นี้จะค้นหาไฟล์ชื่อ filename.md และลิงก์ไปยัง # header หากมี หากไม่มีส่วนหัวดังกล่าวจะมีการแสดงผล a กที่ได้จากคลาส CSS invalid-wiki-link
ผลลัพธ์ HTML:
< a class =" wiki-link " href =" url#sluggified-header-id " > lower-cased frontmatter title > header </ a > [[ filename#^block_id ]]ผลลัพธ์ HTML:
< a class =" wiki-link " href =" url#block_id " > lower-cased title > ^block_id </ a >^block_id ในเอกสารเป้าหมายมีพื้นที่ก่อนที่ Caret ^^block_id s เองไม่ถูกแตะต้องดังนั้นจึงมีวิธีการมองเห็นบล็อกหนึ่งครั้งในเอกสารของหน้าblock_id ถูกผนวกเป็นชิ้นส่วน URL (เช่น www.blog.com/wikilink/#block_id ) ด้วยชิ้นส่วน URL นี้การเลื่อนอัตโนมัติไปยัง ID องค์ประกอบ HTML ที่สอดคล้องกันสามารถเปิดใช้งานได้ คุณจะต้องสร้างรหัสเอลเมนต์ HTML เหล่านั้นด้วยตนเองในตอนนี้ [[ /directory/filename ]]เส้นทางไฟล์อาจถูกเพิ่มลงในลิงค์เพื่อชี้ไปที่ไฟล์ที่มีความเฉพาะเจาะจงมากขึ้น
/พา ธ ไฟล์ใช้งานได้สำหรับ Wikilink แบบอินไลน์เท่านั้น
ผลลัพธ์ HTML (ซึ่งจะเหมือน Wikilinks โดยไม่มีเส้นทางไฟล์):
< a class =" wiki-link " href =" url " > file's title </ a > [[ filename|label text ]] เมื่อใช้ป้ายกำกับข้อความที่ปรากฏหลังจาก | จะแสดงผลในข้อความภายในของ a กแทนที่จะเป็น frontmatter title ของเอกสาร
การติดฉลากใช้งานได้สำหรับทุกระดับ wikilink (ไฟล์, ส่วนหัว, บล็อก)
ผลลัพธ์ HTML:
< a class =" wiki-link " href =" url " > label text </ a > ![ [ filename ]] โดยล่วงหน้า ! ก่อนที่จะมี Wikilink เนื้อหาของไฟล์จะถูกฝังอยู่ในเอกสารปัจจุบันแทนที่จะแทรกเพียงแท็ก a
ฝังเฉพาะ wikilinks ระดับไฟล์ (ไม่ใช่ส่วนหัวหรือบล็อก)
ผลลัพธ์ HTML:
< div class =" wiki-link-embed " >
< div class =" wiki-link-embed-title " >
// doc title here
</ div >
< div class =" wiki-link-embed-content " >
// embed content here
</ div >
< a class =" wiki-link-embed-link " href =" url " > </ a >
</ div > ![ [ image.png ]] เช่นเดียวกับ Embeds ด้านบนเนื้อหาลิงก์จะถูกแสดงในเอกสารเอกสาร แต่สำหรับรูปภาพ เพียงให้แน่ใจว่าได้เพิ่มส่วนขยายไฟล์ รูปแบบที่รองรับคือ .png , .jpg , .gif , .psd , .svg ภาพ wikilinks ไม่รวมอยู่ในข้อมูลเมตา
ผลลัพธ์ HTML:
< p >
< span class =" wiki-link-embed-image " >
< img class =" wiki-link-img " src =" img_relative_path " />
</ span >
</ p > เนื้อหาของ SVG จะถูกแทรกลงใน HTML โดยตรงแทนที่จะเชื่อมโยงในแท็ก img สิ่งนี้มีประโยชน์ในกรณีที่คุณต้องการเปลี่ยน SVG หลังการเรนเดอร์โดยทางโปรแกรม:
ผลลัพธ์ HTML:
< p >
< span class =" wiki-link-embed-image " >
< svg >
// svg file content here
</ svg >
</ span >
</ p >สำหรับไวยากรณ์ที่เกี่ยวข้องกับการจดบันทึกเช่น == ไฮไลท์ == และ ~~ strikethroughs ~~:
ข้อมูลเมตาต่อไปนี้ถูกเก็บไว้เป็นตัวแปร frontmatter และสามารถเข้าถึงได้ในเทมเพลตของเหลว:
attributed (block backlinks)attributes (บล็อก forelinks)backlinks (พิมพ์และไม่ได้พิมพ์ไฟล์/ส่วนหัว/บล็อกลิงก์ย้อนกลับ)forelinks (พิมพ์และไม่ได้รับการเชื่อมโยงไฟล์/ส่วนหัว/บล็อก 'ไปข้างหน้า' ลิงก์)missing (พิมพ์และไม่ได้รับไฟล์/ส่วนหัว/บล็อก forelinks ที่ไม่สอดคล้องกับเอกสารใด ๆ ) attributes และตัวแปร frontmatter attributed ซึ่งสอดคล้องกับบล็อก wikilinks เป็นรายการของวัตถุที่มีแอตทริบิวต์ type สำหรับประเภท wikilink และรายการของ urls ที่เป็นสตริง:
-
type : <str>
urls : [<url_str>]
-
...ตัวอย่างของเหลว:
<!-- render as "link-type: title" -->
{% for attr in page.attributed %}
{{ attr.type }}:
{% for url in attr.urls %}
{% assign linked_doc = site.documents | where: "url", attr.url | first %}
< a class =" wiki-link " href =" {{ linked_doc.url }} " > {{ linked_doc.title }} </ a >
{% endfor %}
{% endfor %} ตัวแปร forelinks และ backlinks ตัวแปร frontmatter ซึ่งสอดคล้องกับ wikilink แบบอินไลน์เป็นรายการของวัตถุที่มีแอตทริบิวต์ type สำหรับประเภท Wikilink และสตริง url (Wikilinks ที่ไม่ได้รับการออกแบบจะมีแอตทริบิวต์ที่ว่างเปล่า: type: "" ):
-
type : <str>
url : <url_str>
-
...ตัวอย่างของเหลว:
<!-- render as "link-type: title" -->
{% for backlink in page.backlinks %}
{% assign linked_doc = site.documents | where: "url", backlink.url | first %}
{{ backlink.type }}: < a class =" wiki-link " href =" {{ linked_doc.url }} " > {{ linked_doc.title }} </ a >
{% endfor %} missing เป็นเพียงรายการชื่อไฟล์ มีการรวบรวมชื่อไฟล์สำหรับทั้งระดับบล็อกและระดับอินไลน์ wikilinks:
- <filename_str>
- ... มีตัวกรองเหลวสองประเภทที่มีให้: หนึ่งรายการสำหรับประเภทเอกสาร Jekyll และประเภทหนึ่งสำหรับลิงก์ (ความสัมพันธ์) ประเภท
สมมติว่าคุณต้องการกรองตามประเภทเอกสารของ Jekyll หากคุณต้องการแสดงลิงก์ย้อนกลับ 'โพสต์' และลิงก์ย้อนกลับ 'โน้ต' แยกต่างหากเพียงแค่กรองลิงก์ย้อนกลับข้อมูลเมตาเช่น SO:
<!-- show post backlink titles -->
{% assign post_backlinks = page.backlinks | doc_type: "posts" %}
{% for backlink in post_backlinks %}
{% assign post = site.posts | where: "url", backlink | first %}
{{ post.title }}
{% endfor %}
<!-- show note backlink titles -->
{% assign note_backlinks = page.backlinks | doc_type: "notes" %}
{% for backlink in note_backlinks %}
{% assign note = site.notes | where: "url", backlink | first %}
{{ note.title }}
{% endfor %}สมมติว่าคุณต้องการกรองตามประเภทลิงค์ (ความสัมพันธ์) หากคุณมี markdown ดังต่อไปนี้:
author:: [[ gardener ]] จากนั้นคุณสามารถกรองตามประเภทของ author เช่นนั้น:
{% assign author_links = page.links | link_type: "author" %}
{% for link in author_links %}
{% assign post = site.posts | where: "url", link.url | first %}
{{ post.title }}
{% endfor %}