WMarkDown WMarkDown

Menu
Content
Por KyMAN. Creado a fecha 2021/06/28. Última modificación a fecha 2021/06/28.

WMarkDown

Por KyMAN. Creado a fecha 2021/06/29. Última modificación a fecha 2021/06/29.

Proyectos

Los siguientes proyectos hacen uso de WMarkDown de forma reconocida por sus autores y verificado por el equipo de WMarkDown.

NOTA: Con el paso del tiempo puede que alguno de estos proyectos deje de funcionar o de estar activo así como evolucionar y dejar de hacer uso de esta herramienta sin que el equpo de WMarkDown lo sepa por lo que puede haber algún error, aunque se intentará que no los halla.

Los siguientes proyectos son de los que WMarkDown se sirve para existir.

Por KyMAN. Creado a fecha 2021/05/02. Última modificación a fecha 2022/04/02.

Bugs

Aquí se documentarán todos los Bugs encontrados hasta la fecha y se determinará si está arreglado o no. También pueden salir en los objetivos de los miembros del proyecto. Los Bugs que aparecen solo serán los reportados o los encontrados por el propio equipo durante el desarrollo, pruebas o funcionamiento del mismo.

La gestión de realización de los Bugs siguer el mismo patrón de los objetivos, donde cada Checkbox es cada uno de los miembros de Whalers: Tarsier y KyMAN consecutivamente.

Hash Alphabet bloqueado por Array

Si estableces un Array de caracteres en el Hash Alphabet, el método WMarkDown::get_hash se bloquea. Con esto también se vio el riesgo que supone permitir cualquier tipo de caracter por lo que para arreglar esta observación es importante generar un limitador de caracteres que puede partir una vez cargadas las configuraciones dejando al parámetro "hash_alphabet" como un parámetro global privado de la configuración ya gestionado.

  • Arreglar el bloqueo por Array del "hash_alphabet".
  • Gestionar de forma global los caracteres del "hash_alphabet".

Formatos sin escapes

Cuando queremos poner un guión bajo u otro caracter usado para formatos de línea, éstos son substituídos, cuando hay un par, por el formato en cuestión. Requieren de un sistema de escape urgente pues están dañando la sintaxis del texto.

- Escapar caracteres de formato y de línea.

Bloque de código no reconocido

Existe un problema a la hora de interpretar un bloque de código, en este caso en el fichero de FAQ, donde hay dos bloques y toma al primero como párrafo, lo que elimina el formato de los bloques siguientes.

- Arreglar el problema de los bloques de código.

El problema estaba en que no seleccionaba el primer bloque, sino el último.

Fallo de escape de estilos

Los escapes de los estilos salen reflejados también en el menú. También fallan los niveles ante la inclusión de ficheros por herencia del último nivel utilizado.

  • Corregir en el menú los escapes de los estilos.
  • Corregir niveles heredados.
Parte de los Bugs se ven por la librería del Syntax Highlighter actual.

Fallo última línea CodeBlocks

A veces desaparece la última línea en los CodeBlocks.

- Encontrar y corregir el Bug.

El problema residía en el Scroll Hidden del elemento padre del bloque de código en SCSS.

Click central imágenes multimedia

Cuando hacemos Click con el botón central del ratón nos da un error en la página que incluso nos llega a salir de la vista actual y en ocasiones, no dejando regresar con el Back.

- Arreglar el botón central de los elementos multimedia.

Anidación listado numérico

Hay un Bug en la anidación de listado numérico cuando éste es con más de un caracter Hash, dando como título dicha línea. Un ejemplo puede ser el siguiente:

                    
  • Language md
  • Lines 10
  • Characters 152
Lista numérica con anidación con Bug: # elemento1. # elemento2. ## Elemento2.1 ## Elemento2.2 ## Elemento2.3 # elemento3. # ... # elementoN.

En este ejemplo, los elementos anidados en el punto 2 serán títulos dentro de una lista que continúa el orden numérico como si no estuvieran anidados, sino que pertenecieran al primer nivel de la lista.

- Arreglar el problema de anidación.

wmd.php no tira a la primera

El archivo "wmd.php" no tira a la primera, es como que requiere de que exista el "html.files.json".

- Arreglar este problema.

Hay un evento que se genera automáticamente con ECMA que determina si se cargó correctamente el logo o no. En caso de no haber sido cargado correctamente, éste desaparecerá. El caso es que no funciona.

Arreglar el Bug.

NOTA: El problema se encontraba en que el evento se generaba una vez se cargaba la página Web, con el problema consiguiente de que ya pudo haber saltado el evento de carga de la imagen y por tanto, no afectar realmente al estado del mismo. Para solucionarlo lo que había que hacer es crear un objeto Image el cual tenga el mismo SRC y aplicarle el evento a éste y los efectos al original.
                    
  • Language js
  • Lines 10
  • Characters 407
const logo = wmarkdown.querySelector(".logo img"), temporary_image = new Image(); logo.setAttribute("data-status", "loading"); temporary_image.src = logo.getAttribute("src"); temporary_image.addEventListener("load", event => logo.parentNode.setAttribute("data-status", "ok")); temporary_image.addEventListener("error", event => logo.parentNode.setAttribute("data-status", "error"));

20221012 - filegetcontents directory

Hay un error en la actual línra 229 del fichero /PHP/WMarkDown.php en la cual se determina que se está intentando hacer una lectura de un directorio como fichero.

                    
  • Language php
  • Lines 6
  • Characters 218
public function load_file($path){ foreach(["", $this->root, $this->wmarkdown_root] as $root) if(file_exists($file = $root . $path)) return file_get_contents($file); return null; }
  • Localizar el problema.
  • Arreglarlo.
                    
  • Language php
  • Lines 6
  • Characters 244
public function load_file($path){ foreach(["", $this->root, $this->wmarkdown_root] as $root) if(file_exists($file = $root . $path) &emp;&emp; !is_dir($file)) return file_get_contents($file); return null; }
Por KyMAN. Creado a fecha 2021/05/02. Última modificación a fecha 2022/04/02.

Objetivos

Aquí se incluirán los objetivos a realizar por los miembros del equipo, los Whalers, y se verán los objetivos que aún faltan por alcanzar, así como todos aquellos objetivos alcanzados.

Tarsier, KyMAN y angelus

Aquí ser pondrán dos columnas de Checkbox, las cuales indican, en el mismo orden en que está el título de este apartado, los objetivos a cumplir, es decir, el primer Checkbox sería para Tarsier, el segundo para KyMAN y el tercero a angelus.

  • Crear una cuenta GitHub.
    • Publicar el proyecto.
    • Poner el proyecto para ambos como desarrolladores.
  • Crear página de Crowdfounding
    • Añadir las direcciones de Crowdfounding.

Tarsier, KyMAN y/o angelus

Aquí pasa un poco como en el anterior caso, la diferencia es que con tal de que uno de los dos halla cumplido el objetivo llegaría para considerarlo completado.

  • Testear que todo esté correcto.
  • Mirar el funcionamiento de los Crypto Core QT o conseguir direcciones para Crowdfounding.
  • Colocar los logos de Tarsier.

Tarsier

  • Generar los estilos genéricos a partir de los estilos base que cree KyMAN.
  • Generar el logo del proyecto.
    • Vectorizarlo en entorno cuadrado (SVG).
    • Crear versión sólo negro y trasparente para fuente (SVG).
    • Crear versión a color 32x32 (PNG).
    • Crear versión a color 180x180 (PNG).
    • Crear versión a color 192x192 (PNG).
    • Crear versión a color 270x270 (PNG).
    • Crear versión a color 512x512 (PNG).
  • Establecer gama de colores en la configuración del SCSS acordes con el logo.
    • Cambiar colores/tonos del logo o del SCSS hasta que queden acordes e iguales.
    • Se pueden usar estrategias de contrarios y demás.
  • Montar los estilos responsitivos.
  • Montar SEO.

KyMAN

  • Renombrar todo el proyecto a WMarkDown.
  • Proponerle el sistema de Crowdfounding.
    • por direcciones independientes según cada parte y por lo que quiera colaborar el donante.
    • Direcciones únicas y luego suministramos o dividimos.
    • Aprobado.
  • Montar los estilos base.
    • Implementar fuentes.
    • Establecer los ficheros de SASS.
      • Se incluye la configuración SCSS.
    • Iconificar.
    • Dar formato final.
  • Montar los módulos:
    • Cabeceras.
      • Menú sobre cabeceras.
      • Anidar cabeceras según nivel en el menú.
        • No está anidado pero sí usa un sistema de niveles.
      • Ocultar y mostrar menús. Gestionar estilos.
    • Párrafos.
    • Formato de texto. Solo negritas y cursivas.
    • Bloques de código o contenido plano.
      • Identificar bloques de contenido plano.
      • Implementar Syntax Highlighter.
      • Implementar LaTeX, con seudónimo "Maths".
    • Checkbox, Radio Buttons y Ticks.
    • Listas.
      • Gestionar anidamientos en HTML sobre UL y OL.
      • Añadir gráfica de evolución sobre una lista con Checks.
    • Inclusión, implementación o importación de múltiples ficheros modo OnePage.
      • Establecer vínculo Hash y de fichero.
    • Quotes.
    • Implementar parámetros.
    • Links.
      • Links normales.
      • Links MarkDown.
      • Links MediaWiki.
      • Documentar.
    • Multimedia.
      • Los IFRAME no son gestionables desde CSS por CORS. Dependen de su contenedor.
      • Imágenes.
      • Vídeos.
        • Montar vídeos en single y múltiple.
        • Montar gestión del MIME en PHP y JS.
          • Montar gestión dinámica sin carga inicial de los MIME y las extensiones.
      • Vídeos sobre plataformas embedadas.
        • Youtube.
        • Vimeo.
        • Facebook.
          • Da problemas con certificados autofirmados.
        • Twitch.
          • Da problemas con certificados autofirmados.
      • Audios.
      • Audios sobre plataformas embedadas.
        • Soundcloud.
          • No puede agregarse a partir de la URL.
      • Sliders.
      • Gestionar "NOSCRIPT" para SEO en los IFRAME.
      • Cambiar punto de montaje de los Media a un Módulo completo independiente.
    • Crear sistema de diccionarios para las páginas.
      • Montar gestión de palabras sobre TextNodes.
      • Gestionar ignorador de espacios.
      • Gestionar GUI de búsqueda.
        • Corregir Scroll.
      • Aplicar resultados de patrones a los resultados.
      • Gestionar múltiples diccionarios.
        • Inicialmente, pensando en anidaciones.
    • Montar Módulo de escapes.
  • Implementar.
    • Sistema de gestión de diagramas.
      • Elijo Mermaid contra JS, su versión original por ser un resultado HTML.
    • Syntax Highlighter.
      • Elijo "highlighter.js", una librería ligera, abierta y gratuíta para JS en navegador.
    • Implementar intérprete de LaTeX.
  • Montar el fichero JSON para gestión de eliminación de ficheros para actualizarlos.
    • Gestionar idiomas a partir de un elemento del Path.
    • Montar opción de "delete" para Git y así no montar ni JSON y HTML en Git.
      • Sería opcional y para que no halla conflictos Merge en Git.
  • Cambiar de un sistema de diccionario a un sistema vectorial el parámetro de la configuración "default_modules".
    • Se requiere por compatibilidad de orden con otros medios como Python.
  • Montar textos para el HTML base.
  • Establecer sistema para los SEO Metas contra el HTML base.
  • Añadir sistema de comentarios, Likes y visualizaciones.
    • Gestionar el SQLite.
    • Gestionar PHP.
      • Gestionar los procedimientos almacenados (Servicios).
      • Gestionar controladores.
      • Gestionar JS.
    • Gestión de visitas.
    • Gestión de usuarios.
    • Gestión de Likes.
    • Gestión de comentarios.
  • Documentar instalación del GitLab contra un Proxy Nginx externo.
  • Generar un archivo PHP Updater.
    • Ha de Checkar nuevas versiones completas desde Git.
    • Ha de Checkar que si hay versiones nuevas para compilar la documentación.
    • *Sistema diseñado a partir de la idea de inoro.*
  • Añadir los ficheros de los componentes externos al CDN.
  • Externalizar en todos los proyectos que deriven de éste todos los parámetros de configuración a Secrets como Common.
    • Esto permitirá compatibilizar proyectos locales con los de los servidores.
    • La idea es que solo halla que hacer "git pull" en los servidores.
  • Montar sistema de descarga en documento de la información en los siguientes formatos.
    • Texto plano.
    • WMarkDown.
    • HTML.
    • XML.
    • MySQL (MariaDB).
    • SQL Server.
    • SQLite.
    • DOC
    • ODT
    • PDF
  • Documentar:
    • Secrets.
    • Implementación.
    • Creación de un complemento.
  • Montar Padding al contenido siguiendo la idea de inoro.
  • Aplicar I18N contra entorno de variables PHP.
  • Montar detector y cambiador de Versión Móvil.
  • Montar responsitividad por rangos en el lado más estrecho.
  • Montar modificador de tamaño de letra.
  • Montar el ScriptsAnalyzer.
    • Montar el analizador de Scripts:
      • PHP.
      • JS/ECMA.
      • Python.
      • SQL (MariaDB, SQLite y SQL Server).
      • C#.
    • Montar Paths excluídos.
    • Montar Paths incluídos.
  • Añadir Script automático para dar Status al logo (loading, error, ok).
  • Quitar el HTML resultante de la compilación del WMD y precompilar en el servidor.
    • El objetivo es que se vea claramente, en el Git, el porcentaje de código real.
  • Arreglar el Bug 20221012.
  • Agregar el Pusher.

angelus

- Completar documentación haciendo de mano inocente.

Files