jekyll-wikirefsJekyll-Wikilinks添加了Wikilinking(通过双方平方括号语法引用本地文档的能力 - [[like this]])支持Jekyll的支持 - 等等。
该宝石与jekyll-graph一起工作。
该宝石是Jekyll-Bonsai项目的一部分。
请按照说明为jekyll-wikilinks安装Jekyll插件的说明。
默认值如下:
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 ,则不会将元数据添加到每个文档中,并且将不会从文档的内容中删除Wikilinks。
css_names :自定义CSS类名称。
css.exclude :定义CSS类的列表,这些列表不应添加wiki或web CSS类。
web-link CSS类时,这很有用。例如, kramdown将footnote和reversefootnote CSS类添加到脚注的a中。由于它们是网站内部的链接,因此不会向其添加wiki-link s,但是将web-link添加到这些元素中可能是不希望的。这使他们成为了一个很好的候选人,可以将插件的CSS处理完全排除在外,并分别排除这些类别。 enabled :切换以关闭插件或关闭。
exclude :任何jekyll类型(按名称按pages , posts或collections )可以添加到排除的文档列表中,以免由Jekyll-Wikilinks插件处理。
[[ filename ]]只要命名为filename.md ,此链接将与jekyll项目中任何地方的降价文档匹配。文件名必须是唯一的,允许空格,并且案件被忽略。该文件的title前模属性是将a标签的内部文本呈现的。
由此产生的html:
< a class =" wiki-link " href =" url " > lower-cased frontmatter title attribute </ a >link_type:: [[ filename ]]类型不应包含空格。 (建议使用kabob-case,但蛇壳和骆驼也可以工作)
这些Wikilinks像未经类似的Wikilinks一样在就地渲染。他们还添加了一个typed CSS类,以及带有给定链接类型名称的CSS类。
由此产生的html:
< a class =" wiki-link typed link_type " href =" url " > lower-cased frontmatter title attribute </ a >也称为文档的attributes ,Wikilinks是键入的Wikilinks,是单行上唯一的文本:
link_type::[[filename]]
Some more text.
还支持列表,可以通过逗号分隔或降价列表来定义(确保所有项目的子弹类型匹配;例如所有项目使用 +'s,-'s or *'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变量中,以及链接文档的attributed前肌变量。
在需要创建与文件主内容分开的某种形式的Infobox的情况下,删除这些Wikilink类型是有用的。
块Wikilinks仅在文件级上工作,不支持标签或嵌入。它们可以通过设置在配置中切换:
wikilinks:
attributes:
enabled: false
[[ filename#header ]]此链接将搜索一个名为filename.md的文件,并链接到其# header如果有一个)。如果不存在这样的标题,则将使用invalid-wiki-link CSS类呈现a 。
由此产生的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在art the Caret ^之前具有空间。^block_id s本身是未触及的,因此有一种视觉方式可以在页面文档上识别一次块。block_id作为URL片段(例如www.blog.com/wikilink/#block_id )。使用此URL片段,可以启用对相应的HTML元素ID的自动滚动。您现在必须自己手动创建那些HTML Elment ID。 [[ /directory/filename ]]可以将文件路径添加到链接中,以指向更特异性的文件。
/开始。文件路径仅适用于内联Wikilinks。
结果HTML(这看起来与没有文件路径的Wikilinks相同):
< a class =" wiki-link " href =" url " > file's title </ a > [[ filename|label text ]]使用标签时,出现在|之后的文本将在a标签的内部文本中渲染,而不是文档的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 ]]像上面的嵌入一样,链接内容将在文档主体中呈现,但用于图像。只需确保添加文件扩展名即可。支持格式为.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 ~~:
以下元数据存储为前物变量,并且可以在液体模板中访问:
attributed (块反向链接)attributes (块前链接)backlinks (键入和非类型,文件/标头/块,背面链接)forelinks (键入和非类型,文件/标头/块,“向前”链接)missing (键入和未型,文件/标头/块,不对应于任何文档的前肢)对应于Wikilinks的attributes和attributed前肌变量是具有Wikilink类型的type属性的对象列表,并且是字符串的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 %}对应于内联Wikilinks的forelinks和backlinks前变量是具有Wikilink类型type属性和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文档类型过滤。如果要分别显示“发布”反向链接和“ Note”反向链接,只需像这样过滤反向链接元数据:
<!-- 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 %}说您想通过链接(关系)类型过滤。如果您像以下内容一样降级:
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 %}