<commit_before><?php
if (!defined('ABSPATH')) exit;

class SVG {
    static function normalizarAtributos($atts)
    {
        if (is_string($atts)) {
            $atts = array('nombre' => $atts);
        } else if (!is_array($atts)) {
            $atts = array();
        }

        $default = array(
            'nombre'     => '',
            'contenedor' => '%s',
            );

        return shortcode_atts($default, $atts, 'icono');
    }

    /**
     * Retorna un elemento SVG con un ID que debería coincidir
     * con uno definido en el archivo SVG cargado.
     * @param  string  $nombre    Nombre del ID del icono
     * @return string             Retorna un elemento SVG
     */
    static function retornar($atts = array())
    {
        extract(self::normalizarAtributos($atts));

        if (!$nombre) return '';

        if (is_file(ASSETS_DIR_SVG . $nombre . '.svg')) {
            $elemento = file_get_contents(ASSETS_DIR_SVG . $nombre . '.svg');
            return sprintf($contenedor, $elemento);
        }

        $formato = '<svg class="icono icono-%1$s" role="img">'
                    . ' <use href="#%1$s" xlink:href="#%1$s"></use> '
                . '</svg>';
        $elemento = sprintf($formato, sanitize_title($nombre));
        return sprintf($contenedor, $elemento);
    }
    /**
     * Muestra el retorno de retornarSVG.
     * @param  string  $nombre    Nombre del ID del icono
     */
    static function mostrar($atts = array())
    {
        echo self::retornar($atts);
    }

    /**
     * Imprime el sprite de iconos
     */
    static function mostrarSprite()
    {
        $ruta = ASSETS_DIR_SVG . 'sprite.svg';
        if (is_file($ruta)) {
            printf(
                '<div style="display: none; visibility: hidden">%s</div>',
                file_get_contents($ruta)
            );
        }
    }
}

add_shortcode('icono', array('SVG', 'retornar'));
add_action('post_body', array('SVG', 'mostrarSprite'));<commit_msg>Cambia descripciones y elimina normalizarAtributos()<commit_after><?php
if (!defined('ABSPATH')) exit;

class SVG
{
    /**
     * Utiliza la clave 'nombre' para retornar un elemento SVG de HTML.
     * Si existe un archivo SVG con el mismo nombre de archivo, retorna el contenido
     * del archivo.
     * Sino se retorna un elemento SVG que linkea a un ID, que debería existir 
     * en el sprite de iconos mostrado por SVG::mostrarSprite().
     * @param  string/array $atts Configuración del retorno.
     * @return string             Retorna un elemento SVG.
     */
    static function retornar($atts = array())
    {
        $default = array(
            'nombre'     => '',
            'contenedor' => '%s',
        );

        if (is_string($atts)) {
            $atts = array('nombre' => $atts);
        } else if (!is_array($atts)) {
            $atts = array();
        }

        extract(shortcode_atts($default, $atts, 'icono'));

        if (!$nombre) {
            return 'Debe especificar un nombre de ícono';
        }

        if (is_file(ASSETS_DIR_SVG . $nombre . '.svg')) {
            return sprintf($contenedor, file_get_contents(ASSETS_DIR_SVG . $nombre . '.svg'));
        }

        $formato = '<svg class="icono icono-%1$s" role="img">'
                    . ' <use href="#%1$s" xlink:href="#%1$s"></use> '
                . '</svg>';
        $elemento = sprintf($formato, sanitize_title($nombre));
        return sprintf($contenedor, $elemento);
    }

    /**
     * Imprime el retorno de SVG::retornar.
     * @param string/array $atts  Nombre del icono o array de configuracion.
     */
    static function mostrar($atts = array())
    {
        echo self::retornar($atts);
    }

    /**
     * Imprime el sprite de iconos
     */
    static function mostrarSprite()
    {
        $ruta = ASSETS_DIR_SVG . 'sprite.svg';
        if (is_file($ruta)) {
            printf(
                '<div style="display: none; visibility: hidden">%s</div>',
                file_get_contents($ruta)
            );
        }
    }
}

add_shortcode('icono', array('SVG', 'retornar'));
add_action('post_body', array('SVG', 'mostrarSprite'));
{'fraction_non_alphanumeric': 0.14627659574468085, 'fraction_numerical': 0.0014506769825918763, 'mean_word_length': 2.0307692307692307, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1320729', 'n_tokens_mistral': 1345, 'n_tokens_neox': 1332, 'n_words': 311}