jekyll-wikirefsJekyll-WikiLinks agrega wikilinking (la capacidad de hacer referencia a documentos locales a través de la sintaxis de soporte cuadrado doble-[[ASIGNO]]) Soporte a Jekyll-y más.
Esta gema funciona junto con jekyll-graph .
Esta joya es parte del proyecto Jekyll-Bonsai.
Siga las instrucciones para instalar un complemento Jekyll para jekyll-wikilinks .
Los valores predeterminados se ven así:
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 : Aligue/apague los atributos y el nivel de bloqueo WikiLinks. Si apagan los attributes no se agregarán meta datos a cada documento y el nivel de bloqueo WikiLinks no se eliminará del contenido del documento.
css_names : nombres de clase CSS Customiztable.
css.exclude : Define una lista de clases CSS que no deberían tener las clases wiki o web CSS agregadas.
web-link . Por ejemplo, kramdown agrega clases footnote y reversefootnote CSS a a elemento que son notas al pie. Dado que son enlaces internos del sitio, no tendrán wiki-link S agregado a ellos, pero es probable que no sea deseable que se agregue web-link a estos elementos. Esto los convierte en buenos candidatos para excluir del procesamiento CSS del complemento por completo y peinar esas clases por separado. enabled : Alternar para apagar el complemento o apagar.
exclude : cualquier tipo de Jekyll ( pages , posts o collections por nombre) se puede agregar a una lista de documentos excluidos para que el complemento Jekyll-Wikilinks no sea procesado.
[[ filename ]] Este enlace coincidirá con un documento de Markdown en cualquier parte del proyecto Jekyll siempre que se llame filename.md . Los nombres de archivo deben ser únicos, se permite el espacio en blanco y se ignora el caso. El atributo de títulos title del archivo es lo que se convierte en el texto interno de a etiqueta.
HTML resultante:
< a class =" wiki-link " href =" url " > lower-cased frontmatter title attribute </ a >link_type:: [[ filename ]]Los tipos no deben contener espacios en blanco. (Se recomienda el caso de Kabob, pero Snake_Case y Camelcase también funcionarán)
Estas wikilinks se convirtieron en el lugar como Wikilinks sin tipo. También agregan una clase CSS typed , así como una clase CSS con el nombre del tipo de enlace dado.
HTML resultante:
< a class =" wiki-link typed link_type " href =" url " > lower-cased frontmatter title attribute </ a > También llamado attributes de un documento, los WikiLinks de bloques se escriben wikilinks que son el único texto en una sola línea:
link_type::[[filename]]
Some more text.
Las listas también son compatibles y pueden definirse mediante listas de la separación o markdown (asegúrese de que las coincidencias de tipo bala para todos los elementos; por ejemplo, todos los elementos usan +'s, -' s o *'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]]
Estos WikiLinks se eliminan del archivo por completo y sus URL y tipos de enlaces de documentos correspondientes se guardan en los attributes variables de primera plana del documento actual y la variable de frontmatter attributed de los documentos vinculados.
La eliminación de estos tipos de wikilink es útil en el escenario donde se desea crear alguna forma de infoBox que esté separada del contenido principal del archivo.
Bloquear WikiLinks solo funciona en el nivel de archivo y no admite etiquetas o incrustaciones. Se pueden desactivar en la configuración configurando:
wikilinks:
attributes:
enabled: false
[[ filename#header ]] Este enlace buscará un archivo llamado filename.md y enlace a su # header si tiene uno. Si no existe dicho encabezado, la a resultante se representará con la clase CSS invalid-wiki-link .
HTML resultante:
< a class =" wiki-link " href =" url#sluggified-header-id " > lower-cased frontmatter title > header </ a > [[ filename#^block_id ]]HTML resultante:
< a class =" wiki-link " href =" url#block_id " > lower-cased title > ^block_id </ a >^block_id en el documento de destino tenga un espacio antes del Caret ^ .^block_id s mismos no se tocan, por lo que hay una manera visualmente para identificar el bloque una vez en el documento de la página.block_id se agrega como un fragmento de URL (por ejemplo, www.blog.com/wikilink/#block_id ). Con este fragmento URL, se puede habilitar el desplazamiento automático a la ID del elemento HTML correspondiente. Tendrá que crear manualmente esas identificaciones de elment HTML por ahora. [[ /directory/filename ]]Las rutas de archivo se pueden agregar a un enlace para señalar un archivo con más especificidad.
/ .Las rutas de archivo solo funcionan para WikiLinks en línea.
HTML resultante (esto se verá idéntico a WikiLinks sin rutas de archivo):
< a class =" wiki-link " href =" url " > file's title </ a > [[ filename|label text ]] Al usar etiquetas, el texto que aparece después del | se representará en el texto interno de a etiqueta en lugar del título del title del documento.
El etiquetado funciona para todos los niveles de wikilink (archivo, encabezado, bloque).
HTML resultante:
< a class =" wiki-link " href =" url " > label text </ a > ![ [ filename ]] ¡PREPENDIR ! Antes de un wikiLink, el contenido del archivo se incrustará en el documento actual en lugar de insertar solo a etiqueta HTML.
Las incrustaciones solo funcionan para WikiLinks a nivel de archivo (no encabezado o bloque).
HTML resultante:
< 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 ]] Al igual que las incrustaciones anteriores, el contenido de enlace se representará en el cuerpo del documento, pero para imágenes. Solo asegúrese de agregar la extensión del archivo. Los formatos compatibles son .png , .jpg , .gif , .psd , .svg . Los wikilinks de imagen no están incluidos en los metadatos.
HTML resultante:
< p >
< span class =" wiki-link-embed-image " >
< img class =" wiki-link-img " src =" img_relative_path " />
</ span >
</ p > El contenido de un SVG se insertará directamente en el HTML, en lugar de estar vinculado en una etiqueta img . Esto es útil en caso de que desee alterar programáticamente el SVG después del render:
HTML resultante:
< p >
< span class =" wiki-link-embed-image " >
< svg >
// svg file content here
</ svg >
</ span >
</ p >Para obtener más sintaxis relacionadas con la toma de notas, como == resaltados == y ~~ Strikethroughs ~~:
Los siguientes metadatos se almacenan como variables de frontmatter y son accesibles en plantillas líquidas:
attributed (vínculos de retroceso de bloque)attributes (Bloque de enlaces delanteros)backlinks (escrito y sin tipo, archivo/encabezado/bloque, enlaces de retroceso)forelinks (escrito y sin tipo, archivo/encabezado/bloque, enlaces 'reenviar')missing (escrito y sin tipo, archivo/encabezado/bloque, enlaces delanteros que no corresponden a ningún documento) Los attributes y las variables attributed de la primera hembra, que corresponden a WikiLinks de bloque, son listas de objetos con un atributo type para el tipo WikiLink y una lista de urls que son cadenas:
-
type : <str>
urls : [<url_str>]
-
...Ejemplo de líquido:
<!-- 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 %} Las variables delanteras forelinks y backlinks , que corresponden a WikiLinks en línea, es una lista de objetos con un atributo type para el tipo WikiLink y una cadena url . (WikiLinks sin tipo tendrá un atributo vacío: type: "" )::
-
type : <str>
url : <url_str>
-
...Ejemplo de líquido:
<!-- 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 es simplemente una lista de nombres de archivo. Se recopilan los nombres de archivo para el nivel de bloque y el nivel en línea WikiLinks:
- <filename_str>
- ... Se proporcionan dos tipos de filtros líquidos: uno para los tipos de documentos Jekyll y otro para los tipos de enlace (relación).
Digamos que quieres filtrar por el tipo de documento Jekyll. Si desea mostrar las vínculos de retroceso 'publicar' y los backlinks de 'nota' por separado, simplemente filtre los metadatos de backlinks así:
<!-- 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 %}Digamos que desea filtrar por tipos de enlace (relación). Si tiene Markdown como lo siguiente:
author:: [[ gardener ]] Entonces podría filtrar por el tipo author así:
{% 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 %}