WDictionaries/WMD/es/build.w.md

179 lines
9.2 KiB
Markdown
Executable File

[[post_data {
"author" : "Tarsier y KyMAN",
"since" : 20210623,
"version" : 20210624
}]]
# ¿Cómo montar un diccionario?
Los diccionarios no son más que meros ficheros JSON con una estructura muy concreta, la cual es la
siguiente:
- **pattern** *(required)*: Patrón o patrones regulares por los cuales buscar la o las palabras
concretas.
- **result** *(required)*: Resultado o resultados formatados de los patrones.
- **words** *(optional)*: Palabras con las que aparecer en el buscador de palabras del diccionario.
- **description** *(required)*: Descripción de la palabra o palabras.
- **links** *(optional)*: Links a las fuentes que se consideren para corroborar o ampliar
información al respecto.
El campo *pattern* puede ser un campo de tipo String para un único patrón, o de tipo Array para uno
o más patrones regulares. Las Expresiones Regulares están encapsuladas entre Backslashes y pueden ir
acompañadas de modificadores por el estándar de JavaScript.
> **IMPORTANTE**: Las Expresiones Regulares están en un String, por lo que el uso del caracter
Slash, tanto para su uso como para sus escapes, requiere de ser autoescapado, y hay que contar que
éste también requiere de escape para las RE.
Acerca del campo *result*, éste puede ser un String o un Array, siguiendo el tipado del campo
*pattern*, y en el caso de ser un Array, ha de tener un resultado por cada patrón que tenga. Los
resultados pueden trabajar las variables de las Expresiones Regulares del campo *pattern*,
entendiendo las variables por el estándar de las Expresiones Regulares de JavaScript, aquellas
encapsulaciones entre paréntesis que no vengan precedidas por un operador "?", siendo éstas un Array
el cual, cada posición representacada una de las variables, y donde su posición 0 el recurso
completo. Para poder identificar dentro del String de resultado una variable acorde a su Expresión
Regular se usará el caracter "$" seguido del número al que se quiera hacer referencia, de esta forma
podemos incluso hacer correcciones sintácticas o de escritura de un concepto concreto.
> **IMPORTANTE**: El trabajo con las variables solo se puede hacer con las primeras 10 variables
entendiendo que vas desde la variable 0 hasta la 9.
El campo de *words* solo es necesario cuando el campo *result* trabaje alguna variable del campo
*pattern* pues si no se especifica el campo *words*, por defecto saldrán como palabras en el
buscador de conceptos del campo *result*, pero si se establece el campo *words* sólo saldrán las de
este último campo.
El campo *description* permite establecer un texto que describe y define el concepto. Se puede hacer
uso de HTML, y para estructurar correctamente un JSON, éste puede ser un Array de Strings, un String
vacío dictamina un cambio de párrafo. En sí, el texto se engloba automáticamente en párrafos
siguiendo el concepto del String vacío en un Array.
Finalmente, el campo *links* provee de enlaces con información y fuentes acerca del concepto que se
esté trabajando. Puede que un concepto no tenga Links por el hecho de ser un concepto propio o no
haberse encontrado una fuente acorde al mismo.
## Ejemplo
Un ejemplo sencillo de cómo crear un diccionario podría ser el siguiente:
```json
[{
"pattern" : "/\\btarsi(er)?s?\\b/gi",
"result" : "Tarsier",
"description" : "Algo de todo",
"links" : "https://git.k3y.pw/Tarsier/"
}, {
"pattern" : "/\\b[kcq](y|ai)man\\b/gi",
"result" : "KyMAN",
"description" : "Desarrollador.",
"links" : [
"https://kyman.k3y.pw/",
"https://git.k3y.pw/KyMAN/",
"https://git.a3do.net/KyMAN/",
"https://www.youtube.com/channel/UCCAWOt-AxTyAiFWBgyb3X9Q",
"https://github.com/0KyMAN0"
]
}, {
"pattern" : "/\\b(c)osa(s)? ?inventadas?\\b/gi",
"result" : "$1osa$2 inventada$2",
"words" : "Cosas inventadas",
"description" : "Pues vamos, que tenemos mucha imaginación..."
}, {
"pattern" : ["/\\bw(halers)?[ \\-_\\.]?markdown\\b/gi", "/\\bw(\\. ?)?m(\\. ?)?d(\\. ?)?\\b/gi"],
"result" : ["WMarkDown", "WMD"],
"description" : [
"Conjunto de librerías que mezclan lenguajes de marcas de MediaWiki y MarkDown con ",
"algunas correcciones y customizaciones.",
"",
"Simplifica mucho a la hora de documentar cosas."
],
"links" : [
"https://wmarkdown.k3y.pw/",
"https://git.k3y.pw/Whalers/WMarkDown"
]
}]
```
En este ejemplo hemos descrito 4 conceptos: _Tarsier_, _KyMAN_, _algo incentado_ y _WMarkDown_. En
el caso de _Tarsier_, que también es llamado _Tarsi_, y como puede ser un animal pues podría darse
el caso de tener plural, se le corrige la letra capital de nombre propio, se completa el diminutivo
_[[ignore Tarsi]]_ y se le elimina el plural por tratarse en este caso de un nombre propio y no de
más de un [[ignore tarsier]]; Continuando con _KyMAN_, nos encontramos que aquí se entiende que el
sonido _caiman_ o _quiman_ es referido a _KyMAN_ mientras que el sonido _caimán_ será el animal, y
corrige todas las posibilidades ocurridas en el momento sobre el sonido _caiman_ o _quiman_ sobre el
nombre _KyMAN_ (No admite plurales, excluyendo éstos), y el cual tiene más de un Link; el concepto
de _cosa inventada_ corrige su letra capital y considera la opción de que pueda ser plural o
singular a partir de la "S" de plural de "cosas", y especifica las palabras nativas para su muestreo
en la tabla de búsqueda de conceptos del diccionario, y donde podemos ver que no tiene ningún Link
por el hecho de ser algo inventado; y finalmente tenemos el concepto de _WMarkDown_ donde tenemos
dos formas de llamarlo y por tanto de resultados, con una descripción más extensa, con dos párrafos
definidos por un separador de un String vacío.
> **NOTA**: En el caso de _WMarkDown_ se corrige también la posibilidad de incluir el origen de la
"W", que viene siendo el proyecto _Whalers_. También quitiamos la posibilidad de siglas.
> **IMPORTANTE**: Es importante saber que el fichero solo constará del texto que se le dé, no
pudiendo poner textos alternativos como pudiera ser en un gestor de idiomas. Para dichos casos se
requerirá la creación de tantos ficheros como idiomas. También permite la división del contenido
como pudimos ver en el apartado de como llamar a los diccionarios.
## ¿Cómo iconificar un enlace?
Si te haces esta pregunta es porque estarás en un entorno de WMarkDown donde los enlaces son unos
círculos blancos vacíos donde algunos tienen un icono del sitio concreto como puede ser GitLab,
Wikipedia u otros. Si este es el caso decir que se hace en el propio WMarkDown o añadiendo un CSS
tal como se muestra a continuación:
<table style="width:100%;">
<thead>
<tr>
<th style="width:50%;">SASS (SCSS)</th>
<th style="width:50%;">CSS</th>
</tr>
</thead>
<tbody>
<tr>
<td>
```scss
.wmarkdown{
[data-site=wikipedia_org],[data-site=es_wikipedia_org],[data-site=en_wikipedia_org]{background-image : url("https://wikipedia.org/static/apple-touch/wikipedia.png");}
[data-site=git_a3do_net],[data-site=git_k3y_pw]{background-image : url("https://about.gitlab.com/ico/favicon-192x192.png");}
[data-site=youtube_com],[data-site=www_youtube_com]{background-image : url("https://www.youtube.com/s/desktop/c20c1e6c/img/favicon_144.png");}
[data-site=www_mediawiki_org]{background-image : url("https://www.mediawiki.org/static/apple-touch/mediawiki.png");}
[data-site=github_com]{background-image : url("https://github.com/fluidicon.png");}
}
```
</td>
<td>
```css
.wmarkdown [data-site=wikipedia_org],.wmarkdown [data-site=es_wikipedia_org],.wmarkdown [data-site=en_wikipedia_org]{background-image : url("https://wikipedia.org/static/apple-touch/wikipedia.png");}
.wmarkdown [data-site=git_a3do_net],.wmarkdown [data-site=git_k3y_pw]{background-image : url("https://about.gitlab.com/ico/favicon-192x192.png");}
.wmarkdown [data-site=youtube_com],.wmarkdown [data-site=www_youtube_com]{background-image : url("https://www.youtube.com/s/desktop/c20c1e6c/img/favicon_144.png");}
.wmarkdown [data-site=www_mediawiki_org]{background-image : url("https://www.mediawiki.org/static/apple-touch/mediawiki.png");}
.wmarkdown [data-site=github_com]{background-image : url("https://github.com/fluidicon.png");}
```
</td>
</tr>
</tbody>
</table>
> **IMPORTANTE**: Los enlaces se formatean automáticamente quitando el protocolo y dejando solo
hasta el raíz de la URL, substituyendo cualquier caracter fuera del rango de la A-Z y de cualquier
dígito por guiones bajos. En caso de duda de como saldría, siempre queda la opción de inspeccionar
elemento.
[[html_data {
"title" : "WDictionaries - Manual",
"url" : "https://wmarkdown.k3y.pw/es/build.html",
"author" : "Tarsier, KyMAN, angelus",
"since" : 20210623,
"version" : 20210624,
"key_words" : "Whalers,MarkDown,MediaWiki,WMarkDown,dictionary,wdictioaries,manual,crear,construir",
"description" : "Manual del WDictionaries.",
"project" : "WDictionaries",
"logo" : "https://wdictionaries.k3y.pw/images/logo.png"
}]]