Tema ‘delay’ para WordPress

Por fin publico el tema para WordPress, Alex le bautizó como 'delay' porque me demoré mucho en hacerlo, no por lo complejo sino por lo vago que soy jeje.

El tema 'delay' funciona en versiones de WordPress 2.x, para instalarlo sólo es necesario descomprimirlo dentro de la carpeta wp-content/themes

El tema está pensado para funcionar con los siguientes plugins pero son opcionales, las líneas están comentadas para que el tema funcione correctamente. Si deseas usarlos te dejo las direcciones:

Este tema está con licencia Atribución 2.0, el tema ha sido probado perféctamente en versiones 2.x de WordPress no me responsabilizo por fallas ni mal uso del tema.

Archivos

Eliminando acentos con .NET 1.x

En la entrada anterior vimos que con .NET 2 la eliminación acentos (y otros diacríticos) es una tarea trivial, pues bien para hacer esta misma tarea con Mono -que al parecer no tiene implementado esta parte todavía- o versiones anteriores del .NET Framework 2, se puede usar el API de la función FoldString o tomar parte del código de VietPad, escrito por Quan Nguyen.

csharp:
public class Program
{
    #region Foldstring
    [Flags]
    private enum MapFlags
    {
        MAP_FOLDCZONE = 0x00000010,// fold compatibility zone chars
        MAP_PRECOMPOSED = 0x00000020,// convert to precomposed chars
        MAP_COMPOSITE = 0x00000040, // convert to composite chars
        MAP_FOLDDIGITS = 0x00000080 // all digits to ASCII 0-9
    }
    [DllImport("kernel32.dll")]
    static extern int FoldString(int dwMapFlags, string lpSrcStr, int cchSrc,
       [Out] StringBuilder lpDestStr, int cchDest);

    public static string RemoveDiacritics1(string stIn)
    {
        StringBuilder sb = new StringBuilder();
        FoldString((int)MapFlags.MAP_COMPOSITE, stIn, stIn.Length, sb, stIn.Length * 2);
        return Regex.Replace(sb.ToString(), @"\p{Sk}", "");
    }
    #endregion

    #region Utilizando parte del código de VietPad
    public static string RemoveDiacritics2(string strIn)
    {
        Normalizer n = new Normalizer(Normalizer.D);
        return Regex.Replace(n.normalize(strIn), "\p{Mn}+", "");
    }
    #endregion

    public static void Main(string[] args)
    {
        string str = "Canción";
        // Usando API de FoldString
        Console.WriteLine(RemoveDiacritics1(str));
        // Usando parte del código de VietPad (http://vietpad.sourceforge.net)
        Console.WriteLine(RemoveDiacritics2(str));
        Console.Read();
    }
}

Nota1: Por alguna extraña razón, al compilar desde Visual Studio 2003 no funciona bien el ejemplo cuando se usa FoldString, pero si se compila desde la línea de comandos no hay ningún problema

Nota2: No he probado el funcionamiento del código en Mono para Windows.

Archivos Relacionados