langage de balisage leger mentor es

Lenguaje de marcado ligero Mentor

volver a la página de inicio

versión disponible en : en it ru zh ja de nl pt fr

fecha de creación : 20220620- fecha de actualización : 20220620- fecha de generación : 20240612_171241

1.Lbl mentor

Este documento es la especificación del Lenguaje de Marcado Ligero del Sistema Mentor - conocido como LBL Mentor.
El objetivo de este lenguaje es François_Xavier_Pincemin diseñador y desarrollador del sistema Mentor.

2.Introducción al lenguaje de marcado ligero Mentor

  • el lenguaje de marcado ligero de mentor es un lenguaje de marcado mínimo para manejar el hipertexto a través del módulo utags del sistema mentor en un entorno gvim/vim - cf vim_org.
  • el módulo mt_to_htm del sistema mentor genera un documento HTML a partir del texto fuente del mentor.
  • por lo que si está leyendo este texto en una página HTML, podría leer el texto fuente en un simple editor.
  • pero obviamente es sólo el editor gvim/vim el que le dará el beneficio de utags, por varias razones :
  • La forma general del texto es una encapsulación de . bloc de texte  o . bloc structurel .
  • El . bloc structurel  define las etiquetas y referencias del hipertexto.

    2.1.Presentación de la forma de hipertexto

    2.1.1.Bloque de texto

    El bloque de texto es la estructura bajo la cual se almacena un texto.

    - Se compone de cuatro tipos de elementos delimitados por pares de delimitadores < >, ( ), { } y [ ]

  • una etiqueta de hipertexto o etiqueta puesta entre los delimitadores "<" et ">", dijo . etiquette mentor  que sólo puede contener caracteres alfanuméricos con el carácter de subrayado "_" como separador - un posible . résumé de bloc  o . commentaire mentor  poner entre paréntesis "( )",
  • el propio texto, encerrado entre llaves "{ el texto }" que es el bloque de texto real.
  • referencias de hipertexto (a las etiquetas de los mentores) de la forma [une_reference_es] que se utilizan en el texto contenido en los bloques de texto

    2.1.1.1.Bloque estructural

    Por lo tanto, tenemos una forma general:

    <etiquette_de_bloc_es>(título) [une_reference_es]
    {
    ...
    ... [une_reference_es] ...
    ...
    <etiquette_de_sous_bloc_es>(etiqueta del sub-bloque)
    {
    ...
    ... [une_reference_es] ...
    ...
    ... <etiquette_dans_texte_es> ... ... ... <une_reference_es>(es la etiqueta del ejemplo de una referencia de hecho)
    ...
    ... [une_reference_es] ...
    ...
    etc....
    }
    }

    que, por lo tanto, pueden anidarse: Un bloque de texto puede contener otros bloques de texto.
    Un bloque particular es el bloque de todo el archivo cuya línea de etiqueta contiene:

  • la etiqueta del nombre del archivo - el título del archivo en el comentario del bloque - una referencia al resumen del archivo.
    Por lo tanto, la forma de la etiqueta del archivo es <>(una referencia)[] .

    
    - por ejemplo para un archivo llamado filename.ext en una :  


    <nomfichier_extension_es>(título del archivo)[nomfichier_extension_es_som]
    la macro para generar esta línea es fnt_es para un archivo de texto.
    Hay otras macros: fnc para una fuente C, fns para un shell unix, etc....

  • uno . commentaire de bloc  donde el paréntesis de apertura va seguido de dos puntos ":" indicará que concatenamos la etiqueta mentor y su comentario en la etiqueta HTML.


    ejemplo : <nomfichier_extension_es>(: título del archivo) que da en el html:

    2.1.1.2.. nomfichier extension : título del archivo En caso contrario, es el comentario el único que se edita en el HTML:

    ejemplo : <nomfichier_extension_es>(título del archivo) que da en el html:

    2.1.1.3.Título del archivo Mentor desarrolla el concepto de infijo, que es generalmente un código de 3 letras que, si está presente en una etiqueta, será interpretado durante la generación de html como un texto que debe ser reemplazado si el infijo está presente en el archivo infijo llamado infix.
    lst y presente en el directorio de trabajo del programa utags.
    El infijo es la generalización de los conceptos de prefijo y sufijo.

    Por ejemplo : <nom_spe_es>(nombre especial) lo que resulta en :

    2.1.1.4.Nombre especial

    La sustitución se realiza de forma que el texto sustituido se coloca al principio del título para la versión francesa y al final para la versión inglesa.

    especialización de los bloques de texto

    El carácter que sigue al paréntesis inicial de un bloque de texto, si está presente, especifica el tipo de bloque.
    Este tipo será utilizado por diferentes módulos que complementan el módulo de gestión del hipertexto.

    2.1.2.Tablas de especificación de bloques

    carácter  nombre  significado del bloque de texto (elogios)  comentario (soportes)  
    :  colon  bloque principal : el siguiente bloque especifica las etiquetas META  concatenación de la etiqueta y el comentario en el título HTML  
    =  signo igual  conservación de la forma del texto original, si se dobla == código fuente lbl    
    !  signo de exclamación  el texto mostrado en el HTML es la fuente del lbl en fuente fija    
    -  tiret  chips    
    `  backcote  balas numeradas    
    |  tubo  Comentario HTML, si está duplicado y no está presente en la página HTML    
    %  por ciento  texto generado en una tabla de dos columnas para el ejercicio de ortopedia    
    #  hash  especificación de la traducción por la API Deepl    
    ~  tilde  lectura asistida en una lengua extranjera (tooltip palabra traducida)    
     punto y coma  Bloque CSV    
    .  punto  comenta la especificación del bloque que no se mostrará en el HTML    
    nbr        
    carácter        
    10.000000      

    Tipos de bloques utilizados por el módulo generador de páginas HTML.


    - Los bloques generadores de viñetas estarán definidos por el carácter de guión : {- ... }.
    El nivel del chip se ajusta automáticamente por el nivel del bloque.
    Las fichas numeradas están definidas por bloques cuyo código es backcote {` ... }.
    ejemplos:

    
    {- niv1 lib1
     - niv1 lib2
       {- nivel 2 lib1
      - niv2 lib2
        {- niv3 lib1
        - niv3 lib2
        }
      - niv2 lib3
       }
     - niv1 lib3
    }
     y
    {` niv1 lib1
     - niv1 lib2
       {` nivel 2 lib1
      - niv2 lib2
      - niv2 lib3
      - niv2 lib4
       }
     - niv1 lib3
     - niv1 lib4
    }
    
    Esto da en HTML :

    y

    1. niv1 lib1
    2. niv1 lib2

      1. nivel 2 lib1
      2. niv2 lib2
      3. niv2 lib3
      4. niv2 lib4
    3. niv1 lib3
    4. niv1 lib4



    - Un bloque con un código igual a "=" generará un texto con la forma del bloque conservada (Etiqueta HTML PRE). El tipo de letra sigue siendo el predeterminado, que es proporcional.

    - Un bloque con un código igual a "==" también generará un texto con la forma del bloque retenido (Etiqueta HTML PRE) y también sin interpretación de las otras etiquetas LBL,
    el texto del bloque se copiará sin ningún análisis léxico. Este es el caso de este bloque. Para poder presentar en una página HTML la propia estructura del lenguaje.

    - Un bloque de tipo {! } generará un texto con la forma del bloque de texto retenido. ( Faro PRE ) con el uso adicional de una fuente fija (correo)
    esto es para preservar la alineación del texto en el caso de una copia en pantalla por ejemplo. Caso de los niveles superiores y la mesa de los planetas inferiores.

    - Un bloque de tipo guión bajo {| |} se interpretará como un comentario HTML. Vea la fuente HTML en este punto del texto.


    - Un bloque de tipo doble guión bajo {|| ||} se eliminará de la generación de HTML


    - Un bloque CSV estará definido por {; ... } Este bloque contiene una tabla de datos en la que el separador de columnas es el punto y coma.
    Se generará una tabla HTML y la cabecera definida por la especificación "CSV_COL:" al principio de la primera línea que contiene los nombres de las columnas
    se mostrará en el HTML en un color determinado (acero azul por defecto).

    ejemplo :

    
    <planète_tab_es>(ficha del planeta)
    {;
    CSV_REG:0       ;1          ;                2;           3;4          ;
    CSV_COL:Planetas;revolución ;Distancia_Sol Mkm; Diámetro km;Rotación   ;
    CSV_TYP:sN      ;s          ;               n0;          n0;s          ;
    Sol             ;           ;                0;     1392684;26 horas   ;
    Mercurio        ;88 j       ;               58;        4878;59 días    ;
    Venus           ;225 j      ;              108;       12104;243 días   ;
    Luna            ;28 j       ;              149;        3474;           ;
    Tierra          ;365.25 j   ;              149;       12756;24 horas   ;
    Marte           ;687 j      ;              228;        6794;24 h 1/2   ;
    Júpiter         ;12 años    ;              778;      142800;10 horas   ;
    Saturno         ;29 años    ;             1427;      120000;10 h 1/4   ;
    Urano           ;84 ans     ;             2870;       52400;15 h 1/2   ;
    Neptuno         ;164.86 ans ;             4497;       48000;16 horas   ;
    Plutón          ;247.74 ans ;             5913;        2400;6 días 1/3 ;
    }
    
    Esto da en la página HTML :

    2.2.Ficha del planeta

    Planetasrevolución  Distancia_Sol Mkm Diámetro kmRotación  
    Sol     0 139268426 horas  
    Mercurio  88 j   58 487859 días  
    Venus  225 j   108 12104243 días  
    Luna  28 j   149 3474  
    Tierra  365.25 j   149 1275624 horas  
    Marte  687 j   228 679424 h 1/2  
    Júpiter  12 años   778 14280010 horas  
    Saturno  29 años   1427 12000010 h 1/4  
    Urano  84 ans   2870 5240015 h 1/2  
    Neptuno  164.86 ans   4497 4800016 horas  
    Plutón  247.74 ans   5913 24006 días 1/3  

    2.3. Tipos de bloques CSV utilizados por el módulo de gestión de datos estructurados de la tabla CSV del sistema mentor.tipo de bloque csv


    - El bloque CSV visto anteriormente {; ... } es procesado por un módulo que garantiza el formato de la tabla. Al editar la tabla, el comando
    asignado a este módulo para remodelar la tabla, por lo que sólo tenemos que insertar los datos.

    - el tratamiento de los datos estructurados es posible en estos bloques de tablas CSV a través de un módulo de cálculo de tablas que es, por tanto, una hoja de cálculo.

    En esta hoja de cálculo, los comandos se especifican mediante líneas de especificación al principio de la tabla, que comienzan con una cadena que indica la naturaleza de la especificación.: "CSV_SPE: ; ; ;" o SPE es la especificación.

    Funciones de importación (CSV_IMP) y exportación de datos (CSV_EDT). Todo ello permite, por ejemplo, construir un ETL.


    Este módulo de cálculo podrá generar, según las especificaciones de cálculo de la tabla, bloques de edición {@ } con la especificación CSV_EDT
    o bloques de periódicos (hoja de detalles) { } (columna de tipo de registro).

  • este módulo proporcionará operaciones de SGBD que interconectan diferentes bloques CSV :

  • Por último, un lenguaje incluido en los bloques CSV "procedural" permitirá crear aplicaciones. Estas aplicaciones pueden ejecutarse por lotes fuera de una sesión de edición de gvim o en una sesión de edición de gvim en la que se utiliza gvim como interfaz gráfica.

  • este módulo de tratamiento de datos estructurados está en desarrollo y estará disponible en línea lo antes posible.

    3. Tipos de bloques de aplicación. Estos bloques están asociados a aplicaciones que surgen de forma natural del diseño del sistema..aplicación de tipo de bloque

    3.1.Lectura ortóptica en convergencia o divergencia


    - Un bloque del tipo 0enerará una página HTML con una tabla de dos columnas con el texto que se muestra en cada una de ellas para permitir su lectura junto con un ejercicio de ortopedia para la convergencia o la divergencia.

    Esta página presenta el texto por duplicado para que, al mismo tiempo que se lee, se pueda hacer un ejercicio de convergencia o divergencia ocular similar a los que realiza un ortoptista.

    Con la ventaja de que la ventana, y por tanto el esfuerzo de convergencia, puede dimensionarse sin necesidad de una serie de prismas de convergencia progresiva.

    Si la anchura de la página es pequeña, es fácil fusionar las dos imágenes; cuanto más ancha sea, más esfuerzo tendrán que hacer los músculos del ojo.

    Las dos imágenes pueden fusionarse de dos maneras: en convergencia y divergencia. La convergencia contrae los músculos y la divergencia los estira (músculos en extensión).

    Combinando las dos vías obtenemos una sesión ortóptica completa : trabajo de fortalecimiento muscular (musculación) y su relajación (estiramiento).

    La modulación de la anchura de la ventana corresponde a la sucesión de sesiones en las que utilizamos prismas cada vez más convergentes o divergentes, por lo que hay que ir poco a poco.

    He observado que la modulación de la anchura es continua y permite un mayor rendimiento del sistema ocular, sobre todo en divergencia. (relajación de los músculos).

    Ver en el HTML generado :

    Esta página presenta el texto por duplicado para que, al mismo tiempo que se lee, se pueda hacer un ejercicio de convergencia o divergencia ocular similar a los que realiza un ortoptista.

    Con la ventaja de que la ventana y, por tanto, el esfuerzo de convergencia pueden ser dimensionados sin necesidad de una serie de prismas de convergencia progresiva.

    Si la anchura de la página es pequeña, es fácil fusionar las dos imágenes; cuanto más ancha sea, más esfuerzo tendrán que hacer los músculos del ojo.

    Las dos imágenes pueden fusionarse de dos maneras: en convergencia y divergencia. La convergencia contrae los músculos y la divergencia los estira (músculos en extensión).

    Combinando las dos vías obtenemos una sesión ortóptica completa : trabajo de fortalecimiento muscular (musculación) y su relajación (estiramiento).

    La modulación de la anchura de la ventana corresponde a la sucesión de sesiones en las que utilizamos prismas cada vez más convergentes o divergentes, por lo que hay que ir progresivamente.

    He observado que la modulación de la anchura es continua y permite un mayor rendimiento del sistema ocular, sobre todo en divergencia. (relajación de los músculos).

    Comience con la anchura más pequeña de la ventana y amplíe gradualmente.

    Esta página presenta el texto por duplicado para que, al mismo tiempo que se lee, se pueda hacer un ejercicio de convergencia o divergencia ocular similar a los que realiza un ortoptista.

    Con la ventaja de que la ventana y, por tanto, el esfuerzo de convergencia pueden ser dimensionados sin necesidad de una serie de prismas de convergencia progresiva.

    Si la anchura de la página es pequeña, es fácil fusionar las dos imágenes; cuanto más ancha sea, más esfuerzo tendrán que hacer los músculos del ojo.

    Las dos imágenes pueden fusionarse de dos maneras: en convergencia y divergencia. La convergencia contrae los músculos y la divergencia los estira (músculos en extensión).

    Combinando las dos vías obtenemos una sesión ortóptica completa : trabajo de fortalecimiento muscular (musculación) y su relajación (estiramiento).

    La modulación de la anchura de la ventana corresponde a la sucesión de sesiones en las que utilizamos prismas cada vez más convergentes o divergentes, por lo que hay que ir progresivamente.

    He observado que la modulación de la anchura es continua y permite un mayor rendimiento del sistema ocular, sobre todo en divergencia. (relajación de los músculos).

    Comience con la anchura más pequeña de la ventana y amplíe gradualmente.

    3.2.Traducción de textos con la api deepl

    - Un bloque de tipo hash "#" {.#en:fr: } provoca la traducción en el propio texto de origen.

  • Los códigos lingüísticos utilizados son los de dos letras, la primera es la lengua de origen y la segunda la de traducción.
  • La traducción se realiza mediante una utilidad que llama alapi_deepl.
  • La traducción puede realizarse para un bloque de texto dentro de un (el texto original se sustituye por)
  • o para un archivo completo, en cuyo caso se crea un nuevo archivo cuyo nombre es el del archivo original al que se añade el sufijo de idioma.
  • Las etiquetas no se traducen y se añade el sufijo de la lengua de traducción.
  • Si no hay ningún comentario de la etiqueta, ésta se utiliza para generar un texto que se traducirá.
  • De esta manera mantenemos el enlace (con la declinación de diferentes sufijos de la lengua de traducción) introduce el archivo en el idioma original y los distintos archivos en el idioma de traducción.
  • Una vez realizada la traducción, la especificación de la traducción se comenta con la inserción de un punto "." como modificador de bloque.
  • Por ejemplo, la siguiente línea está siempre en inglés :

    3.2.1.Lectura asistida en una lengua extranjera


    - A tilde type block "~" is used for foreign language reading assistance.

    - The translation specification follows the tilde character example : {~es:fr: hello the world }
    <lecture_aidée_en_langue_étrangère_en>(assisted reading in a foreign language)
    Esto resulta en palabras subrayadas con puntos en la página html que tienen un tooltip que contiene la palabra traducida.

    hola el mundo

    diccionario inverso : {~fr:es: hello world }

    hola mundo

    Se ofrece como ejemplo un diccionario español-francés de aproximadamente 26.000 palabras. El usuario puede instanciar otros diccionarios.
    El usuario puede compartirlas reenviándolas al editor para que las integre en el paquete de utags.
    Si no hay un diccionario, se puede crear un diccionario de un texto mediante un comando mentor y luego se puede traducir la lista de palabras del diccionario por un traductor como deepl

    3.2.2.Ejemplo la letra de la canción la cucaracha

    
    
    

    la cucaracha, la cucaracha que ya no puede caminar porque no tiene porque le falta la marijuana que fumar

    en la misa y en la feria todo el mundo ya lo sabe los que llegan al gobierno porque se puede comprar

    del partido comunista ya no queda casi nada ahora todos van buscando como hacerse millonadas

    fue la junta de naciones pa' poner sus opiniones todos no estaban de acuerdo donde y cuando bombardear se sientan los presidentes en la silla del gobierno luego mandan a la guerra a la gente de su pueblo

    la cucaracha, la cucaracha que ya no puede caminar porque no tiene porque le falta la marijuana que fumar

    huaracha muchacha que vamoa huarachar va una cucaracha que quiere comerciar, toca, loca ábreme la boca, buscame una coca que no quiero trabalear, mica, rica para zapatear,

    pido a victor jara no me vaya a doblegar, Cha-ma Chama Che Guevara una petición, una cucaracha, por culpa y omisión,

    la cucaracha, la cucaracha que ya no puede caminar porque no tiene porque le falta la marijuana que fumar

    todos se pelean la silla que les deja mucha plata en el norte pancho villa y en el sur viva Zapata!

    ya murió la cucaracha ya la llevan a enterrar entre cuatro zopilotes y un ratón de sacristan

    3.3.Tipos de etiquetas especiales


    - Una etiqueta del tipo <_file> generará una referencia HTML a un.
    - ejemplo :
    <lien_document_local_es_file>(/home/me/Documents/document.pdf)

    - Una etiqueta del tipo <_web> generará una referencia HTML a la red.
    - ejemplo :
    <alwaysdata_es_nweb>(www.alwaysdata.com)

    - si el infijo es "nweb" en lugar de "web" Haga clic en el enlace para abrir una nueva pestaña en el navegador.

    <alwaysdata_es_nweb>(www.alwaysdata.com)
    que da en el html : alwaysdata o lien_vers_alwaysdata_dans_un_nouvel_onglet

  • si el infijo es "webs" o "nwebs" el enlace será https en lugar de http.


    - Una etiqueta del tipo <_hil> para "html_inline" indica tomar el código html contenido en el bloque y añadirlo
    directamente a la página html. Se utiliza en casos especiales para generar automáticamente páginas HTML más especializadas que el simple texto
    o para incluir hojas de estilo.

    3.4.Gestión de los caracteres en negrita

    - Texto entre paréntesis seguido de un signo de exclamación (! aparecerá ) y la hierba.
    - ejemplo : (! texte en gras ) :
    texte en gras