Changeset 82527 in spip-zone


Ignore:
Timestamp:
May 17, 2014, 10:24:41 AM (5 years ago)
Author:
cedric@…
Message:

On peut configurer le niveau de titre le plus haut accepte dans le texte
Si on veut au plus haut des h3 et qu'il y a des h1 dans le texte, tous les titres sont decales des 2 niveaux vers le bas, sinon si il y a des h2 on decale de 1 niveau vers le bas.

Location:
_plugins_/markdown/branches/v0.12.0
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/markdown/branches/v0.12.0/formulaires/configurer_markdown.html

    r82525 r82527  
    2828                                <p class="explication"><:markdown:explication_syntaxe_par_defaut:></p>
    2929                        </li>
     30                        #SET{name,hmini}#SET{obli,''}#SET{defaut,'1'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     31                        <li class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     32                                <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
     33                                <span class='erreur_message'>(#GET{erreurs})</span>
     34                                ]<select name="#GET{name}" class="select" id="#GET{name}">
     35                                        #SET{val,1}
     36                                        <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]>&lt;h1&gt;...&lt;/h1&gt;</option>
     37                                        #SET{val,2}
     38                                        <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]>&lt;h2&gt;...&lt;/h2&gt;</option>
     39                                        #SET{val,3}
     40                                        <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]>&lt;h3&gt;...&lt;/h3&gt;</option>
     41                                </select>
     42                        </li>
    3043                </ul>
    3144
  • _plugins_/markdown/branches/v0.12.0/lang/markdown_fr.php

    r82525 r82527  
    1818        'label_syntaxe_par_defaut_markdown' => "MarkDown (et utiliser les raccourcis SPIP entre <tt>&lt;spip&gt;...&lt;/spip&gt;</tt>)",
    1919
     20        'label_hmini' => "Niveau de titre le plus haut",
     21
    2022        'explication_syntaxe_par_defaut' => 'Attention, les contenus ne sont pas modifiés en base et changer de syntaxe par défaut risque de dégrader le rendu des textes existants qui ne seront plus interprétés correctement.',
    2123
  • _plugins_/markdown/branches/v0.12.0/markdown_options.php

    r82525 r82527  
    1212if (!defined('_ECRIRE_INC_VERSION')) return;
    1313
    14 // s'inserer a la fin de pre_propre
     14// s'inserer a la fin de pre_propre et post propre
    1515$GLOBALS['spip_pipeline']['pre_propre'] = (isset($GLOBALS['spip_pipeline']['pre_propre'])?$GLOBALS['spip_pipeline']['pre_propre']:'').'||markdown_pre_propre';
     16$GLOBALS['spip_pipeline']['post_propre'] = (isset($GLOBALS['spip_pipeline']['post_propre'])?$GLOBALS['spip_pipeline']['post_propre']:'').'||markdown_post_propre';
    1617
    1718// echapper les blocs <md>...</md> avant les autres blocs html
     
    3031                        define('_pre_echappe_html_propre_ok',true);
    3132                // on peut forcer par define, utile pour les tests unitaires
    32                 if (defined('_SYNTAXE_PAR_DEFAUT'))
    33                         $syntaxe_defaut = _SYNTAXE_PAR_DEFAUT;
     33                if (defined('_MARKDOWN_SYNTAXE_PAR_DEFAUT'))
     34                        $syntaxe_defaut = _MARKDOWN_SYNTAXE_PAR_DEFAUT;
    3435                else {
    3536                        include_spip('inc/config');
     
    245246        $mes_notes = "";
    246247        // traiter les notes ici si il y a du <md> pour avoir une numerotation coherente
    247         if (strpos($texte,"<md>")!==false){
     248        if (strpos($texte,"<md>")!==false
     249          AND strpos($texte,"[[")!==false){
    248250                $notes = charger_fonction('notes', 'inc');
    249251                // Gerer les notes (ne passe pas dans le pipeline)
     
    323325
    324326        // echapper le markdown pour que SPIP n'y touche plus
    325         return code_echappement($md);
    326 }
     327        return code_echappement($md,"md");
     328}
     329
     330/**
     331 * @param $texte
     332 * @return string
     333 */
     334function markdown_post_propre($texte){
     335        static $hreplace=null;
     336        static $hmini=null;
     337        if (is_null($hreplace)){
     338                $hreplace = false;
     339                // on peut forcer par define, utile pour les tests unitaires
     340                if (defined('_MARKDOWN_HMINI'))
     341                        $hmini = _MARKDOWN_HMINI;
     342                else {
     343                        include_spip('inc/config');
     344                        $hmini = lire_config("markdown/hmini",1);
     345                }
     346                if ($hmini>1){
     347                        $hreplace = array();
     348                        for ($i=5;$i>=1;$i--){
     349                                $ir = min($i+1,6);
     350                                $hreplace[1]["<h$i"] = "<h$ir";
     351                                $hreplace[1]["</h$i"] = "</h$ir";
     352                                $ir = min($i+2,6);
     353                                $hreplace[2]["<h$i"] = "<h$ir";
     354                                $hreplace[2]["</h$i"] = "</h$ir";
     355                        }
     356                }
     357        }
     358
     359        if (strpos($texte,'<div class="base64md')!==false){
     360                $texte = echappe_retour($texte,"md");
     361        }
     362
     363        if ($hreplace AND strpos($texte,"</h")!==false){
     364                // si on veut h3 au plus haut et qu'il y a des h1, on decale de 2 vers le bas
     365                if ($hmini==3 AND strpos($texte,"</h1")){
     366                        $texte = str_replace(array_keys($hreplace[2]),array_values($hreplace[2]),$texte);
     367                }
     368                // sinon si on veut h2 et qu'il y a h1 ou si on veut h3 et qu'il y a h2, on decale de 1 vers le bas
     369                elseif ( ($hmini==2 AND strpos($texte,"</h1"))
     370                        OR ($hmini==3 AND strpos($texte,"</h2")) ){
     371                        $texte = str_replace(array_keys($hreplace[1]),array_values($hreplace[1]),$texte);
     372                }
     373        }
     374
     375        return $texte;
     376}
  • _plugins_/markdown/branches/v0.12.0/paquet.xml

    r82525 r82527  
    22        prefix="markdown"
    33        categorie="edition"
    4         version="0.9.2"
     4        version="0.10.0"
    55        etat="experimental"
    66        compatibilite="[3.0.0;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.