Otros lenguajes soportados por el WikiUV
El Wikiuv de la Universitat de València

El Wikiuv soporta otros lenguajes Markup

El lenguaje del WikiUV es un tipo de Lenguaje de marcado (Markup language).

Además de su propio lenguaje nativo, el WikiUV entiende otro lenguaje "markup" más conocido y estándar: el Markdown.

Historia de Markdown

El lenguaje Markdown es similar al del WikiUV. Ambos nacieron en la misma época (2004) con la misma idea de facilitar la escritura diaria de documentación en páginas web sin tener que usar directamente el lenguaje HTML. Ambos lenguajes se implementan mediante conversores a HTML.

Al no estar demasiado bien estandarizado, enseguida surgieron multitud de variantes y extensiones del lenguaje Markdown. En un intento de estandarizarlos se definió el CommonMark, que se considera hoy en día como el "Markdown estándar".

Basados en CommonMark aparecieron variantes que implementan distintas extensiones al CommonMark. Dos conjuntos de extensiones populares hoy en día son entre otros el MultiMarkdown y GFM (GITHUB Flavored Markdown).

La versión de Markdown que implementa el WikiUV es el GFM.

El Pandoc

Otro conjunto de extensiones al CommonMark con mucho reconocimiento es el Pandoc Markdown. El Pandoc incorporar muchísmas extensiones, incluyendo todas las del MultiMarkdown y del GFM.

Pero por lo que es más conocido el programa Pandoc es por su capacidad de reconocer multitud de formatos de ficheros texto y convertirlos entre sí.

  • El Pandoc se puede instalar en Linux(viene en las distribuciones), Windows, macOSx, etc...
    Utilizando el Pandoc (comando "pandoc" en Linux) es posible convertir (exportar) ficheros GFM a variedad de formatos: PDF, ePUB, odt, docx, rtf, etc... o viceversa, convertir estos formatos -lo mejor posible- a GFM.

Los Lenguajes que soporta el Wikiuv

El WikiUV implementa buena parte de GFM (incluyendo la totalidad del CommonMark) mediante una implementación nativa (librería C) muy rápida. Se recomienda su uso en el caso de que preveas usar tus documentos .wiki en otros entornos que reconozcan el estándar Markdown.

Por otro lado, el WikiUV también soporta que el contenido de un fichero .wiki sea simplemente texto ASCII o lenguaje HTML.

En las siguientes secciones se explica cómo sabe el WikiUV de qué tipo de fichero se trata y cómo se definen las cabeceras del WikiUV (los metadatos) en cada formato.

Funciones del WikiUV que NO se soportan en otros lenguajes

Actualmente, al usar otros lenguajes el WikiUV no soporta:

  • Los WebLog. Las noticias deben estar siempre en lenguaje WikiUV para que reconozca los títulos.
  • Los RSS. Lo mismo.
  • Los WIKISTRING. Los WIKISTRING se consideran siempre lenguaje WikiUV.
  • Las inclusiones de ficheros wiki mediante el macroprocesador (###nnn.wiki###), Los .wiki incluídos se consideran siempre lenguaje WikiUV.
  • Los enlaces CamelCase no se reconocen.
  • Los enlaces automáticos de creación si el fichero de un enlace no existe. Si no existe el fichero, el enlace simplemente quedará roto.

La variable VERSION

El lenguaje o interpretación del contenido de un fichero WikiUV se puede definir mediante la variable VERSION. Por ejemplo, para indicar que el contenido está escrito en "GFM Markdown" se pondría la cabecera "#VERSION gfm".

Los posibles valores de VERSION son:

    • txt (el contenido es texto ASCII-utf8)
    • html (el fichero está escrito directamente en html)
    • gfm (el fichero está escrito en GFM - GITHUB Flavored Markdown)

VERSION txt (texto ASCII)

  #VERSION txt

El contenido se muestra sin más. Se conservar los saltos de línea y espaciado originales.

VERSION html (HTML nativo)

  #VERSION html

El contenido se muestra sin más, como una inclusión HTML.

El contenido no es un fichero html completo, sólo el contenido. El WikiUV descarta todo lo que no esté entre <body> y </body> si encuentra cabeceras HTML.

GFM (GitHub Flavored Markdown)

  #VERSION gfm

El contenido se interpreta como GFM (GITHUB Markdown).

El GFM es una extensión del CommonMark (Markdown estándar) que se definió para el popular servicio web CVS GitHub.

Añade:

    • Tablas
    • Tachado
    • Bloques de código "vallados" (fenced code blocks) con "`" y "~"
    • Autolinks extendidos (vivifica automáticamente los enlaces que hay en el texto)
    • Listas de verificación (Checklists, to-do lists)
    • Filtra etiquetas HTML peligrosas (cuando se incluye HTML).
    • Notas al pie (lo cual no es estándar GFM, pero el WikiUV lo soporta).

Otros, no soportados por el WikiUV

    • Realce sintáctico (de lenguajes de programación)
    • Emojis

Para una visita rápida del lenguaje puedes consultar la tarjeta resumen de GFM o bien otra tarjeta resumen de GFM Y aqué tienes una página que muestra cómo funcionan las extensiones del GFM. El fuente del documento es gfm_extensions.wiki?txt .

Metadatos

La implementación del GFM en WikiUV entiende metadatos YAML. Pero NO los muestra.

  ----
  title: Una Idea
  author: yo mismo
  ---

GitHub soporta esto desde hace un tiempo aunque muestra los metadatos como una tabla al principio: https://github.blog/2013-09-27-viewing-yaml-metadata-in-your-documents

VERSION para un conjunto de páginas (carpetas)

Por defecto el WikiUV supone que las páginas son texto WikiUV.

Si sólo deseas cambiar esto para unas pocas páginas, la solución de definir la cabecera "#VERSION xxx" en cada uno de sus ficheros es la más sencilla.

Pero si deseas que todas las páginas de una carpeta (y todas las inferiores) se traten por defecto con otra VERSION, lo mejor es que definas la variable "#VERSION xxx" en un wiki.conf situado en esa carpeta (o en una superior).

Comparación del GFM con otros Markdown

Multi-Markdown

El MultiMarkdown es otra extensión del CommonMark (Markdown estándar) mucho más amplia.

La última versión del MultiMarkdow es MultiMarkdown-v6.

El MultiMarkdown soporta las extensiones GFM:

    • Tablas
    • Tachado (mediante la extensión "critic", con otra sintaxis)
    • Bloques de código vallados (fenced code blocks) (sólo con comillas hacia atrás)
    • Notas al pie (como el !WikiUV)
    • Metadatos indefinidos (title, author, etc.). Con su propio formato incompatible con el que usa GitHub.

Pero NO tiene:

    • Autolinks extendidos (vivifica automáticamente los enlaces que hay en el texto)
    • Listas de verificación (Checklists, to-do lists)
    • Filtra etiquetas HTML peligrosas (cuando se incluye HTML).

Por otro lado el MultiMarkdown añade varias extensiones que no tiene el GFM:

    • Nuevas líneas
    • Citaciones y Bibliografía (usado sobre todo para LaTeX con BibTeX)
    • Glosario
    • Referencias cruzadas automáticas (no van si se usa indice lateral).
    • Atributos de imagen (title y tamaño).
    • Pies de tabla y figura.
    • Listas de definición.
    • Tabla de contenidos (pero el #INDEX del WikiUv hace los mismo)
    • Critic Markup
    • Realce sintáctico (de lenguajes de programación)
    • Expresiones matemáticas
    • Comillas inteligentes, en muchos lenguajes (smartypants).

Para una visita rápida del lenguaje puedes consultar la tarjeta resumen de MultiMarkdown

Las extensiones se explican en el MultiMarkdown-v6 user's guide.

Un ejemplo de página wiki que prueba todas las extensiones es MmarkdownShow. El fuente del documento es MmarkdownShow?txt .

Nota: El último MultiMarkdown (Nov 2019) es la versión MM6, la cual introduce unas pocas incompatibilidades con versiones antiguas:

GLM (GitLab Markdown)

El GLM es una extensión del CommonMark (Markdown estándar) que se definió para uno de los software CVS más utilizados, el GitLab.

EL GLM es también mayormente una extensión del GFM. Una comparación entre ellos y el MultiMarkdown se proporciona en la tabla siguiente:


      • Extensiones que tiene el GLM y que tienen (o no ) GFM y MM. (?MM= MM lo tiene pero distinto)
        Lo tiene extensión comentario
        MM/GFMtablas
        MM/GFMbloques de codigo "vallados"(fenced code blocks)
        MM/GFMBloques multilínea
        MMrealce sintáctico
        MMID's de cabeceras enlazables
        MMNotas al pie
        MMSaltos de línea
        ?MMMetadatosmetadatos yaml/json/toml - MM es metadato propio
        ?MMEcuaciones Matemáticas y símbolos escritos en LaTeX pero es distinto a MM
        GFMEmoji
        GFMLista de tareas
        GFMTachado
        GFMEnlaces automáticos para los URLs
        inserción de video y audio(siempre es posible insertar el HTML necesario)
        Señales de Color en HEX, RGB or HSL
        Diagramas and diagramas de flujo(mermaid in Fenced block)
        Diffs en línea
        Referecias especiales a GitLab

Observar que el GLM no es reconocido directamente por Pandoc, aunque éste soporta la mayoría de sus extensiones.

Pandoc

El lenguaje Markdown del Pandoc es una extensión del CommonMark (Markdown estándar).

El Pandoc soporta decenas de extensiones, incluyendo todas las del MultiMarkdown, lenguaje que reconoce directamente (lo mismo que el GFM).

Las extensiones del Pandoc están documentadas profusamente en el Pandoc Manual (1.9.4) (en inglés).

Y las últimas versiones (comprueba la que tengas instalada) soportan aún más extensiones. La última a fecha de Nov/2019 es la Pandoc 2.7.3.


Back