)?/S",
/* 7 */ "/[{][{]/S",
/* 8 */ "/[}][}]/S",
/* 9 */ "/[{]/S",
/* 10 */ "/[}]/S",
/* 11 */ "/(?:
){2,}/S",
/* 12 */ "/
\n*(?: ",
/* 7 */ $debut_gras,
/* 8 */ $fin_gras,
/* 9 */ $debut_italique,
/* 10 */ $fin_italique,
/* 11 */ " ",
/* 12 */ " ",
/* 13 */ " ",
/* 14 */ " ",
/* 15 */ ""
)
);
// Raccourcis dependant du sens de la langue
function definir_raccourcis_alineas()
{
global $ligne_horizontale;
static $alineas = array();
$x = _DIR_RESTREINT ? lang_dir() : lang_dir($GLOBALS['spip_lang']);
if (!isset($alineas[$x])) {
$alineas[$x] = array(
array(
/* 0 */ "/\n(----+|____+)/S",
/* 1 */ "/\n-- */S",
/* 2 */ "/\n- */S", /* DOIT rester a cette position */
/* 3 */ "/\n_ +/S"
),
array(
/* 0 */ "\n\n" . $ligne_horizontale . "\n\n",
/* 1 */ "\n
\n*)*/S",
/* 13 */ "//S",
/* 14 */ "/<\/quote>/S",
/* 15 */ "/<\/?intro>/S"
),
array(
/* 4 */ "\$1\n\n" . $debut_intertitre,
/* 5 */ $fin_intertitre ."\n\n\$1",
/* 6 */ "
— ",
/* 2 */ "\n
".definir_puce()." ",
/* 3 */ "\n
"
)
);
}
return $alineas[$x];
}
// On initialise la puce pour eviter find_in_path() a chaque rencontre de \n-
// Mais attention elle depend de la direction et de X_fonctions.php, ainsi que
// de l'espace choisi (public/prive)
// http://doc.spip.org/@definir_puce
function definir_puce() {
// Attention au sens, qui n'est pas defini de la meme facon dans
// l'espace prive (spip_lang est la langue de l'interface, lang_dir
// celle du texte) et public (spip_lang est la langue du texte)
$dir = _DIR_RESTREINT ? lang_dir() : lang_dir($GLOBALS['spip_lang']);
$p = 'puce' . (test_espace_prive() ? '_prive' : '');
if ($dir == 'rtl') $p .= '_rtl';
if (!isset($GLOBALS[$p])) {
$img = find_in_path($p.'.gif');
list(,,,$size) = @getimagesize($img);
$GLOBALS[$p] = '';
}
return $GLOBALS[$p];
}
// XHTML - Preserver les balises-bloc : on liste ici tous les elements
// dont on souhaite qu'ils provoquent un saut de paragraphe
if (!defined('_BALISES_BLOCS')) define('_BALISES_BLOCS',
'div|pre|ul|ol|li|blockquote|h[1-6r]|'
.'t(able|[rdh]|body|foot|extarea)|'
.'form|object|center|marquee|address|'
.'d[ltd]|script|noscript|map|button|fieldset|style');
//
// Echapper les elements perilleux en les passant en base64
//
// Creer un bloc base64 correspondant a $rempl ; au besoin en marquant
// une $source differente ; le script detecte automagiquement si ce qu'on
// echappe est un div ou un span
// http://doc.spip.org/@code_echappement
function code_echappement($rempl, $source='', $no_transform=false) {
if (!strlen($rempl)) return '';
// Tester si on echappe en span ou en div
$mode = preg_match(',?('._BALISES_BLOCS.')[>[:space:]],iS', $rempl) ?
'div' : 'span';
$return = '';
// Decouper en morceaux, base64 a des probleme selon la taille de la pile
$taille = 30000;
for($i = 0; $i < strlen($rempl); $i += $taille) {
// Convertir en base64 et cacher dans un attribut
// utiliser les " pour eviter le re-encodage de ' et ’
$base64 = base64_encode(substr($rempl, $i, $taille));
$return .= "<$mode class=\"base64$source\" title=\"$base64\">$mode>";
}
return $return
. ((!$no_transform AND $mode == 'div')
? "\n\n"
: ''
);
;
}
// Echapper les ... html>
// http://doc.spip.org/@traiter_echap_html_dist
function traiter_echap_html_dist($regs) {
return $regs[3];
}
// Echapper les ... code>
// http://doc.spip.org/@traiter_echap_code_dist
function traiter_echap_code_dist($regs) {
list(,,$att,$corps) = $regs;
$echap = htmlspecialchars($corps); // il ne faut pas passer dans entites_html, ne pas transformer les xx; du code !
// ne pas mettre le
"
.$echap."
".$echap."
";
}
$echap = str_replace("\t", " ", $echap);
$echap = str_replace(" ", " ", $echap);
return $echap;
}
// Echapper les