897 lines
33 KiB
Markdown
897 lines
33 KiB
Markdown
|
[[post_data {
|
||
|
"author" : "KyMAN",
|
||
|
"since" : 20210515,
|
||
|
"version" : 20210519
|
||
|
}]]
|
||
|
# Parámetros customizados
|
||
|
|
||
|
Los parámetros customizados son parámetros que se identifican mediante una encapsulación de doble
|
||
|
corchete, siguiendo la idea de encapsulación de parámetros preprogramados de MediaWiki. Dichos
|
||
|
parámetros dan nuevas funcionalidades al entorno del WMarkDown las cuales nombraremos a
|
||
|
continuación.
|
||
|
|
||
|
> **IMPORTANTE**: Aunque sintácticamente sean iguales, e incluso se consideren Parámetros
|
||
|
Customizados, las inclusiones y los elementos multimedia no están integrados dentro del fichero de
|
||
|
Parámetros Customizados, considerados como otros módulos con la misma sintaxis. Es importante tener
|
||
|
esto en cuenta por el hecho de que han de estar ordenados según prioridad para evitar la solapación
|
||
|
en la configuración.
|
||
|
|
||
|
## post_data
|
||
|
|
||
|
El "post_data" es un parámetro que se usa para establecer una información previa de un fichero,
|
||
|
aunque también puede ser para un artículo o fragmento de un artículo, aunque por el resultado lo
|
||
|
aconsejamos únicamente para encabezar un fichero que en sí sea un artículo completo. Básicamente da
|
||
|
la información de los participantes del fichero como autores del mismo, la fecha de creación y la
|
||
|
última fecha de modificación, los cuales se identifican dentro de un JSON con las siguientes llaves
|
||
|
de diccionario:
|
||
|
|
||
|
- **author**: Autor/es y participantes del artículo o fichero.
|
||
|
- **since**: Fecha de creación.
|
||
|
- **version**: Última fecha de modificación.
|
||
|
|
||
|
> No se usan las fechas de los metadatos de los ficheros por el hecho de que dependen del OS y éstos
|
||
|
pueden ir condicionados a la creación por descarga al ser un recurso compartido con Git, entre otras
|
||
|
cosas.
|
||
|
|
||
|
Las fechas tendrán el formato "YYYYMMDD", donde "YYYY" es el año con cuatro dígitos; el "MM" es el
|
||
|
número del mes con 2 dígitos obligatorios; y "DD" que es el día del mes con dos dígitos
|
||
|
oblitagorios.
|
||
|
|
||
|
En caso de que no se halla especificado el "author", éste se pondrá como desconocido ("Unknown" o el
|
||
|
especificado en la configuración); por otro lado, si no se le especifica el "since" éste será
|
||
|
substituído por la fecha de compilación del HTML; y finalmente, si no se le especifica el "version",
|
||
|
éste será substituído por el "since".
|
||
|
|
||
|
> Como conclusión, podemos exponer que ningún parámetro es obligatorio.
|
||
|
|
||
|
Un ejemplo de éste podría ser el siguiente:
|
||
|
|
||
|
```md
|
||
|
[[post_data {
|
||
|
"author" : "KyMAN",
|
||
|
"since" : 20210511,
|
||
|
"version" : 20210513
|
||
|
}]]
|
||
|
```
|
||
|
|
||
|
Este componente personalizado se suele poner al principio del documento, encima del título que
|
||
|
encabeza el mismo.
|
||
|
|
||
|
## html_data
|
||
|
|
||
|
El HTML data es un parámetro que consta de un diccionario JSON que contiene las variables que se le
|
||
|
especifiquen al HTML de compilación donde se integrará la información. Esto permite tener en cada
|
||
|
página HTML generada, su SEO META configurado de forma sencilla y customizada. Dichos parámetros
|
||
|
pueden variar según el HTML utilizado al gusto del desarrollador o usuario que gestione la
|
||
|
documentación o página o páginas Web.
|
||
|
|
||
|
> Este complemento no tendrá visualización alguna sobre el HTML final.
|
||
|
|
||
|
Un ejemplo de este componente podría ser el siguiente:
|
||
|
|
||
|
```md
|
||
|
[[html_data {
|
||
|
"title" : "WMarkDown - Parámetros customizados",
|
||
|
"url" : "https://wmarkdown.k3y.pw/doc/modules/custom_parameters.html",
|
||
|
"author" : "Tarsier, KyMAN",
|
||
|
"since" : 20210515,
|
||
|
"version" : 20210515,
|
||
|
"key_words" : "Whalers,MarkDown,MediaWiki,WMarkDown,módulo,parámetros,custom,personalizado,include,inclusión,import,importación",
|
||
|
"description" : "ÇMódulo de parámetros customizados.",
|
||
|
"project" : "WMarkDown",
|
||
|
"logo" : "https://wmarkdown.k3y.pw/images/wmarkdown.png"
|
||
|
}]]
|
||
|
```
|
||
|
|
||
|
Dicho componente se suele poner al final del documento, aunque puede ser puesto en cualquier otra
|
||
|
parte del mismo.
|
||
|
|
||
|
> **IMPORTANTE**: Cualquier llave de parámetro sobreescribirá a los originales, por ejemplo, por
|
||
|
defecto los títulos se conforman con le nombre del proyecto y el texto de la primera cabecera dada
|
||
|
por el fichero. En el ejemplo expuesto, se subsituye el título por el dado específicamente en este
|
||
|
parámetro customizado.
|
||
|
|
||
|
## include
|
||
|
|
||
|
El parámetro customizado "include" permite incluír un fichero externo el cual se compilará y se
|
||
|
pondrá al nivel de cabeceras actual si no se le especifica previamente a partir del parámetro
|
||
|
customizado "header_level" (Ver en el siguiente punto). Pueden existir anidamientos de elementos
|
||
|
includos, por lo cual hay que prestar especial atención a aquellos anidamientos que puedan ser
|
||
|
recursivos infinitamente. Un ejemplo de inclusión puede ser el siguiente:
|
||
|
|
||
|
```md
|
||
|
|
||
|
Estamos a nivel 0 de cabecera, por tanto, a la siguiente inclusión no se le añadirá ningún nivel a
|
||
|
las cabeceras.
|
||
|
|
||
|
[[include PATH1]]
|
||
|
|
||
|
# Nivel 1
|
||
|
|
||
|
Estamos en el nivel 1 y a la siguiente inclusión se le añadirá un nivel más a cada cebecera que
|
||
|
contenga.
|
||
|
|
||
|
[[include PATH2]]
|
||
|
|
||
|
Ahora estamos en el nivel de la última cabecera que teníamos en el PATH2, y será el nivel que se le
|
||
|
sumará a cada cabecera de la siguiente inclusión.
|
||
|
|
||
|
[[include PATH3]]
|
||
|
|
||
|
# Nivel 1
|
||
|
|
||
|
Volvimos al nivel 1, por tanto, solo se le sumará un nivel a la siguiente inclusión.
|
||
|
|
||
|
[[include PATH4]]
|
||
|
|
||
|
```
|
||
|
|
||
|
## header_level
|
||
|
|
||
|
Este parámetro customizado permite cambiar el nivel de cabeceras con el que se está trabajando,
|
||
|
permitiendo, a partir de dicho punto, cambiar el nivel de las mismas según el valor que se le
|
||
|
establezca. Éste tiene dos formas de establecerse:
|
||
|
|
||
|
- A partir de un valor numérico entero sin signo, el cual establece al nivel al cual se irá
|
||
|
directamente, siendo 0 el más bajo.
|
||
|
- A partir de un valor numérico entero con signo más para añadir sobre el nivel actual, o menos para
|
||
|
reducir sobre el nivel actual.
|
||
|
|
||
|
### Inclusión heredada
|
||
|
|
||
|
La inclusión heredada es la que se explica en el apartado del parámetro customizado "include", donde
|
||
|
vemos en el ejemplo que los niveles de las cabeceras aumentan automáticamente según hereden del
|
||
|
nivel donde se encuentren. No hace falta especificar nivel de forma forzada mediante "header_level".
|
||
|
|
||
|
### Inclusión forzada
|
||
|
|
||
|
La inclusión forzada hace referencia a que se le da un valor numérico entero sin signo, que
|
||
|
representa el nivel íntegro al que se quiere mover todo, independientemente de la herencia, por
|
||
|
ejemplo:
|
||
|
|
||
|
```md
|
||
|
|
||
|
## Nivel 2
|
||
|
|
||
|
Estamos en el nivel 2 de herencia, y queremos incluir un fichero en el nivel 4 de forma forzada.
|
||
|
Para ello lo haremos de la siguiente forma:
|
||
|
|
||
|
[[header_level 4]]
|
||
|
[[include PATH1]]
|
||
|
|
||
|
Para volver al nivel 2 de nuevo simplemente hemos de establecer aquí lo siguiente:
|
||
|
|
||
|
[[header_level 2]]
|
||
|
|
||
|
```
|
||
|
|
||
|
Como podemos ver en el ejemplo, este parámetro customizado nos permite forzar la inclusión de un
|
||
|
fichero en un nivel concreto y luego volver a otro nivel, en el caso del ejemplo, al nivel 2 que era
|
||
|
de donde partía.
|
||
|
|
||
|
### Inclusión añadida
|
||
|
|
||
|
La inclusión añadida permite desplazar el nivel de las cabeceras X niveles a partir de encabezar el
|
||
|
nivel con el signo "+" para añadir o el signo "-" para disminuir. Por ejemplo:
|
||
|
|
||
|
```md
|
||
|
|
||
|
## Nivel 2
|
||
|
|
||
|
Nos encontramos en el nivel 2. Como este fichero puede ser includo y heredado de otros niveles y
|
||
|
queremos reducir 2 niveles para volver al nivel 0 de este fichero para la inclusión del siguiente
|
||
|
fichero podemos hacerlo así:
|
||
|
|
||
|
[[header_level -2]]
|
||
|
[[include PATH1]]
|
||
|
|
||
|
Sin embargo, si queremos recuperar la posición anterior no vamos a poder posiblemente pues si
|
||
|
ponemos +2, será que aumenta 2 posiciones a partir de la última cabecera del PATH1. Es muy
|
||
|
importante tenerlo encuenta.
|
||
|
|
||
|
```
|
||
|
|
||
|
## data_dictionary
|
||
|
|
||
|
El parámetro customizado "data_dictionary" nos permite crear un diccionario de conceptos contra
|
||
|
palabras o estructuras de texto que puedan aparecer en la documentación y con ello, generar una
|
||
|
definición de las mismas, ya sea como referencia donde se coloque el diccionario; o por el texto,
|
||
|
creando un pequeño elemento HTML que hace que cuando el usuario ponga el puntero encima de la
|
||
|
palabra o palabras en cuestión, despliegue una pequeña capa con una descripción y vinculación de las
|
||
|
fuentes o referencias, ya sea para contrastar como para adquirir más información.
|
||
|
|
||
|
Este elemento se tratará en HTML como un INPUT HIDDEN, el cual será interpretado a nivel cliente
|
||
|
sobre JavaScript y generará tanto el diccionario con su buscador, como le dará la función de mostrar
|
||
|
definición y fuentes a los elementos en la documentación en general.
|
||
|
|
||
|
Este parámetro customizado se mezclará con otros "data_dictionary" que puedan existir en la
|
||
|
documentación por lo que se desaconseja encarecidamente el uso de más de uno de estos elementos,
|
||
|
aunque no por ello esté prohibido su uso, permitiendo incluso actualizar los datos de diccionario
|
||
|
que ya halla.
|
||
|
|
||
|
Un ejemplo de funcionamiento podría ser el siguiente:
|
||
|
|
||
|
```md
|
||
|
|
||
|
## Diccionario
|
||
|
|
||
|
[[data_dictionary {
|
||
|
"dictionary" : [{
|
||
|
"pattern" : "/\\bky ?man\\b/i",
|
||
|
"result" : "KyMAN",
|
||
|
"description" : [
|
||
|
"Programador. Trabaja los lenguajes Python, PHP, JavaScript, CSS (CSS y SCSS), SQL ",
|
||
|
"(SQLite, MySQL (MariaDB) y SQL Server)"
|
||
|
],
|
||
|
"links" : [
|
||
|
"https://git.k3y.pw/KyMAN/",
|
||
|
"https://git.a3do.net/KyMAN/",
|
||
|
"https://www.youtube.com/channel/UCCAWOt-AxTyAiFWBgyb3X9Q"
|
||
|
]
|
||
|
}, {
|
||
|
"pattern" : "/\\bmark ?down\\b/i",
|
||
|
"result" : "MarkDown",
|
||
|
"description" : [
|
||
|
"Simple lenguaje de marcas de texto para documentar. se suele usar en proyectos Git."
|
||
|
],
|
||
|
"links" : [
|
||
|
"https://es.wikipedia.org/wiki/Markdown",
|
||
|
"https://markdown.es/"
|
||
|
]
|
||
|
}, {
|
||
|
"pattern" : "/\\bmedia ?wiki\\b/i",
|
||
|
"result" : "MediaWiki",
|
||
|
"description" : [
|
||
|
"CMS PHP muy extendido para gestionar información y documentación con un pequeño ",
|
||
|
"lenguaje de marcas de texto para su procesamiento. Como referencias tendríamos ",
|
||
|
"Wikipedia, HiddenWiki, etc."
|
||
|
],
|
||
|
"links" : [
|
||
|
"https://www.mediawiki.org/",
|
||
|
"https://es.wikipedia.org/wiki/MediaWiki"
|
||
|
]
|
||
|
}, {
|
||
|
"pattern" : ["/\\bwmarkdown\\b/i", "/\\bwmd\\b/i"],
|
||
|
"result" : ["WMarkDown", "WMD"],
|
||
|
"description" : [
|
||
|
"Pequeño sistema para documentación de proyectos que mezcla los lenguajes de marcas ",
|
||
|
"de texto MarkDown y MediaWiki con HTML y texto plano."
|
||
|
],
|
||
|
"links" : [
|
||
|
"https://wmarkdown.k3y.pw/",
|
||
|
"https://git.k3y.pw/Whalers/WMarkDown"
|
||
|
]
|
||
|
}]
|
||
|
}]]
|
||
|
|
||
|
```
|
||
|
|
||
|
Como podemos ver en el ejemplo, este parámetro es un diccionario JSON con una única entrada,
|
||
|
"dictionary", la cual contendrá un Array de diccionarios los cuales tienen los siguientes elementos:
|
||
|
|
||
|
- **pattern**: Patrón o patrones de búsqueda.
|
||
|
- **result**: Resultado o resultados contra el o los patrones.
|
||
|
- **description**: Descripción o definición.
|
||
|
- **links**: Referencias o fuentes mediante URL.
|
||
|
|
||
|
Los patrones y los resultados han de tener el mismo número de elementos, es decir, si se le dan 2
|
||
|
patrones de búsqueda ha de haber 2 resultados, pues el sistema entiende que cada patrón es para una
|
||
|
posible forma de llamar al elemento diferente. Los resultados permiten, en conjunto con el patrón,
|
||
|
corregir posibles errores de escritura de cualquier texto que se le dé a partir del patrón regular.
|
||
|
|
||
|
Con respecto a las imágenes que representan el o los links que puedan estar representadas por
|
||
|
defecto en las capas que aparecen para definir un texto cuando le puntero se le pone encima están
|
||
|
definidas en SCSS a partir del atributo "data-site" que contiene cada Link, usando la raíz de la
|
||
|
página para establecer una imagen icónica del sitio Web al que se le hace referencia.
|
||
|
|
||
|
> **IMPORTANTE**: Se desaconseja el uso de este parámetro por dos motivos: el primero es la
|
||
|
limitación de PHP cara la limitación del número de caracteres que tiene a la hora de procesar dicho
|
||
|
String en un patrón regular; y la segunda es que actualmente hay una alternativa a dicho sistema que
|
||
|
viene siendo en JS la cual implementaría el diccionario desde JavaScript, en el propio constructor
|
||
|
del objeto WMarkDown. La solución puesta solventa muchos problemas de esta versión, sin embargo,
|
||
|
quita posicionamiento SEO al ser contenido dinámico autogenerado en el cliente y no gestionado
|
||
|
mediante Tags, pero por renta cuenta mejor el uso de dicha solución.
|
||
|
|
||
|
## Multimedia
|
||
|
|
||
|
Es un Parámetro Customizado que nos permite incluir elementos Multimedia a partir de varios nombres
|
||
|
los cuales son: "image", "images", "audio", "audios", "video", "videos" y "embed". Por la
|
||
|
complejidad y el tamaño de los Scripts para gestionar dichos elementos, éstos pertenecen a otro
|
||
|
fichero como un módulo independiente, con su patrón de búsqueda, sin embargo, se considerarán
|
||
|
Parámetros Customizados. Para más información, ir a la sección Multimedia donde se hablará de todo
|
||
|
este Parámetro Customizado como si fuera un módulo independiente por la extensión que supone.
|
||
|
|
||
|
> Se planea también agregar un nuevo sistema llamado Slider con nombre "slider" que permite la
|
||
|
creación de un Slider de cualquiera de los elementos que pertenecen a la multimedia.
|
||
|
|
||
|
## wdictionaries
|
||
|
|
||
|
El WDictionaries es como el **data_dictionary** pero con la diferencia de que coge los diccionarios de forma remota a partir de la siguiente estructura:
|
||
|
|
||
|
```md
|
||
|
|
||
|
[[header_level 0]]
|
||
|
<!-- [[wdictionaries "CABECERA" URLs]] -->
|
||
|
[[wdictionaries "Diccionario de prueba" https://wdictionaries.k3y.pw/?es/common,digital]]
|
||
|
|
||
|
```
|
||
|
|
||
|
En este caso tenemos el nombre de cabecera que queramos ponerle al buscador de términos del
|
||
|
diccionario, donde en el HTML comentado llamamos _"CABECERA"_; a continuación tenemos los enlaces
|
||
|
separados entre sí por espacios, tabulaciones, saltos de línea y/o retornos de carro.
|
||
|
|
||
|
> **IMPORTANTE**: El WDictionaries es un proyecto externo al WMarkDown, aunque éste naciera
|
||
|
principalmente para el uso dentro del WMarkDown, éste tiene su Web donde se explica su
|
||
|
funcionamiento e implementación. Además, el WMarkDown a nivel de JS puede implementar dichos
|
||
|
diccionarios sin que se use un WMD, eliminando el fallo a la hora de representar más de un
|
||
|
diccionario dentro de estos ficheros.
|
||
|
|
||
|
A continuación ponemos un ejemplo de carga de más de un fichero, por ejemplo, de diversos ficheros
|
||
|
JSON para hacer uso de la caché OnLine y del navegador.
|
||
|
|
||
|
```md
|
||
|
|
||
|
[[header_level 0]]
|
||
|
[[wdictionaries "Diccionario de prueba"
|
||
|
https://wdictionaries.k3y.pw/json/es/common.json
|
||
|
https://wdictionaries.k3y.pw/json/es/digital.json
|
||
|
https://wdictionaries.k3y.pw/json/es/users.json
|
||
|
]]
|
||
|
|
||
|
```
|
||
|
|
||
|
> **NOTA**: El texto de la cabecera puede ser una única palabra sin comillas o un conjunto de ellas
|
||
|
encapsuladas entre comillas.
|
||
|
|
||
|
> **NOTA**: Recomendamos encarecidamente el no utilizar dicho Componente Customizado y usar el
|
||
|
existente en el entorno cliente contra el propio constructor del WMarkDown en JS.
|
||
|
|
||
|
## wmonitor
|
||
|
|
||
|
El WMonitor es un pequeño subsistema del WMarkDown el cual permite establecer un punto de monitoreo
|
||
|
de visualizaciones, visitas, likes/dislikes y comentarios contra el cliente. Es importante destacar
|
||
|
que funcionará sobre el entorno cliente aunque éste se establezca en el entorno del WMD. Para
|
||
|
implementarlo requerimos de nombrar a este Componente Customizado y a continuación, poner un texto
|
||
|
indicativo al cual hace referencia. Dicho texto ha de ser único para cada WMonitor, pudiéndose dar
|
||
|
el caso de poder compartir dichos datos con otros puntos, pero se perdería la información real de
|
||
|
visualizaciones y likes/dislikes de ambos individualmente y pudiendon llevar a engaño visual de la
|
||
|
información. Un ejemplo de implementación sobre una cabecera podría ser el siguiente:
|
||
|
|
||
|
<table style="width:100%;">
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th style="width:50%;">WMarkDown</th>
|
||
|
<th style="width:50%;">Resultado</th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody>
|
||
|
<tr>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
[[post_data {
|
||
|
"author" : "KyMAN",
|
||
|
"since" : 202106029,
|
||
|
"version" : 202106029
|
||
|
}]]
|
||
|
# Prueba del WMonitor
|
||
|
[[wmonitor prueba_del_wmonitor]]
|
||
|
|
||
|
Texto que queramos ponerle al cuerpo de este artículo.
|
||
|
|
||
|
```
|
||
|
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
[[post_data {
|
||
|
"author" : "KyMAN",
|
||
|
"since" : 202106029,
|
||
|
"version" : 202106029
|
||
|
}]]
|
||
|
<h1>Prueba del WMonitor</h1>
|
||
|
[[wmonitor prueba_del_wmonitor]]
|
||
|
|
||
|
Texto que queramos ponerle al cuerpo de este artículo.
|
||
|
|
||
|
</td>
|
||
|
</tr>
|
||
|
</tbody>
|
||
|
</table>
|
||
|
|
||
|
> **NOTA**: El texto indicativo puede ser una palabra sin comillas o varias encapsuladas entre
|
||
|
comillas.
|
||
|
|
||
|
> **NOTA**: Habrá más información acerca de éste en la sección que hable sobre el entorno cliente.
|
||
|
|
||
|
El almacenamiento de los datos en el entorno servidor de este Componente Customizado viene siendo en
|
||
|
un archivo SQLite para que el administrador tenga control sobre los distintos ficheros de este tipo,
|
||
|
así como su globalización mediante el Driver PDO.
|
||
|
|
||
|
## ignore
|
||
|
|
||
|
Este Componente Customizado simplemente hace que WMarkDown ignore lo que tenga dentro, dejándolo sin
|
||
|
formatear ni nada. Es importante destacar que el doble cierre de corchete se considerará el cierre
|
||
|
del "ignore", y que en caso de necesitar ponerlo es importante hacer uso de HTML. Unos ejemplos de
|
||
|
ésto podrían ser los siguientes, donde el primero simplemente hace ignorar una palabra, el siguiente
|
||
|
un texto, y en el siguiente un JSON con doble cierre de corchete.
|
||
|
|
||
|
<table style="width:100%;">
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th style="width:30%;">WMarkDown</th>
|
||
|
<th style="width:30%;">Normal</th>
|
||
|
<th style="width:30%;">Ignorado</th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody>
|
||
|
<tr>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
|
||
|
# Testeando el *ignore*
|
||
|
|
||
|
Tengo 35 [[ignore años]].
|
||
|
|
||
|
Fichero: [[ignore vacíos.json]]
|
||
|
|
||
|
JSON: [[ignore '["jiji", "jaja", ["cosa.txt", "cosa.json"<span>]</span>]']]
|
||
|
|
||
|
```
|
||
|
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
<h1>Testeando el *ignore*</h1>
|
||
|
|
||
|
Tengo 25 años.
|
||
|
|
||
|
Fichero: vacíos.json
|
||
|
|
||
|
JSON: '["jiji", "jaja", ["cosa.txt", "cosa.json"]]'
|
||
|
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
<h1>Testeando el *ignore*</h1>
|
||
|
|
||
|
Tengo 35 [[ignore años]].
|
||
|
|
||
|
Fichero: [[ignore vacíos.json]]
|
||
|
|
||
|
JSON: [[ignore '["jiji", "jaja", ["cosa.txt", "cosa.json"<span>]</span>]']]
|
||
|
|
||
|
</td>
|
||
|
</tr>
|
||
|
</tbody>
|
||
|
</table>
|
||
|
|
||
|
> **NOTA**: SPAN en HTML no es más que una etiqueta de línea, visualmente no se ve ni se percibe, y
|
||
|
gracias a ésta podremos escapar caracteres que puedan ser problemáticos en última instancia, como
|
||
|
éste que acabamos de ver.
|
||
|
|
||
|
## links_group
|
||
|
|
||
|
El _links\_group_ o "Grupo de Links" viene siendo pequeño componente que permite mostrar un conjunto
|
||
|
de Links sin mostrar sus URIs, sino una imagen representativa y a lo sumo, un pequeño texto o
|
||
|
palabra acorde a éste, iconificando los enlaces mediante imágenes, siguiendo la estructura del
|
||
|
módulo Multimedia, y automatizando ciertas cosas como la carga y selección de imágenes funcionales,
|
||
|
organizamiento de los mismos y los estilos básicos. Su orden se basa en el orden dado en el Array
|
||
|
JSON el cual define este Componente Customizado, e irántodos en la misma línea, centrados, y cuando
|
||
|
hay tantos que exceden la línea automáticamente crearán una segunda, tercera o tantas líneas como
|
||
|
requieran para mostrar todos los Links.
|
||
|
|
||
|
La estructura del JSON no es más que un Array de diccionarios, donde cada diccionario no es más que
|
||
|
un Link y el cual posee la siguiente estructura:
|
||
|
|
||
|
- **images** _(required)_: Array de URLs de imágenes alternativas, en el orden de prioridad.
|
||
|
- **link** _(required)_: URL a la que se quiere enviar.
|
||
|
- **text** _(required)_: Texto que acompaña a la imagen.
|
||
|
- **self** _(optional)_: Indica si se abre en la pestaña/ventana actual (true) o se abre una nueva
|
||
|
(false).
|
||
|
|
||
|
Con respecto al campo "images", se pueden poner tantas URLs como se quieran, incluyendo repetidas,
|
||
|
aunque la idea de repetidas en una mala idea porque pasará exactamente lo mismo en los casos
|
||
|
repetidos; y se cogerán partiendo de la primera imagen hasta la última, donde la primera imagen que
|
||
|
encuentre que no de error, será la que ponga. En caso de que todas las opciones den error o que no
|
||
|
se establezca imagen, la imagen quedará vacía.
|
||
|
|
||
|
Un ejemplo de funcionamiento puede ser el siguiente:
|
||
|
|
||
|
<table style="width:100%;">
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th style="width:50%;">WMarkDown</th>
|
||
|
<th style="width:50%;">Resultado</th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody>
|
||
|
<tr>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
|
||
|
# Links de ejemplo
|
||
|
|
||
|
[[links_group [{
|
||
|
"images" : ["https://wmarkdown.k3y.pw/images/wmarkdown.png"],
|
||
|
"link" : "https://wmarkdown.k3y.pw/",
|
||
|
"text" : "WMarkDown"
|
||
|
}, {
|
||
|
"images" : ["https://git.k3y.pw/assets/logo-d36b5212042cebc89b96df4bf6ac24e43db316143e89926c0db839ff694d2de4.svg"],
|
||
|
"link" : "https://git.k3y.pw/",
|
||
|
"text" : "Git"
|
||
|
}, {
|
||
|
"images" : ["https://gittutorials.k3y.pw/images/gittutorials.png"],
|
||
|
"link" : "https://gittutorials.k3y.pw/",
|
||
|
"text" : "GitTutorials"
|
||
|
}, {
|
||
|
"images" : [],
|
||
|
"link" : "https://wdictionaries.k3y.pw/",
|
||
|
"text" : "WDictionaries"
|
||
|
}, {
|
||
|
"images" : ["https://kyman.local/images/logo.png"],
|
||
|
"link" : "https://kyman.k3y.pw/",
|
||
|
"text" : "KyMAN Wlog"
|
||
|
}, {
|
||
|
"images" : ["https://kanvas.k3y.pw/images/kanvas.png"],
|
||
|
"link" : "https://kanvas.k3y.pw/",
|
||
|
"text" : "Kanvas"
|
||
|
}] ]]
|
||
|
|
||
|
```
|
||
|
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
<h1>Links de ejemplo</h1>
|
||
|
|
||
|
[[links_group [{
|
||
|
"images" : ["https://wmarkdown.k3y.pw/images/wmarkdown.png"],
|
||
|
"link" : "https://wmarkdown.k3y.pw/",
|
||
|
"text" : "WMarkDown"
|
||
|
}, {
|
||
|
"images" : ["https://git.k3y.pw/assets/logo-d36b5212042cebc89b96df4bf6ac24e43db316143e89926c0db839ff694d2de4.svg"],
|
||
|
"link" : "https://git.k3y.pw/",
|
||
|
"text" : "Git"
|
||
|
}, {
|
||
|
"images" : ["https://gittutorials.k3y.pw/images/gittutorials.png"],
|
||
|
"link" : "https://gittutorials.k3y.pw/",
|
||
|
"text" : "GitTutorials"
|
||
|
}, {
|
||
|
"images" : [],
|
||
|
"link" : "https://wdictionaries.k3y.pw/",
|
||
|
"text" : "WDictionaries"
|
||
|
}, {
|
||
|
"images" : ["https://kyman.local/images/logo.png"],
|
||
|
"link" : "https://kyman.k3y.pw/",
|
||
|
"text" : "KyMAN Wlog"
|
||
|
}, {
|
||
|
"images" : ["https://kanvas.k3y.pw/images/kanvas.png"],
|
||
|
"link" : "https://kanvas.k3y.pw/",
|
||
|
"text" : "Kanvas"
|
||
|
}] ]]
|
||
|
|
||
|
</td>
|
||
|
</tr>
|
||
|
</tbody>
|
||
|
</table>
|
||
|
|
||
|
## icon
|
||
|
|
||
|
Este Componente Customizado sirve para marcar algo como una nota, alerta, aviso, etc. Y suele ser
|
||
|
usado para los Quotes (Componente que se verá más adelante). Dicho Componente Customizado puede ser
|
||
|
nombrado como:
|
||
|
|
||
|
- icon
|
||
|
- i
|
||
|
- !
|
||
|
|
||
|
> [[! note NOTA]]: Las nomenclaturas "i" y "!" están hechas para agilizar y facilitar su uso.
|
||
|
|
||
|
La sintaxis de los iconos es la siguiente, donde podemos ver las siguientes partes:
|
||
|
|
||
|
```md
|
||
|
[[icon|i|! TIPO TEXTO?]]
|
||
|
```
|
||
|
|
||
|
- **TIPO**: Es el tipo de icono que se quiere mostrar. Dicho nombre lo podemos sacar del fichero de
|
||
|
iconos de CSS y nos valdría cualquiera de ellos, aunque oficialmente existen 5: *note* o notas;
|
||
|
*alert* o alertas; *important* o cosas importantes; *warning* o avisos; y *danger* o peligro.
|
||
|
- **TEXTO**: Es un campo opcional que permite añadirle un texto que lo acompañe.
|
||
|
|
||
|
> [[! note NOTA]]: Es importante tener en cuenta que este Componente Customizado es un elemento de
|
||
|
línea que puede estar integrado dentro de un texto entre otros.
|
||
|
|
||
|
Los tipos de icono que hay son los siguientes:
|
||
|
|
||
|
<table style="width:100%;">
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th style="width:19%;">Tipo</th>
|
||
|
<th style="width:25%;">WMarkDown</th>
|
||
|
<th style="width:28%;">Ejemplo</th>
|
||
|
<th style="width:28%;">Resultado</th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody>
|
||
|
<tr>
|
||
|
<td>Nota</td>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
[[! note NOTA]]
|
||
|
```
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
|
||
|
> [[! note NOTA]]: Esto es una nota.
|
||
|
|
||
|
> [[! note]] Esto es una nota.
|
||
|
|
||
|
```
|
||
|
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
> [[! note NOTA]]: Esto es una nota.
|
||
|
|
||
|
> [[! note]] Esto es una nota.
|
||
|
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>Alerta</td>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
[[! alert ALERTA]]
|
||
|
```
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
|
||
|
> [[! alert ALERTA]]: Esto es una alerta.
|
||
|
|
||
|
> [[! alert]] Esto es una alerta.
|
||
|
|
||
|
```
|
||
|
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
> [[! alert ALERTA]]: Esto es una alerta.
|
||
|
|
||
|
> [[! alert]] Esto es una alerta.
|
||
|
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>Aviso</td>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
[[! warn AVISO]]
|
||
|
[[! warning AVISO]]
|
||
|
```
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
|
||
|
> [[! warn AVISO]]: Esto es un aviso.
|
||
|
|
||
|
> [[! warn]] Esto es un aviso.
|
||
|
|
||
|
```
|
||
|
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
> [[! warn AVISO]]: Esto es un aviso.
|
||
|
|
||
|
> [[! warn]] Esto es un aviso.
|
||
|
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>Importante</td>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
[[! important IMPORTANTE]]
|
||
|
```
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
|
||
|
> [[! important IMPORTANTE]]: Esto es algo importante.
|
||
|
|
||
|
> [[! important]] Esto es algo importante.
|
||
|
|
||
|
```
|
||
|
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
> [[! important IMPORTANTE]]: Esto es algo importante.
|
||
|
|
||
|
> [[! important]] Esto es algo importante.
|
||
|
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>¡Peligro!</td>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
[[! danger PELIGRO]]
|
||
|
```
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
```md
|
||
|
|
||
|
> [[! danger PELIGRO]]: Esto es algo peligroso.
|
||
|
|
||
|
> [[! danger]] Esto es algo peligroso.
|
||
|
|
||
|
```
|
||
|
|
||
|
</td>
|
||
|
<td>
|
||
|
|
||
|
> [[! danger PELIGRO]]: Esto es algo peligroso.
|
||
|
|
||
|
> [[! danger]] Esto es algo peligroso.
|
||
|
|
||
|
</td>
|
||
|
</tr>
|
||
|
</tbody>
|
||
|
</table>
|
||
|
|
||
|
## WDoc
|
||
|
|
||
|
El WDoc es un sistema basado en el XDoc para documentar código, pero con la diferencia que en este
|
||
|
caso es para documentar el código a partir de ficheros WMD para dejar el código lo más limpio
|
||
|
posible, además de agilizar la documentación del código dentro de los documentos WMD, manteniendo
|
||
|
una pequeña estructura simplificada de XDoc para una documentación rápida de variables y metodos que
|
||
|
nos podamos encontrar. El WDoc se basa en tres partes diferenciadas las cuales son:
|
||
|
|
||
|
- **Descripción**: Inicia con cualquier caracter que no sea "@" ni "#". Pequeño texto descriptivo
|
||
|
para definir por encima el método o variable que se quiera documentar.
|
||
|
- **Data o información**: Inicia con "@". Valores basados en una llave y un valor tanto para el XDoc
|
||
|
como para el propio WDoc, y suelen ser elementos comunes.
|
||
|
- **Atributos y retorno**: Inicia con "#". Parámetros de entrada del método y retorno del mismo.
|
||
|
|
||
|
Cada elemento conforma una única línea dentro del elemento o bloque WDoc y se distinguen a partir de
|
||
|
su inicio el cual se detalla en la lista anterior.
|
||
|
|
||
|
En el caso de la descripción, cualquier línea que empiece sin ninguno de los caracteres
|
||
|
determinados será concatenada a la descripción separados por un simple espacio. Permite el uso de
|
||
|
HTML, lo mismo que en resto de atributos, aunque en los demás no se aconseja, y se hace uso de HTML
|
||
|
si se viere necesario pero en la medida de lo posible y por la descripción de este Componente
|
||
|
Customizado no se aconseja hacer un uso excesivo de ello.
|
||
|
|
||
|
El en el caso de Data o información, sirve para cumplimentar datos genéricos del XDoc o WDoc, siendo
|
||
|
algunos de ellos los siguientes:
|
||
|
|
||
|
- **name** *(required)*: Sería el nombre completo del elemento, es decir, si se encuentra en una
|
||
|
clase, subclase o espacio de nombres, ha de representar se entero, sin espacios.
|
||
|
- **language** *(required)*: Lenguaje de programación en el que esté trabajado sin espacios.
|
||
|
- **author** *(optional)*: Autor o autores del elemento a documentar, separados por comas y sin
|
||
|
espacios.
|
||
|
- **since** *(optional)*: Fecha en formato "YYYYMMDD" desde la primera aparición en código de dicho
|
||
|
elemento.
|
||
|
- **version** *(optional)*: Última fecha de modificación en formato "YYYYMMDD" de dicho elemento.
|
||
|
- **deprecated** *(optional)*: Determina si está obsoleto o no. Su valor ha de ser "true".
|
||
|
|
||
|
> [[! important IMPORTANTE]]: Los elementos de Data o información "required" u obligatorios deben de
|
||
|
existir siempre o pueden dar resultados no esperados por el redactor.
|
||
|
|
||
|
Finalmente, en el caso de los atributos se determinan a partir de 4 puntos los cuales se separan con
|
||
|
espacios, siendo el último el único capaz de contener dichos espacios. La separación entre ellos
|
||
|
pueden ser espacios o tabulaciones, y pueden ser tantos como se desee para mantener una legibilidad
|
||
|
a la hora de representar en código. Dichos elementos de los que consta son los siguientes:
|
||
|
|
||
|
- **nombre** *(required)*: Nombre del atributo.
|
||
|
- **tipados** *(required)*: Tipado o posibles tipados del atributo. En caso de poder ser cualquiera
|
||
|
se pondría la palabra "ANY" para representar "cualquiera" (Por defecto, el tipado "-" será "ANY").
|
||
|
- **modo** *(required)*: Determina si el atributo es obligatorio (Required) u opcional (Optional).
|
||
|
- **descripción** *(optional)*: Pequeña descripción del atributo.
|
||
|
|
||
|
> [[! note NOTA]]: Para representar el retorno, hemos de usar el nombre de atributo return, que
|
||
|
siguiendo con el modelo de un atributo continuaría con el tipado o tipados de variable de retorno,
|
||
|
un guión ("-") por el hecho de no ser ni opcional, ni requerido ni ninguna otra forma dependiente
|
||
|
del usuario, y con una pequeña descripción opcional que determine qué es lo que retorna.
|
||
|
|
||
|
Un ejemplo de dicho sistema puede ser el siguiente:
|
||
|
|
||
|
```md
|
||
|
|
||
|
Descripción WDoc del método **AnP.string_variables**.
|
||
|
|
||
|
[[wdoc
|
||
|
Procesa las variables de un String.
|
||
|
@name AnP.string_variables
|
||
|
@lang Python
|
||
|
#string str required String a procesar.
|
||
|
#variables dict,list,tuple optional Variables para procesar el String.
|
||
|
#default str optional Valor por defecto.
|
||
|
#return str - String procesado.
|
||
|
]]
|
||
|
|
||
|
```
|
||
|
|
||
|
Su resultado vendría siendo el siguiente:
|
||
|
|
||
|
<blockquote class="quote">
|
||
|
|
||
|
Descripción WDoc del método **AnP.string_variables**.
|
||
|
|
||
|
[[wdoc
|
||
|
Procesa las variables de un String.
|
||
|
@name AnP.string_variables
|
||
|
@lang Python
|
||
|
#string str required String a procesar.
|
||
|
#variables dict,list,tuple optional Variables para procesar el String.
|
||
|
#default str optional Valor por defecto.
|
||
|
#return str - String procesado.
|
||
|
]]
|
||
|
|
||
|
</blockquote>
|
||
|
|
||
|
También se cuenta con posibles sobrecargas, es decir, que un método pueda tener más de un tipo de
|
||
|
entrada con lo que éste actuará diferente en base a su entrada. Como éste se basa en los atributos y
|
||
|
retorno del mismo, se puede poner el parámetro "@overload" sin ningún valor ni nada, lo que indica
|
||
|
que a partir de ahí empieza una sobrecarga del método con sus propios parámetros de entrada y
|
||
|
retorno.
|
||
|
|
||
|
> [[! note NOTA]]: Un retorno vacío se especificará automáticamente con el tipado "void", por lo que
|
||
|
no haría falta ni definirlo.
|
||
|
|
||
|
> [[! note NOTA]]: Es importante determinar que en lenguajes como Python, en sus métodos objeto o
|
||
|
métodos de clase, el primer parámetro de entrada se entiende como un parámetro forzado del propio
|
||
|
lenguaje por el cual no se determinará en el WDoc, dando a entender que en estos casos se empezará
|
||
|
en el segundo parámetro de entrada por ser un parámetro dado al usuario, que será con los que pueda
|
||
|
interactuar.
|
||
|
|
||
|
## plain
|
||
|
|
||
|
El Componente Customizado "plain" nos permite establecer un fragmento de texto totalmente plano a
|
||
|
nivel de HTML, sin que éste se procese ni se etiquete. Es muy útil para mantener estructuras en los
|
||
|
títulos u otros elementos vinculados. Un ejemplo de funcionamiento puede ser el siguiente:
|
||
|
|
||
|
```md
|
||
|
|
||
|
# [[AnP.get_dictionary_path]]
|
||
|
|
||
|
Título del bloque "AnP.get\_dictionary\_path".
|
||
|
|
||
|
# AnP.get_dictionary_path
|
||
|
|
||
|
Título del bloque "AnP.get\_dictionary\_path".
|
||
|
|
||
|
```
|
||
|
|
||
|
> [[! note NOTA]]: Los textos que queden planos quedarán siendo parte de su padre y no
|
||
|
distinguiéndose del resto de los textos puesto que no estarán etiquetados.
|
||
|
|
||
|
[[html_data {
|
||
|
"title" : "WMarkDown - Parámetros customizados",
|
||
|
"url" : "https://wmarkdown.k3y.pw/es/doc/modules/custom_parameters.html",
|
||
|
"author" : "Tarsier, KyMAN",
|
||
|
"since" : 20210515,
|
||
|
"version" : 20210519,
|
||
|
"key_words" : "Whalers,MarkDown,MediaWiki,WMarkDown,módulo,parámetros,custom,personalizado,include,inclusión,import,importación,multimedia,xdoc,wdoc",
|
||
|
"description" : "Módulo de parámetros customizados.",
|
||
|
"project" : "WMarkDown",
|
||
|
"logo" : "https://wmarkdown.k3y.pw/images/wmarkdown.png",
|
||
|
"language" : "es"
|
||
|
}]]
|