<?php if (!defined('PmWiki')) exit();
## Module NumHeaders Author:Pierre Rouzeau - Version 0.1 - Licence GPL

$HTMLStylesFmt['numlevel'] = "
  .numlvl1 { margin-left:1.25em; }
  .numlvl2 { margin-left:2.5em; }
  .numlvl3 { margin-left:3.75em; }
  .numh1 { text-indent:-1em; font-size:132%; font-weight:bold; margin:20px 0px;}
  .numh2 { text-indent:-1em; font-size:124%; font-weight:bold; margin:16px 0px;}    
  .numh3 { text-indent:-1em; font-size:116%; font-weight:bold; margin:12px 0px;}
";

Markup('^°','block','/^(°{1,3})(.*)$/e',"Keep(MkNumTitle(strlen('$1'),PSS('$2')))");
Markup('-°','block','/^-°/e',"StopNumTitle()");

function MkNumTitle ($level, $text) {
  global $MyNb, $MyNb2, $MyNb3, $CurLevel, $SepNum;
  SDV ($SepNum, " - ");
  if ($CurLevel>0) $sep = "</p></div>";
  else $sep="";
  if (!isset($CurLevel)) $CurLevel=0;
  if ($CurLevel==0) {
    $CurLevel++;
    $MyNb = 0;
    $MyNb2 = 0;
    $MyNb3 = 0;
  }
  $delta = $CurLevel - $level;
  $sep .= "\n<div class='numlvl$level'><div class='numh$level'>";
  if ($level==1) {$num=++$MyNb; $MyNb2=0; $MyNb3=0;}
  else if ($level==2) {$MyNb2++; $num="$MyNb.$MyNb2"; $MyNb3=0;}
  else if ($level==3) {$MyNb3++; $num="$MyNb.$MyNb2.$MyNb3";}
  $CurLevel = $level;
  $level++;  
  return ("$sep\n$num$SepNum$text</div><p>"); 
}

function StopNumTitle () {
  global $CurLevel;
  $tmp = $CurLevel;
  $CurLevel = 0;
  if ($tmp > 0) return "</p></div>";
}

?>