jekyll-wikirefs gezogenJekyll-Wikilinks fügt Wikilinking (die Möglichkeit, lokale Dokumente über die Doppelquadrat-Bracket-Syntax zu verweisen-[[wie diese]]) Unterstützung für Jekyll-und mehr.
Dieses Juwel funktioniert in Verbindung mit jekyll-graph .
Dieses Juwel ist Teil des Jekyll-Bonsai-Projekts.
Befolgen Sie die Anweisungen zur Installation eines Jekyll-Plugins für jekyll-wikilinks .
Standardeinstellungen sehen so aus:
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 : Ein-/Aus -Attribute und blockieren Wikilinks. Wenn die attributes ausgeschaltet werden, werden die Meta -Daten nicht jedem Dokument hinzugefügt und Wikilinks -Block -Ebene werden nicht aus dem Inhalt des Dokuments entfernt.
css_names : Anpassende CSS -Klassennamen.
css.exclude : Definiert eine Liste von CSS -Klassen, in denen die wiki oder web -CSS -Klassen nicht hinzugefügt werden sollten.
web-link -CSS-Klasse nicht hinzugefügt wird. Beispielsweise fügt kramdown footnote und reversefootnote -CSS -Klassen zu a hinzu, die Fußnoten sind. Da sie interne Links zur Website sind, werden ihnen keine wiki-link -S hinzugefügt, aber es ist wahrscheinlich unerwünscht, dass web-link zu diesen Elementen hinzugefügt wird. Dies macht sie zu guten Kandidaten, um die CSS -Verarbeitung des Plugins insgesamt auszuschließen und diese Klassen getrennt zu stylen. enabled : Schalten Sie das Plugin aus oder schalten Sie aus.
exclude : Jeder Jekyll-Typ ( pages , posts oder collections mit dem Namen) kann einer Liste mit ausgeschlossenen Dokumenten hinzugefügt werden, die nicht vom Jekyll-Wikilinks-Plugin verarbeitet werden können.
[[ filename ]] Dieser Link wird mit einem Markdown -Dokument überall im Jekyll -Projekt übereinstimmen, solange es als filename.md bezeichnet wird. Dateinamen müssen einzigartig sein, Whitespace ist erlaubt und der Fall wird ignoriert. Das title Frontmatter -Attribut der Datei ist das, was zum inneren Text a Tags gerendert wird.
Resultierende HTML:
< a class =" wiki-link " href =" url " > lower-cased frontmatter title attribute </ a >link_type:: [[ filename ]]Typen sollten keine Weißespace enthalten. (Kabob-Case wird empfohlen, aber Snake_case und Kamelase funktionieren auch)
Diese Wikilinks machten sich wie untypte Wikilinks. Sie fügen auch eine typed CSS -Klasse sowie eine CSS -Klasse mit dem Namen des angegebenen Link -Typs hinzu.
Resultierende HTML:
< a class =" wiki-link typed link_type " href =" url " > lower-cased frontmatter title attribute </ a > Block Wikilinks sind auch attributes eines Dokuments bezeichnet, und sind typisierte Wikilinks, die der einzige Text in einer einzelnen Zeile sind:
link_type::[[filename]]
Some more text.
Die Listen werden ebenfalls unterstützt und können durch Comma -trennende oder Markdown -Listen definiert werden (stellen Sie sicher, dass der Kugeltyp übereinstimmt.
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]]
Diese Wikilinks werden vollständig aus der Datei entfernt und deren entsprechenden Dokument -URLs und Link -Typen werden in der attributes Frontmatter -Variable des aktuellen Dokuments und in der attributed Frontmatter -Variablen der verknüpften Dokumente gespeichert.
Die Entfernung dieser Wikilink -Typen ist in dem Szenario nützlich, in dem die Erstellung einer Form von Infobox erstellt wird, die vom Hauptinhalt der Datei getrennt ist.
Blockieren Sie Wikilinks nur auf der Dateiebene und unterstützen Sie keine Etiketten oder Einbettung. Sie können in der Konfiguration durch Einstellung abgeschaltet werden:
wikilinks:
attributes:
enabled: false
[[ filename#header ]] Dieser Link sucht nach einer Datei namens filename.md und link zu seinem # header wenn sie eine haben. Wenn kein solcher Header existiert, wird das resultierende a Tag mit der CSS-Klasse invalid-wiki-link wiedergegeben.
Resultierende HTML:
< a class =" wiki-link " href =" url#sluggified-header-id " > lower-cased frontmatter title > header </ a > [[ filename#^block_id ]]Resultierende HTML:
< a class =" wiki-link " href =" url#block_id " > lower-cased title > ^block_id </ a >^block_id im Zieldokument einen Platz vor der Pflege hat ^ .^block_id selbst sind unberührt, sodass es einen Weg gibt, den Block einmal im Dokument der Seite zu identifizieren.block_id ist als URL -Fragment angehängt (z. B. www.blog.com/wikilink/#block_id ). Mit diesem URL-Fragment kann die automatische Auseinandersetzung mit der entsprechenden HTML-Element-ID aktiviert werden. Sie müssen diese HTML -Elment -IDs vorerst selbst manuell erstellen. [[ /directory/filename ]]Dateipfade können zu einem Link hinzugefügt werden, um auf eine Datei mit mehr Spezifität zu verweisen.
/ .Dateipfade funktionieren nur für Inline -Wikilinks.
Resultierende HTML (dies sieht mit Wikilinks ohne Dateipfade identisch aus):
< a class =" wiki-link " href =" url " > file's title </ a > [[ filename|label text ]] Bei der Verwendung von Etiketten wird der Text, der nach dem | angezeigt wird, angezeigt wird im inneren Text a Tags anstelle der title des Dokuments gerendert.
Die Beschriftung funktioniert für alle Wikilink -Ebenen (Datei, Header, Block).
Resultierende HTML:
< a class =" wiki-link " href =" url " > label text </ a > ![ [ filename ]] Durch Vorbereitung ! Vor einem Wikilink wird der Inhalt der Datei in das aktuelle Dokument eingebettet, anstatt nur ein a -HTML -Tag einzufügen.
Einbettet nur für Wikilinks-Ebene auf Dateiebene (nicht für Header oder Block).
Resultierende 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 ]] Wie die obigen Einbettungen werden Link -Inhalte im Dokumentkörper gerendert, jedoch für Bilder. Fügen Sie einfach die Dateierweiterung hinzu. Unterstützte Formate sind .png , .jpg , .gif , .psd , .svg . Bild Wikilinks sind in Metadaten nicht enthalten.
Resultierende HTML:
< p >
< span class =" wiki-link-embed-image " >
< img class =" wiki-link-img " src =" img_relative_path " />
</ span >
</ p > Der Inhalt eines SVG wird direkt in die HTML eingefügt, anstatt in einem img -Tag verknüpft zu werden. Dies ist nützlich, falls Sie den SVG-Post-Render programmgesteuert verändern möchten:
Resultierende HTML:
< p >
< span class =" wiki-link-embed-image " >
< svg >
// svg file content here
</ svg >
</ span >
</ p >Weitere Notizbeschäftigungssyntaxe wie == Highlights == und ~~ stripriughroughs ~~:
Die folgenden Metadaten werden als Frontmatter -Variablen gespeichert und sind in flüssigen Vorlagen zugänglich:
attributed (Block Backlinks)attributes (Block Forelinks)backlinks (Typed und Untyped, Datei/Header/Block, Back -Links)forelinks (Typed und Untyped, Datei/Header/Block, 'vorwärts' Links)missing (tippt und untyped, Datei/Header/Block, Forelinks, die keinem Dokument entsprechen) Die attributes und attributed Frontmatter -Variablen, die Block -Wikilinks entsprechen, sind Listen von Objekten mit einem type für den Wikilink -Typ und eine Liste von urls , die Zeichenfolgen sind:
-
type : <str>
urls : [<url_str>]
-
...Beispiel Flüssigkeit:
<!-- 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 %} Die forelinks und backlinks Frontmatter -Variablen, die Inline -Wikilinks entsprechen, sind eine Liste von Objekten mit einem type für den Wikilink -Typ und eine url -Zeichenfolge. (Untyped Wikilinks hat ein leeres Attribut: type: "" ):
-
type : <str>
url : <url_str>
-
...Beispiel Flüssigkeit:
<!-- 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 ist einfach eine Liste von Dateinamen. Dateinamen für Blockebene und Inline -Ebene werden Wikilinks gesammelt:
- <filename_str>
- ... Es gibt zwei Arten von Flüssigkeitsfiltern: eine für Jekyll -Dokumenttypen und eine für Link (Beziehungs-) Typen.
Angenommen, Sie möchten vom Jekyll -Dokumenttyp filtern. Wenn Sie 'Post' Backlinks und 'Notiz' Backlinks getrennt anzeigen möchten, filtern Sie einfach die Backlinks -Metadaten wie 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 %}Sagen Sie, Sie möchten nach Link (Beziehungs-) Typen filtern. Wenn Sie wie Folgendes Markdown haben:
author:: [[ gardener ]] Dann können Sie von dem author wie SO filtern:
{% 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 %}