Secciones de la página

pht. tol


Declaraciones


Time oriented language


Árbol de ficheros

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









pht.tol de Ediciones.aContracorriente

Posts Html functions.

Declaraciones

Time oriented language

//////////////////////////////////////////////////////////////////////////////
// FILE    : pht.tol
// AUTHOR  : http://www.asolver.com
// PURPOSE : Posts Html functions.
//////////////////////////////////////////////////////////////////////////////

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

//////////////////////////////////////////////////////////////////////////////
Text PhtRedTitle(Text tit)
//////////////////////////////////////////////////////////////////////////////
{
  // 123456789.123456789.123456789.123456
  // <h2 class="title">Quienes somos</h2>
  Text ini = Sub(tit, 1,18);
  Real len = TextLength(tit);
  Text end = Sub(tit, len-4, len);

  Text mid = If(TextFind(tit, "_"), PhtRedText(Sub(tit, 19, len-5)),
  {
    Sub(tit, 19, 19)+
    "<span class='red'>"+Sub(tit, 20, 20)+"</span>"+
    Sub(tit, 21, len-5)
  });

  Text htm = ini+mid+end;
  htm
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Puts red the second letter.",
PhtRedTitle);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtRedText(Text txt)
//////////////////////////////////////////////////////////////////////////////
{
  Set  tab =
  [[
    // Editorial
    
    [["_eaC_", "<span class='aC'>Ediciones a<span class='red'>C</span>ontracorriente</span>"]],
    [["_aCo_", "<span class='aC'>a<span class='red'>C</span>ontracorriente</span>"]],
    
    // Colecciones en grande y letra en su color
    
    [["_aQr_", "<span class='aC'>a<span class='grey'  >Q</span>uemarropa</span>"]],
    [["_aMl_", "<span class='aC'>a<span class='pink'  >M</span>edialuz</span>"]],
    [["_aMn_", "<span class='aC'>a<span class='blue'  >M</span>edianoche</span>"]],
    [["_aTp_", "<span class='aC'>a<span class='yellow'>T</span>odaplana</span>"]],
    [["_aFd_", "<span class='aC'>a<span class='green' >F</span>ondo</span>"]],

    // Colecciones letra en su color y el resto igual

    [["_aQr=", "a<span class='grey'  >Q</span>uemarropa"]],
    [["_aMl=", "a<span class='pink'  >M</span>edialuz"]],
    [["_aMn=", "a<span class='blue'  >M</span>edianoche"]],
    [["_aTp=", "a<span class='yellow'>T</span>odaplana"]],
    [["_aFd=", "a<span class='green' >F</span>ondo"]],

    // Tienda

    [["_Pdg_", "<span class='aC'>P<span class='red'>a</span>ck Digital</span>"]],
    [["_Pd:_", "<span class='aC'>P<span class='red'>a</span>ck digital:</span>"]],
    [["_Pwd_", "<span class='aC'>P<span class='red'>a</span>labra clave</span>"]],

    [["_Edd_", "<span class='aC'>D<span class='red'>e</span>scarga directa</span>"]],
    [["_Edm_", "<span class='aC'>D<span class='red'>i</span>recta mediante email</span>"]],
    [["_Eag_", "<span class='aC'>E<span class='red'>d</span>ición agotada</span>"]],
    [["_Epo_", "<span class='aC'>E<span class='red'>n</span>vío postal</span>"]],
    [["_Epg_", "<span class='aC'>E<span class='red'>n</span>vío postal, coste incluido a España</span>"]],

    // Precios (antiguos, creo que no los uso, se podrían borrar)

    [["_000_", "<span class='aC'>E<span class='red'>d</span>ición no venal</span> (edición gratuita)"]],
    [["_040_", "<span class='aC'>P<span class='red'>V</span>P 4,00 €</span>"]],
    [["_041_", "<span class='aC'>P<span class='red'>V</span>P 4,10 €</span>"]],
    [["_049_", "<span class='aC'>P<span class='red'>V</span>P 4,90 €</span>"]],
    
    // Precios

    [["_002.70_", "<span class='aC'>P<span class='red'>V</span>P   2,70 €</span>"]],
    [["_003.99_", "<span class='aC'>P<span class='red'>V</span>P   3,99 €</span>"]],
    [["_003.95_", "<span class='aC'>P<span class='red'>V</span>P   3,95 €</span>"]],
    [["_004.50_", "<span class='aC'>P<span class='red'>V</span>P   4,50 €</span>"]],
    [["_004.60_", "<span class='aC'>P<span class='red'>V</span>P   4,60 €</span>"]],
    [["_012.95_", "<span class='aC'>P<span class='red'>V</span>P  12,95 €</span>"]],
    [["_019.95_", "<span class='aC'>P<span class='red'>V</span>P  19,95 €</span>"]],
    [["_150.00_", "<span class='aC'>P<span class='red'>V</span>P 150,00 €</span>"]],
    [["_400.00_", "<span class='aC'>P<span class='red'>V</span>P 400,00 €</span>"]],

    // Varios

    [["_Pr!_", "<span class='aC'>¡P<span class='red'>r</span>óximamente!</span>"]],
    [["_gra_", "<span class='aC'>g<span class='red'>r</span>atis</span>"]],
    [["_Cob_", "<span class='aC'>C<span class='red'>o</span>brar</span>"]],
    [["_Non_", "<span class='aC'>N<span class='red'>o</span></span>"]]
  ]] <<
  CriMaiTab; // emails

  ReplaceTable(txt, tab, 1) // Con los anteriores textos reemplazados
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Tablas de sustitucion de textos abreviados.",
PhtRedText);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtName(Set pstObj) // 
//////////////////////////////////////////////////////////////////////////////
{
  Text ideTxt = If(pstObj->pstCod!="",
                   pstObj->pstCod,
                   FormatDate(pstObj->pstDte,"%c%Y%m%d%h%m"));

  Htm2Ide("aC", ideTxt, FALSE) // Convertir el texto en valido para Html
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"If exists a code returns the code as name, else build one code using the
date of the post.",
PhtName);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtAName(Set pstObj)
//////////////////////////////////////////////////////////////////////////////
{ "<a name='"+PhtName(pstObj)+"'></a>" };
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una etiqueta a name para un post.",
PhtAName);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtLinkTag(Text tag,
                Text sep) // Separator space or <br />
//////////////////////////////////////////////////////////////////////////////
{ 
  Text url = Case
  (
    tag=="Blog",   "http://editando-blog.edicionesacontracorriente.com",
    
    TRUE,          "../"+PhtFileName(tag) 
  );
  
  "<a href=\"" + url + "\">" + PhtTitle(tag,sep) + "</a>" 

};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una etiqueta a href para una etiqueta y opcionalmente puede ponerle
un separador.",
PhtLinkTag);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtLink(Set  pstObj, // Post object
             Real extern) // If true external
//////////////////////////////////////////////////////////////////////////////
{
  Text pstTit = TxtOutside2Tag(pstObj->pstTit, "<", ">"); 
  
  If(extern, PhtLinkTag(pstTit, " "),
  {
    Text pstNam = PhtName(pstObj);
    "<a href=\"#" + pstNam + "\">" + pstTit + "</a>"
  })
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una etiqueta a href para un objeto post.",
PhtLink);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtLinkCatSet(Set set)
//////////////////////////////////////////////////////////////////////////////
{
  SetSum(EvalSet(set, Text(Text cat)
                 { "<li>"+PhtLinkTag(cat, " ")+"</li>\n" }))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un conjunto de li de enlace a href para todo el conjunto set de
categorias.",
PhtLinkCatSet);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtLinkPstSet(Set  set, // Set of posts
                   Real ext) // If true external
//////////////////////////////////////////////////////////////////////////////
{
  SetSum(EvalSet(set, Text(Set pst)
                 { "<li>"+PhtLink(pst, ext)+"</li>\n" }))
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna un conjunto de li de enlace a href para todo el conjunto set de
posts.",
PhtLinkPstSet);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtFileName(Text tag) // File tag
//////////////////////////////////////////////////////////////////////////////
{
  Text tagLow = ToLower(tag);
  Text tagRep = ReplaceTable(tagLow,
    [[
       [["á", "a"]], [["é", "e"]], [["í", "i"]], [["ó", "o"]], [["ú", "u"]],
       [["ñ", "n"]]
    ]]);

  Set  letCic = For(1, TextLength(tagRep), Text(Real pos)
  {
    Text let = Sub(tagRep, pos, pos);
    If(Or(And(let>="0", let<="9"), And(let>="a", let<="z")), let, "")
  });
  Text tagCls = Set2Txt(letCic, "", "", "", "", "", "", "", "");
                        
  Text dirNam = If(tag <: CatAll, "categorias", "articulos");
  
  dirNam + "/" + tagCls + ".html"
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna una ruta para un fichero a partir del tag que lo identifica,
las rutas son diferentes para las categorias y los articulos.",
PhtFileName);
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
Text PhtTitle(Text tag, // For menus
              Text sep) // Separator space or <br />
//////////////////////////////////////////////////////////////////////////////
{
  Case
  (
    tag=="Editorial",         "Vuestra"+sep+"editorial",
    tag=="Autor",             "Los"+sep+"autores",
    tag=="Tienda",            "Tienda"+sep+"online",
    tag=="Publicar",          "Contacta"+sep+"y publica",
    tag=="Blog",              "¡Editando!"+sep+"Blog",
                              // Realmente es Editando! Blog sin ¡

    tag=="Catálogo",          "Todas las colecciones",
    tag=="Hojear",            "Hojear libros",
    tag=="Vídeo",             "Vídeos",

    tag=="AnsoteguiL",        "Lucia Ansótegui",
    tag=="ArduinoM",          "Manuel Arduino",
    tag=="CalaveraDiabloCG",  "CalaveraDiablo",
    tag=="BecquerGA",         "G. A. Becquer",
    tag=="BlondeS",           "So Blonde",
    tag=="MesaJG",            "J. G. Mesa",
    tag=="PalaciosT",         "Teo Palacios",
    
    TRUE,                     tag 
  )
};
//////////////////////////////////////////////////////////////////////////////
PutDescription(
"Retorna unos textos mas visuales y significativos para determinados tags.",
PhtTitle);
//////////////////////////////////////////////////////////////////////////////

Árbol de ficheros

Ediciones.aContracorriente construye las páginas del sitio web edicionesacontracorriente.com

  • make.tol proceso principal de generación de contenidos del sitio web
  • tol directorios de código fuente en lenguaje de programación Tol
    • cmm funciones comunes de textos, fechas, conjuntos, ficheros, etc.
      • txt.tol funciones de manejo de textos
      • dte.tol funciones de manejo de fechas en español
      • set.tol funciones de manejo de conjuntos
      • fil.tol funciones de gestión de ficheros
      • dir.tol funciones de gestión de directorios
      • tme.tol del macro-expansor simple de Tol en Html
      • htm.tol funciones básicas del lenguaje Html
      • ftp.tol funciones para generar mandatos para hacer Ftp
      • xsm.tol para construir sitemaps en Xml
    • app funciones específicas de Ediciones.aContracorriente
      • pdb.tol funciones de manejo de los posts de una agenda
      • pht.tol funciones auxiliares para el Html de los post
    • inc.tol inclusión de los ficheros Tol básicos y de aplicación
  • agenda directorio destinado a albergar los ficheros de agendas de posts
  • web directorio destinado a las páginas web generadas automáticamente
    • css directorio para ficheros de estilo
      • common.css fichero de estilo para las páginas Html del sitio web
    • src directorio para ficheros javascript
      • ads.js código Javascript para emitir anuncios desde otros sitios
      • txt.js código Javascript para el manejo de textos
    • articulos directorio para páginas de artículos generadas por este programa
    • categorias directorio para páginas de categorias generadas automáticamente
    • sitemap.xml mapa del sitio web generado en Xml de forma automática
  • history archivo histórico del programa Ediciones.aContracorriente
  • ediciones_acontracorriente.pdf documento resumen de funciones del programa de generación Html

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

Tol