29 lines
692 B
PHP
29 lines
692 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Helpers;
|
||
|
|
|
||
|
|
class Markdown {
|
||
|
|
|
||
|
|
public static function getMarkdownEntities(): array {
|
||
|
|
return [
|
||
|
|
|
||
|
|
// Gras & Italique
|
||
|
|
'/\*\*(.*?)\*\*/' => '<b>$1</b>',
|
||
|
|
'/\*(.*?)\*/' => '<i>$1</i>',
|
||
|
|
|
||
|
|
// Titres
|
||
|
|
'/^## (.*?)$/m' => '<h3>$1</h3>',
|
||
|
|
'/^# (.*?)$/m' => '<h2>$1</h2>',
|
||
|
|
|
||
|
|
];
|
||
|
|
}
|
||
|
|
|
||
|
|
public static function convertToHTML( string $markdown ): string {
|
||
|
|
$safeMD = htmlspecialchars( $markdown, ENT_QUOTES );
|
||
|
|
foreach( Markdown::getMarkdownEntities() as $key => $value ) {
|
||
|
|
$safeMD = preg_replace( $key, $value, $safeMD );
|
||
|
|
}
|
||
|
|
|
||
|
|
return nl2br( $safeMD );
|
||
|
|
}
|
||
|
|
}
|