'; $lv = 0; $str = explode ( "\n", str_replace ( "\r\n", "\n", $str ) ); // var_dump ( $str ); foreach ( $str as $t ) { // echo '
' . $t . '
'; $t = preg_replace_callback ( '/\[\[([^\]]*)\]\]/m', '_md_link_replacer', $t ); $nlv = 0; if (startsWith ( $t, '**** ' )) { // echo - 1; $t = substr ( $t, 5 ); $nlv = 4; } if (startsWith ( $t, '*** ' )) { // echo - 2; $t = substr ( $t, 4 ); $nlv = 3; } if (startsWith ( $t, '** ' )) { // echo - 3; $t = substr ( $t, 3 ); $nlv = 2; } if (startsWith ( $t, '* ' )) { // echo - 4; $t = substr ( $t, 2 ); $nlv = 1; } if ($lv != $nlv) { while ( $lv < $nlv ) { // echo '-5 (' . $lv . '-' . $nlv . ')'; $text .= ''; $lv --; } } if (startsWith ( $t, '!!!!! ' )) { $t = '
' . substr ( $t, 6 ) . '
'; } if (startsWith ( $t, '!!!! ' )) { $t = '

' . substr ( $t, 5 ) . '

'; } if (startsWith ( $t, '!!! ' )) { $t = '

' . substr ( $t, 4 ) . '

'; } if (startsWith ( $t, '!! ' )) { $t = '

' . substr ( $t, 3 ) . '

'; } if (startsWith ( $t, '! ' )) { $t = '

' . substr ( $t, 2 ) . '

'; } if ($lv == 0) { if ($t == '') { $text .= '

'; } else { $text .= $t; } } else { $text .= '

  • ' . $t . '
  • '; } // var_dump ( $t ); } while ( $lv > 0 ) { $text .= ''; $lv --; } $text .= '

    '; return $text; } function _md_link_replacer($in) { // var_dump ( $in ); $in = explode ( '|', $in [1], 2 ); return '' . (isset ( $in [1] ) ? $in [1] : $in [0]) . ''; } ?>