diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..28a890c --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +Data +TMP +PHP/WMarkDown.Secrets.php +Public/data +Public/es +Public/index.html +Public/dev +JSON/html.files.json +WMarkDown.apache2.conf + diff --git a/ArtBook/capaswmarkdown.svg b/ArtBook/capaswmarkdown.svg new file mode 100755 index 0000000..b6d6c6d --- /dev/null +++ b/ArtBook/capaswmarkdown.svg @@ -0,0 +1,152 @@ + + diff --git a/ArtBook/wmarkdown.png b/ArtBook/wmarkdown.png new file mode 100755 index 0000000..191e10c Binary files /dev/null and b/ArtBook/wmarkdown.png differ diff --git a/ArtBook/wmarkdown.svg b/ArtBook/wmarkdown.svg new file mode 100755 index 0000000..b4d4de5 --- /dev/null +++ b/ArtBook/wmarkdown.svg @@ -0,0 +1,22 @@ + + + diff --git a/ArtBook/wmarkdown.xcf b/ArtBook/wmarkdown.xcf new file mode 100755 index 0000000..6182eb8 Binary files /dev/null and b/ArtBook/wmarkdown.xcf differ diff --git a/ArtBook/wmarkdown180.png b/ArtBook/wmarkdown180.png new file mode 100755 index 0000000..6dadb08 Binary files /dev/null and b/ArtBook/wmarkdown180.png differ diff --git a/ArtBook/wmarkdown192.png b/ArtBook/wmarkdown192.png new file mode 100755 index 0000000..eba3ec6 Binary files /dev/null and b/ArtBook/wmarkdown192.png differ diff --git a/ArtBook/wmarkdown270.png b/ArtBook/wmarkdown270.png new file mode 100755 index 0000000..74552d1 Binary files /dev/null and b/ArtBook/wmarkdown270.png differ diff --git a/ArtBook/wmarkdown32.png b/ArtBook/wmarkdown32.png new file mode 100755 index 0000000..567ae08 Binary files /dev/null and b/ArtBook/wmarkdown32.png differ diff --git a/ArtBook/wmarkdown512.png b/ArtBook/wmarkdown512.png new file mode 100755 index 0000000..c7d0e64 Binary files /dev/null and b/ArtBook/wmarkdown512.png differ diff --git a/ArtBook/wmarkdown_color.svg b/ArtBook/wmarkdown_color.svg new file mode 100755 index 0000000..baaa087 --- /dev/null +++ b/ArtBook/wmarkdown_color.svg @@ -0,0 +1,12 @@ + + + \ No newline at end of file diff --git a/ArtBook/wmarkdown_color.xcf b/ArtBook/wmarkdown_color.xcf new file mode 100755 index 0000000..f4c9e09 Binary files /dev/null and b/ArtBook/wmarkdown_color.xcf differ diff --git a/ArtBook/wmarkdown_color180.png b/ArtBook/wmarkdown_color180.png new file mode 100755 index 0000000..b4ba95d Binary files /dev/null and b/ArtBook/wmarkdown_color180.png differ diff --git a/ArtBook/wmarkdown_color192.png b/ArtBook/wmarkdown_color192.png new file mode 100755 index 0000000..dc97015 Binary files /dev/null and b/ArtBook/wmarkdown_color192.png differ diff --git a/ArtBook/wmarkdown_color270.png b/ArtBook/wmarkdown_color270.png new file mode 100755 index 0000000..89d10d0 Binary files /dev/null and b/ArtBook/wmarkdown_color270.png differ diff --git a/ArtBook/wmarkdown_color32.png b/ArtBook/wmarkdown_color32.png new file mode 100755 index 0000000..a09cd6c Binary files /dev/null and b/ArtBook/wmarkdown_color32.png differ diff --git a/ArtBook/wmarkdown_color512.png b/ArtBook/wmarkdown_color512.png new file mode 100755 index 0000000..07d1129 Binary files /dev/null and b/ArtBook/wmarkdown_color512.png differ diff --git a/HTML/base.wmarkdown.html b/HTML/base.wmarkdown.html new file mode 100755 index 0000000..898dd8e --- /dev/null +++ b/HTML/base.wmarkdown.html @@ -0,0 +1,185 @@ + + +
++
' . \WMarkDown\Modules::format($this->wmarkdown, $this->matches[1][0], ["paragraphs"], $modules)["content"] . '
'; + + } + + }; diff --git a/PHP/Modules/WMarkDown.Modules.Quotes.php b/PHP/Modules/WMarkDown.Modules.Quotes.php new file mode 100755 index 0000000..8581dfa --- /dev/null +++ b/PHP/Modules/WMarkDown.Modules.Quotes.php @@ -0,0 +1,27 @@ +more && + $this->from < 0 && + $this->more = preg_match('/^((^>+ ?)(([^\r\n]+)(\r\n|[\r\n])?)+)/m', $string, $this->matches, PREG_OFFSET_CAPTURE) + ) + $this->from = $this->matches[0][1]; + + } + + public function process($string, $modules, $level){ + + $this->length = strlen($this->matches[0][0]); + $this->to = $this->from + $this->length; + $this->content = $this->matches[1][0]; + $this->html = '' . \WMarkDown\Modules::format($this->wmarkdown, substr($this->matches[1][0], 1), ["paragraphs"], $modules)["content"] . ''; + + } + + }; diff --git a/PHP/Modules/WMarkDown.Modules.Tables.php b/PHP/Modules/WMarkDown.Modules.Tables.php new file mode 100755 index 0000000..2e4906e --- /dev/null +++ b/PHP/Modules/WMarkDown.Modules.Tables.php @@ -0,0 +1,61 @@ +more && + $this->from < 0 && + $this->more = preg_match('/\[\!([^\r\n]+)?(([\r\n]+([^\!\n\r]+|\![^\]])*?)*)[\r\n]+\!\]/', $string, $this->matches, PREG_OFFSET_CAPTURE) + ) + $this->from = $this->matches[0][1]; + + } + + public function process($string, $modules, $level){ + + $formatted = \WMarkDown\Modules::format($this->wmarkdown, $data = $this->wmarkdown->load_file($this->matches[1][0]), [], $modules, $modules->menu_level); + + $head = ''; + $body = ''; + $foot = ''; + $wmarkdown = $this->wmarkdown; + + preg_replace_callback('/^\|([\^_\-\#])?([^\r\n]+)/m', function($values) use(&$head, &$body, &$foot, $wmarkdown, $modules){ + + $html = ''; + $block = in_array($values[1], ["^", "-"]) ? "head" : (in_array($values[1], ["_"]) ? "foot" : (in_array($values[1], ["#"]) ? "both" : "body")); + $tag = $block == "body" ? "d" : "h"; + + preg_replace_callback('/(\|(\|+)?)?([^\|]+)/', function($cell) use(&$html, $tag, $wmarkdown, $modules){ + $html .= '
Debian | +Fedora / Red Hat | +Arch | +Windows 10 | +
---|---|---|---|
+```sh +apt install git +``` + | ++```sh +yum install git +``` + | ++```sh +pacman install git +``` + | ++```bat +widget install git +``` + | +
WMarkDown | +Resultado | +
---|---|
+ +```md +- [ ] No seleccioando. +- [X] Seleccionado. +- [-] Deshabilitado. +``` + + | ++ +- [ ] No seleccionado. +- [X] Seleccionado. +- [-] Deshabilitado. + + | +
WMarkDown | +Resultado | +
---|---|
+ +```md +- ( ) No seleccionado. +- (X) Seleccionado. +- (-) Deshabilitado. +``` + + | ++ +- ( ) No seleccionado. +- (X) Seleccionado. +- (-) Deshabilitado. + + | +
WMarkDown | +Resultado | +
---|---|
+
+```md
+
+Con diamantes:
+
+- < > No seleccionado.
+- |
+
+
+Con diamantes:
+
+- < > No seleccionado.
+- |
+
Tipo | +WMarkDown | +Resultado | +
---|---|---|
Muestreo | ++ +---md +```js +console.log("Muestra este Script JS"); +``` +--- + + | ++ +```js +console.log("Muestra este Script JS"); +``` + + | +
Interpretación | ++ +---md +```mermaid +graph LR +A["Elemento A"] --> B["Elemento B"] +``` +--- + + | ++ +```mermaid +graph LR +A["Elemento A"] --> B["Elemento B"] +``` + + | +
WMarkDown | +Resultado | +
---|---|
+ +'''md +---md +```js +console.log("Muestra este Script JS"); +``` +--- +''' + + | ++ +---md +```js +console.log("Muestra este Script JS"); +``` +--- + + | +
```+-
'''+-
"""+-
---+ +A éstos les podemos sumar la facultad de poder crear por cada uno, otro nuevo delimitador separando +sus elementos con espacios. + +La existencia de más de un delimitador también viene por el hecho de que los lenguajes de +programación pueden hacer uso de estructuras que puedan solapar este tipo de marcas de texto, como +es el caso de Python con los String UTF8, que impide el uso de los códigos de bloque de triple +comilla doble. + +> **NOTA**: MarkDown tiene un Bug con los bloques de código a la hora de ser usados dentro de celdas +de una tabla. En WMarkDown está corregido y se puede hacer uso de elementos HTML sin ningún +problema. + +[[html_data { + "title" : "WMarkDown - Bloques de código", + "url" : "https://wmarkdown.k3y.pw/es/doc/modules/code_blocks.html", + "author" : "Tarsier, KyMAN", + "since" : 20210516, + "version" : 20210516, + "key_words" : "Whalers,MarkDown,MediaWiki,WMarkDown,módulo,bloques,componentes,código", + "description" : "Módulo de bloques de código.", + "project" : "WMarkDown", + "logo" : "https://wmarkdown.k3y.pw/images/wmarkdown.png", + "language" : "es" +}]] diff --git a/WMD/es/doc/modules/custom_parameters.w.md b/WMD/es/doc/modules/custom_parameters.w.md new file mode 100755 index 0000000..8323ddb --- /dev/null +++ b/WMD/es/doc/modules/custom_parameters.w.md @@ -0,0 +1,896 @@ +[[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 "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: + +
WMarkDown | +Resultado | +
---|---|
+ +```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. + +``` + + | +
+
+ [[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. + + |
+
WMarkDown | +Normal | +Ignorado | +
---|---|---|
+ +```md + +# Testeando el *ignore* + +Tengo 35 [[ignore años]]. + +Fichero: [[ignore vacíos.json]] + +JSON: [[ignore '["jiji", "jaja", ["cosa.txt", "cosa.json"]]']] + +``` + + | +
+
+ Testeando el *ignore*+ + Tengo 25 años. + + Fichero: vacíos.json + + JSON: '["jiji", "jaja", ["cosa.txt", "cosa.json"]]' + + |
+
+
+ Testeando el *ignore*+ + Tengo 35 [[ignore años]]. + + Fichero: [[ignore vacíos.json]] + + JSON: [[ignore '["jiji", "jaja", ["cosa.txt", "cosa.json"]]']] + + |
+
WMarkDown | +Resultado | +
---|---|
+ +```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" +}] ]] + +``` + + | +
+
+ 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" + }] ]] + + |
+
Tipo | +WMarkDown | +Ejemplo | +Resultado | +
---|---|---|---|
Nota | ++ +```md +[[! note NOTA]] +``` + | ++ +```md + +> [[! note NOTA]]: Esto es una nota. + +> [[! note]] Esto es una nota. + +``` + + | ++ +> [[! note NOTA]]: Esto es una nota. + +> [[! note]] Esto es una nota. + + | +
Alerta | ++ +```md +[[! alert ALERTA]] +``` + | ++ +```md + +> [[! alert ALERTA]]: Esto es una alerta. + +> [[! alert]] Esto es una alerta. + +``` + + | ++ +> [[! alert ALERTA]]: Esto es una alerta. + +> [[! alert]] Esto es una alerta. + + | +
Aviso | ++ +```md +[[! warn AVISO]] +[[! warning AVISO]] +``` + | ++ +```md + +> [[! warn AVISO]]: Esto es un aviso. + +> [[! warn]] Esto es un aviso. + +``` + + | ++ +> [[! warn AVISO]]: Esto es un aviso. + +> [[! warn]] Esto es un aviso. + + | +
Importante | ++ +```md +[[! important IMPORTANTE]] +``` + | ++ +```md + +> [[! important IMPORTANTE]]: Esto es algo importante. + +> [[! important]] Esto es algo importante. + +``` + + | ++ +> [[! important IMPORTANTE]]: Esto es algo importante. + +> [[! important]] Esto es algo importante. + + | +
¡Peligro! | ++ +```md +[[! danger PELIGRO]] +``` + | ++ +```md + +> [[! danger PELIGRO]]: Esto es algo peligroso. + +> [[! danger]] Esto es algo peligroso. + +``` + + | ++ +> [[! danger PELIGRO]]: Esto es algo peligroso. + +> [[! danger]] Esto es algo peligroso. + + | +
+ +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. +]] + ++ +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" +}]] diff --git a/WMD/es/doc/modules/font_formats.w.md b/WMD/es/doc/modules/font_formats.w.md new file mode 100755 index 0000000..dd0f988 --- /dev/null +++ b/WMD/es/doc/modules/font_formats.w.md @@ -0,0 +1,112 @@ +[[post_data { + "author" : "KyMAN", + "since" : 20210516, + "version" : 20210516 +}]] +# Formatos de fuente + +Los formato de la fuente puede ser un tema muy extenso, sin embargo, por lo general, tienen una serie de patrones en uso, y pocos elementos de formatos quedan expuestos a no tener un patrón concreto, y de éstos últimos, por lo general solo se hace uso de dos: la negrilla y la cursiva. Esto da pie a considerar sólo el formato rápido por marcas de texto de éstos dos, el resto han de ser aplicados o por CSS o por HTML. Para poder aplicar ambos, podemos basarnos tanto en MediaWiki como en MarkDown, siendo de la siguiente forma: + +
Objetivo | +MediaWiki | +MarkDown | +HTML | +
---|---|---|---|
Negrilla | ++ +```md +'''Negrilla''' +"""Negrilla""" +``` + + | ++ +```md +**Negrilla** +__Negrilla__ +``` + + | ++ +```html +Negrilla +``` + + | +
Cursiva | ++ +```md +''Cursiva'' +""Cursiva"" +``` + + | ++ +```md +*Cursiva* +_Cursiva_ +``` + + | ++ +```html +Cursiva +``` + + | +
Negrilla y cursiva | ++ +```md +'''''Negrilla y cursiva''''' +"""""Negrilla y cursiva""""" +``` + + | ++ +```md +***Negrilla y cursiva*** +___Negrilla y cursiva___ +``` + + | ++ +```html +Negrilla y cursiva +``` + + | +
WMarkDown | +Resultado | +
---|---|
+ +```md + +- https://git.k3y.pw/ +- https://wmarkdown.k3y.pw/ +- https://cdn.k3y.pw/ + +Incluso podemos poner un link como https://ur3.k3y.pw/ dentro de un texto o párrafo y éste será +reconocido y formateado como Link HTML. + +``` + + | ++ +- https://git.k3y.pw/ +- https://wmarkdown.k3y.pw/ +- https://cdn.k3y.pw/ + + Incluso podemos poner un link como https://ur3.k3y.pw/ dentro de un texto o párrafo y éste será + reconocido y formateado como Link HTML. + + | +
WMarkDown | +HTML | +Resultado | +
---|---|---|
+ +```md +https://wmarkdown.k3y.pw/ +``` + + | ++ +```html +https://wmarkdown.k3y.pw/ +``` + + | +https://wmarkdown.k3y.pw/ | +
+ +```md +[https://wmarkdown.k3y.pw/] +``` + + | ++ +```html +https://wmarkdown.k3y.pw/ +``` + + | +https://wmarkdown.k3y.pw/ | +
+ +```md +[https://wmarkdown.k3y.pw/ WMarkDown] +``` + + | ++ +```html +WMarkDown +``` + + | +WMarkDown | +
+ +```md +[WMarkDown][https://wmarkdown.k3y.pw/] +``` + + | ++ +```html +WMarkDown +``` + + | +WMarkDown | +
+ +```md +[WMarkDown](https://wmarkdown.k3y.pw/) +``` + + | ++ +```html +WMarkDown +``` + + | +WMarkDown | +
+ +```md +[WMarkDown](https://wmarkdown.k3y.pw/ Página oficial de WMarkDown.) +``` + + | ++ +```html +WMarkDown +``` + + | +WMarkDown | +
+ +```md +[WMarkDown][https://wmarkdown.k3y.pw/ Página oficial de WMarkDown.] +``` + + | ++ +```html +WMarkDown +``` + + | +WMarkDown | +
WMarkDown | +HTML | +Resultado | +
---|---|---|
+ +```md +[/doc/example.html] +``` + + | ++ +```html +/doc/example.html +``` + + | +/doc/example.html | +
+ +```md +[#FAQ-Preguntas-frecuentes-1] +``` + + | ++ +```html +#FAQ-Preguntas-frecuentes-1 +``` + + | +#FAQ-Preguntas-frecuentes-1 | +
WMarkDown | +Resultado | +
---|---|
+ +```md + +- [WMarkDown](https://wmarkdown.k3y.pw/) +- [URfree](https://ur3.k3y.pw/) +- [Git de inoro](git_inoro) +- [Git de KyMAN](git_kyman) + +[git_inoro]: https://git.a3do.net/ +[git_kyman]: https://git.k3y.pw/ + +``` + + | ++ +- [WMarkDown](https://wmarkdown.k3y.pw/) +- [URfree](https://ur3.k3y.pw/) +- [Git de inoro](git_inoro) +- [Git de KyMAN](git_kyman) + +[git_inoro]: https://git.a3do.net/ +[git_kyman]: https://git.k3y.pw/ + + | +
WMarkDown | +Resultado | +
---|---|
+ +'''md +```maths +x = 2a^4 + 5 +``` +''' + + | ++ +```maths +x = 2a^4 + 5 +``` + + | +
+ +'''md +```maths +y = \sqrt{x^2 + 5n} +``` +''' + + | ++ +```maths +y = \sqrt{x^2 + 5n} +``` + + | +
WMarkDown | +Resultado | +
---|---|
+ +---txt +```mermaid +graph LR +A["Ejemplo A"] --> B["Ejemplo B"] +``` +--- + + | ++ +```mermaid +graph LR +A["Ejemplo A"] --> B["Ejemplo B"] +``` + + | +
WMarkDown | +Resultado | +
---|---|
+ +```md + +# Ejemplo de carga opcional + +[[image [ + "https://dictionary.cambridge.org/es/images/thumb/cog_noun_002_07459.jpg", + "https://upload.wikimedia.org/wikipedia/commons/9/92/Cog_font_awesome.svg", + "https://cdn.icon-icons.com/icons2/2066/PNG/512/cog_icon_125323.png", + "https://cdn.pixabay.com/photo/2013/07/12/18/19/cog-153268_960_720.png", + "https://cdn.icon-icons.com/icons2/1875/PNG/512/cog_120288.png", + "https://cdn.icon-icons.com/icons2/2066/PNG/512/cog_icon_125323.png" +] Configuración]] + +``` + + | ++ +[[image [ + "https://dictionary.cambridge.org/es/images/thumb/cog_noun_002_07459.jpg", + "https://upload.wikimedia.org/wikipedia/commons/9/92/Cog_font_awesome.svg", + "https://cdn.icon-icons.com/icons2/2066/PNG/512/cog_icon_125323.png", + "https://cdn.pixabay.com/photo/2013/07/12/18/19/cog-153268_960_720.png", + "https://cdn.icon-icons.com/icons2/1875/PNG/512/cog_120288.png", + "https://cdn.icon-icons.com/icons2/2066/PNG/512/cog_icon_125323.png" +] Configuración]] + + | +
Descripción | +WMarkDown | +Resultado | +
---|---|---|
+ Imagen con un único Link. + | ++ +```md + +[[image https://i.imgur.com/YueKYv4.png]] + +``` + + | ++ +[[image https://i.imgur.com/YueKYv4.png]] + + | +
+ Imagen con un único Link acompañada de una texto. + | ++ +```md + +[[image https://i.imgur.com/bAlLssr.png Aprendiendo a programar en Java...]] + +``` + + | ++ +[[image https://i.imgur.com/bAlLssr.png Aprendiendo a programar en Java...]] + + | +
+ Imagen con 6 Links alternativos de un icono de configuración con su texto de + configuración. + | ++ +```md + +[[image [ + "https://dictionary.cambridge.org/es/images/thumb/cog_noun_002_07459.jpg", + "https://upload.wikimedia.org/wikipedia/commons/9/92/Cog_font_awesome.svg", + "https://cdn.icon-icons.com/icons2/2066/PNG/512/cog_icon_125323.png", + "https://cdn.pixabay.com/photo/2013/07/12/18/19/cog-153268_960_720.png", + "https://cdn.icon-icons.com/icons2/1875/PNG/512/cog_120288.png", + "https://cdn.icon-icons.com/icons2/2066/PNG/512/cog_icon_125323.png" +] Configuración]] + +``` + + | ++ +[[image [ + "https://dictionary.cambridge.org/es/images/thumb/cog_noun_002_07459.jpg", + "https://upload.wikimedia.org/wikipedia/commons/9/92/Cog_font_awesome.svg", + "https://cdn.icon-icons.com/icons2/2066/PNG/512/cog_icon_125323.png", + "https://cdn.pixabay.com/photo/2013/07/12/18/19/cog-153268_960_720.png", + "https://cdn.icon-icons.com/icons2/1875/PNG/512/cog_120288.png", + "https://cdn.icon-icons.com/icons2/2066/PNG/512/cog_icon_125323.png" +] Configuración]] + + | +
+ Imagen GIF con 3 links opcionales, acompañada de texto. + | ++ +```md + +[[image [ + "https://i.imgur.com/xL3UgP6.gif", + "http://i.redd.it/ibw4tcsb00wx.gif", + "http://moviecitynews.com/wp-content/uploads/2013/06/Steven-Seagal-dancing.gif" +] Steven Seagal bailando en Rusia]] + +``` + + | ++ +[[image [ + "https://i.imgur.com/xL3UgP6.gif", + "http://i.redd.it/ibw4tcsb00wx.gif", + "http://moviecitynews.com/wp-content/uploads/2013/06/Steven-Seagal-dancing.gif" +] Steven Seagal bailando en Rusia]] + + | +
Descripción | +WMarkDown | +Resultado | +
---|---|---|
+ Ejemplo de múltiples imágenes, donde la primera tiene un Link secundario, cada uno + con sus textos. + | ++ +```md + +[[images + ["https://i.ytimg.com/vi/J-YXLy9Lc7Y/maxresdefault.jpg", "https://images-na.ssl-images-amazon.com/images/I/61nwQasys5L._SY355_.jpg"] Classixx NYC + https://images-na.ssl-images-amazon.com/images/I/61nwQasys5L._SY355_.jpg Classixx, sesión de Youtube. + https://i.ytimg.com/vi/BeuWg4jdYaY/maxresdefault.jpg Classixx mixmag +]] + +``` + + | ++ +[[images + ["https://i.ytimg.com/vi/J-YXLy9Lc7Y/maxresdefault.jpg", "https://images-na.ssl-images-amazon.com/images/I/61nwQasys5L._SY355_.jpg"] Classixx NYC + https://images-na.ssl-images-amazon.com/images/I/61nwQasys5L._SY355_.jpg Classixx, sesión de Youtube. + https://i.ytimg.com/vi/BeuWg4jdYaY/maxresdefault.jpg Classixx mixmag +]] + + | +
WMarkDown | +HTML | +Resultado | +
---|---|---|
+ +```md + +Este es un párrafo +que continúa, aun a pesar de ser otra línea, +y que sigue continuando por aquí. + +Este ya es otro párrafo pues se separa del anterior mediante dos saltos de línea. + +``` + + | +
+
+```html
+
+ Este es un párrafo +que continúa, aun a pesar de ser otra línea, +y que sigue continuando por aquí. + +Este ya es otro párrafo pues se separa del anterior mediante dos saltos de línea. + +``` + + |
+
+ Este es un párrafo que continúa, aun a pesar de ser otra línea, y que sigue continuando por aquí. +Este ya es otro párrafo pues se separa del anterior mediante dos saltos de línea. + |
+
WMarkDown | +Resultado | +
---|---|
+ +```md + +# Ejemplo de Quote + +Este es un párrafo normal. + +> Este párrafo de aquí es un *Quote*. +Sigue las mismas normas que un párrafo normal. + +Este es otro párrafo normal. + +>> Este es un *Quote* con mayor tabulación. + +``` + + | +
+
+Ejemplo de Quote+ +Este es un párrafo normal. + +> Este párrafo de aquí es un *Quote*. +Sigue las mismas normas que un párrafo normal. + +Este es otro párrafo normal. + +>> Este es un *Quote* con mayor tabulación. + + |
+
WMarkDown | +HTML | +Resultado | +||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+ +```md +[! style="width:100%;" +Esto es un comentario y se ignorará de la tabla. +|^Cabecera|ejemplo1|ejemplo2|ejemplo3|ejemplo4|ejemplo5 +|tupla1 |dato1 |dato2 |dato3 |dato4 |dato5 +|compacto|dato1|dato2|dato3|dato4|dato5 +|colspan|dato1|||dato 2, 3 y 4|dato5 +|_pie|||||Esto es el pie de tabla. +!] +``` + + | +
+
+```html
+
|
+ + +[! style="width:100%;" +Esto es un comentario y se ignorará de la tabla. +|^Cabecera|ejemplo1|ejemplo2|ejemplo3|ejemplo4|ejemplo4 +|tupla1 |dato1 |dato2 |dato3 |dato4 |dato5 +|compacto|dato1|dato2|dato3|dato4|dato5 +|colspan|dato1|||dato 2, 3 y 4|dato5 +|_pie|||||Esto es el pie de tabla. +!] + + | +