Secciones de la página

htm. tol


Declaraciones


Funciones


Time oriented language


Árbol de ficheros

Funciones

Text HtmAsc2Xml()

Text Htm2Ide()

Text HtmPutLinks()

Text HtmPutCharts()

Tol

Artículos del sitio

Presentación de Tol

Todos los programas

Simuladores visuales

Sitios que me gustan

Por categorías

Algoritmia

Búsqueda y ordenación

Computación fisiológica

Editorial y edición

Gráficos de datos

Herramientas y utilidades

Hipertexto

Informática forense

Lectura óptica de datos

Metaprogramación

No determinista

Ofimática

Recursión e iteración

Reglas y restricciones

Series y estadística









htm.tol de Dct.Writer

Funciones de basicas de Html (HyperText Markup Language).

Declaraciones

Funciones

  • Text HtmAsc2Xml(Text codInp)
    Retorna el codigo resultado de reconvertir &, < y >.
  • Text Htm2Ide(Text prgNam, Text lblTxt, Real makLow)
    Retorna una etiqueta de texto convertida en identificador Html, por ejemplo, para utilizarse en un <a name></a>. Un idetificador ha de empezar por letras A..Z o a..z y seguir por letras, numeros 0..9 o subrayador, menos, dos puntos o punto. Esta funcion solo conserva las letras y numeros en su posicion y cualquier otro caracter lo cambia por el subrayador. Dependiendo del parametro makLow lo pasa todo a minusculas. Si no empieza por letra le antepone una X.
  • Text HtmPutLinks(Text codTxt, Set lnkTab, Text opeSep)
    Retorna un codigo Html resultado de ponerle links a determinados palabras que son identificadores. Los identificadores se delimitan por determinados caracteres, por ejemplo, blanco, coma, punto, 2 puntos en el caso del lenguaje escrito, mas, menos, slash en el caso de matematicas o codigo. De esta forma si recibe como identificador agua no se lo pone a paraguas. En sensible a mayusculas y minusculas. Los operadores se reciben como un texto y cada caracter es un operador. Si el texto de operadores es vacio asume una lista estandar. Si la tabla de etiquetas y links es vacia, no hace nada.
  • Text HtmPutCharts(Text codTxt)
    Si hay graficos online inserta las instrucciones para que se vean. Si no hay graficos online retorna el mismo codigo Html que recibe como parametro.

Funciones

Text HtmAsc2Xml()

//////////////////////////////////////////////////////////////////////////////
Text HtmAsc2Xml(Text codInp) // Codigo de entrada
//////////////////////////////////////////////////////////////////////////////
{
  ReplaceTable(codInp, [[ [["&", "&amp;"]],
                          [["<", "&lt;"]],
                          [[">", "&gt;"]] ]], 1)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna el codigo resultado de reconvertir &, < y >.",
HtmAsc2Xml);
//////////////////////////////////////////////////////////////////////////////

Text Htm2Ide()

//////////////////////////////////////////////////////////////////////////////
Text Htm2Ide(Text prgNam, // Nombre del programa
             Text lblTxt, // Etiqueta de entrada
             Real makLow) // A minusculas
//////////////////////////////////////////////////////////////////////////////
{
  Text lblInp = ReplaceTable(prgNam+"_"+lblTxt, [[
    [["á","a"]],[["é","e"]],[["í","i"]],[["ó","o"]],[["ú","u"]],[["ü","u"]],
    [["Á","A"]],[["É","E"]],[["Í","I"]],[["Ó","O"]],[["Ú","U"]],[["Ü","U"]],
    [["ñ","n"]],[["Ñ","N"]]
  ]], 1);
  
  Set  setChr = TxtForChr(lblInp, Text(Text oneChr)
  {
    Case(
      And(oneChr >= "0", oneChr <= "9"), oneChr,
      And(oneChr >= "A", oneChr <= "Z"), If(makLow, ToLower(oneChr), oneChr),
      And(oneChr >= "a", oneChr <= "z"), oneChr,
      TRUE,                              "_")
  });
  Text txtSum = If(Card(setChr), SetSum(setChr), "");
  
  If(txtSum=="",  "",           // No hay identificador
  If(txtSum<"A",  "X"+txtSum,   // No ha de empezar por numero
  If(txtSum=="_", "X"+txtSum,   // No ha de empezar por _
                     txtSum)))  // Es correcto
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una etiqueta de texto convertida en identificador Html, por ejemplo,
para utilizarse en un <a name></a>.
Un idetificador ha de empezar por letras A..Z o a..z y seguir por letras, 
numeros 0..9 o subrayador, menos, dos puntos o punto.
Esta funcion solo conserva las letras y numeros en su posicion y cualquier
otro caracter lo cambia por el subrayador.
Dependiendo del parametro makLow lo pasa todo a minusculas.
Si no empieza por letra le antepone una X.",
Htm2Ide);
//////////////////////////////////////////////////////////////////////////////

Text HtmPutLinks()

//////////////////////////////////////////////////////////////////////////////
Text HtmPutLinks(Text codTxt, // Codigo Html de entrada
                 Set  lnkTab, // Tabla de etiquetas y enlaces
                 Text opeSep) // Operadores de 1 char que separan etiquetas
//////////////////////////////////////////////////////////////////////////////
{
  If(!Card(lnkTab), codTxt,
  {
    Text opeDef = " \n"+Char(9)+Char(34)+ // blanco, cr/lf, tab, comilla doble
                  "¡!$%&()*+,-/:;<=>¿?[]^{|}~";  // sin comilla simple
    Text opeTxt = If(opeSep!="", opeSep, opeDef); // Si no hay los por defecto

    Text opeGen = Char(64); // Bell, el operador generico

    Set  opeRep = For(1, TextLength(opeTxt), Set(Real opePos)
    { // Tabla de remplazamiento de operadores
      Text oneChr = Sub(opeTxt,opePos, opePos);
      SetOfText(oneChr, opeGen+oneChr+opeGen)
    });

    Text codPar = ReplaceTable(codTxt, opeRep, 1); // Parse bruto

    Set  codRep = EvalSet(lnkTab, Set(Set codRow)  // Tabla reemplazamiento
                    { SetOfText(opeGen+codRow[1]+opeGen, codRow[2]) });

    Text codMrk = ReplaceTable(codPar, codRep, 1); // Inyecta enlaces
    Text codCls = Replace(codMrk, opeGen, "");  // Limpiar operador generico

    codCls
  })
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un codigo Html resultado de ponerle links a determinados palabras que
son identificadores.
Los identificadores se delimitan por determinados caracteres, por ejemplo,
blanco, coma, punto, 2 puntos en el caso del lenguaje escrito, mas, menos,
slash en el caso de matematicas o codigo.
De esta forma si recibe como identificador agua no se lo pone a paraguas.
En sensible a mayusculas y minusculas.
Los operadores se reciben como un texto y cada caracter es un operador.
Si el texto de operadores es vacio asume una lista estandar.
Si la tabla de etiquetas y links es vacia, no hace nada.",
HtmPutLinks);
//////////////////////////////////////////////////////////////////////////////

Text HtmPutCharts()

//////////////////////////////////////////////////////////////////////////////
Text HtmPutCharts(Text codTxt) // Codigo Html de entrada
//////////////////////////////////////////////////////////////////////////////
{
  // Los guiones - son realmente _
  // <span class='CodRem'>//-(chartName)-</span>
  Text iniTag = "<span class='CodRem'>/"+"/_(";
  Text endTag = ")_"+"</span>";

  If(!TextFind(codTxt, iniTag), codTxt, // No hay graficos online
  {
    Text WriteLn("Code with online charts");
    Text iniImg = "<img src='";
    Text endImg =
      "' class='Tin' title='pulsando se cambia el tamaño' onclick="+
    Q("JavaScript:if(this.className=='Tin') { this.className='Mid'; } "+
                                      "else { this.className='Tin'; }")+">";

    Text iniRep = Replace(codTxt, iniTag, iniImg);
    Text endRep = Replace(iniRep, endTag, endImg);
  
    endRep
  })
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Si hay graficos online inserta las instrucciones para que se vean.
Si no hay graficos online retorna el mismo codigo Html que recibe como
parametro.",
HtmPutCharts);
//////////////////////////////////////////////////////////////////////////////

Time oriented language

//////////////////////////////////////////////////////////////////////////////
// FILE    : htm.tol
// AUTHOR  : http://www.asolver.com
// PURPOSE : Funciones de basicas de Html (HyperText Markup Language).
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
Text HtmAsc2Xml(Text codInp) // Codigo de entrada
//////////////////////////////////////////////////////////////////////////////
{
  ReplaceTable(codInp, [[ [["&", "&amp;"]],
                          [["<", "&lt;"]],
                          [[">", "&gt;"]] ]], 1)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna el codigo resultado de reconvertir &, < y >.",
HtmAsc2Xml);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text Htm2Ide(Text prgNam, // Nombre del programa
             Text lblTxt, // Etiqueta de entrada
             Real makLow) // A minusculas
//////////////////////////////////////////////////////////////////////////////
{
  Text lblInp = ReplaceTable(prgNam+"_"+lblTxt, [[
    [["á","a"]],[["é","e"]],[["í","i"]],[["ó","o"]],[["ú","u"]],[["ü","u"]],
    [["Á","A"]],[["É","E"]],[["Í","I"]],[["Ó","O"]],[["Ú","U"]],[["Ü","U"]],
    [["ñ","n"]],[["Ñ","N"]]
  ]], 1);
  
  Set  setChr = TxtForChr(lblInp, Text(Text oneChr)
  {
    Case(
      And(oneChr >= "0", oneChr <= "9"), oneChr,
      And(oneChr >= "A", oneChr <= "Z"), If(makLow, ToLower(oneChr), oneChr),
      And(oneChr >= "a", oneChr <= "z"), oneChr,
      TRUE,                              "_")
  });
  Text txtSum = If(Card(setChr), SetSum(setChr), "");
  
  If(txtSum=="",  "",           // No hay identificador
  If(txtSum<"A",  "X"+txtSum,   // No ha de empezar por numero
  If(txtSum=="_", "X"+txtSum,   // No ha de empezar por _
                     txtSum)))  // Es correcto
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una etiqueta de texto convertida en identificador Html, por ejemplo,
para utilizarse en un <a name></a>.
Un idetificador ha de empezar por letras A..Z o a..z y seguir por letras, 
numeros 0..9 o subrayador, menos, dos puntos o punto.
Esta funcion solo conserva las letras y numeros en su posicion y cualquier
otro caracter lo cambia por el subrayador.
Dependiendo del parametro makLow lo pasa todo a minusculas.
Si no empieza por letra le antepone una X.",
Htm2Ide);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text HtmPutLinks(Text codTxt, // Codigo Html de entrada
                 Set  lnkTab, // Tabla de etiquetas y enlaces
                 Text opeSep) // Operadores de 1 char que separan etiquetas
//////////////////////////////////////////////////////////////////////////////
{
  If(!Card(lnkTab), codTxt,
  {
    Text opeDef = " \n"+Char(9)+Char(34)+ // blanco, cr/lf, tab, comilla doble
                  "¡!$%&()*+,-/:;<=>¿?[]^{|}~";  // sin comilla simple
    Text opeTxt = If(opeSep!="", opeSep, opeDef); // Si no hay los por defecto

    Text opeGen = Char(64); // Bell, el operador generico

    Set  opeRep = For(1, TextLength(opeTxt), Set(Real opePos)
    { // Tabla de remplazamiento de operadores
      Text oneChr = Sub(opeTxt,opePos, opePos);
      SetOfText(oneChr, opeGen+oneChr+opeGen)
    });

    Text codPar = ReplaceTable(codTxt, opeRep, 1); // Parse bruto

    Set  codRep = EvalSet(lnkTab, Set(Set codRow)  // Tabla reemplazamiento
                    { SetOfText(opeGen+codRow[1]+opeGen, codRow[2]) });

    Text codMrk = ReplaceTable(codPar, codRep, 1); // Inyecta enlaces
    Text codCls = Replace(codMrk, opeGen, "");  // Limpiar operador generico

    codCls
  })
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un codigo Html resultado de ponerle links a determinados palabras que
son identificadores.
Los identificadores se delimitan por determinados caracteres, por ejemplo,
blanco, coma, punto, 2 puntos en el caso del lenguaje escrito, mas, menos,
slash en el caso de matematicas o codigo.
De esta forma si recibe como identificador agua no se lo pone a paraguas.
En sensible a mayusculas y minusculas.
Los operadores se reciben como un texto y cada caracter es un operador.
Si el texto de operadores es vacio asume una lista estandar.
Si la tabla de etiquetas y links es vacia, no hace nada.",
HtmPutLinks);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text HtmPutCharts(Text codTxt) // Codigo Html de entrada
//////////////////////////////////////////////////////////////////////////////
{
  // Los guiones - son realmente _
  // <span class='CodRem'>//-(chartName)-</span>
  Text iniTag = "<span class='CodRem'>/"+"/_(";
  Text endTag = ")_"+"</span>";

  If(!TextFind(codTxt, iniTag), codTxt, // No hay graficos online
  {
    Text WriteLn("Code with online charts");
    Text iniImg = "<img src='";
    Text endImg =
      "' class='Tin' title='pulsando se cambia el tamaño' onclick="+
    Q("JavaScript:if(this.className=='Tin') { this.className='Mid'; } "+
                                      "else { this.className='Tin'; }")+">";

    Text iniRep = Replace(codTxt, iniTag, iniImg);
    Text endRep = Replace(iniRep, endTag, endImg);
  
    endRep
  })
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Si hay graficos online inserta las instrucciones para que se vean.
Si no hay graficos online retorna el mismo codigo Html que recibe como
parametro.",
HtmPutCharts);
//////////////////////////////////////////////////////////////////////////////

Árbol de ficheros

Dct.Writer documenta programas Tol generado agendas para Html

  • make.tol proceso principal de documentación de programas Tol
  • tol directorios de código Tol
    • cmm funciones comunes
    • app funciones especificas de aplicacion
      • shi.tol sintaxis realzada de código Tol, Xml, Html, etc.
      • dtr.tol de árboles de ficheros para documentación
      • dct.tol de documentación de código en Html
    • inc.tol para la inclusion de ficheros Tol
  • dct donde se generan las agenda de post de documentación
  • arbol.html ejemplo de árbol para documentar codigo fuente
  • dct_writer.pdf documento resumen de funciones del programa

2015 asolver.com | Aviso legal | XHTML | Δ Θ Ξ | Creative Commons | Mapa y funciones del sitio

Tol