3 votes

Récupération des variables (métadonnées du document) d'un document MultiMarkdown avec PHP

Comment puis-je récupérer MultiMarkdown métadonnées du document (tel que défini ici ) en utilisant php ? J'ai été assez surpris de ne pas trouver d'analyseur php pour MultiMarkdown, PHP Markdown Extra ne fait pas de MultiMarkdown.

J'ai peur que les scripts que MultiMarkdown est livré avec ont toutes les réponses pour quelqu'un qui saurait comment définir/utiliser un XSLT personnalisé, mais malheureusement ce n'est pas mon cas.

MultiMarkdown Métadonnées du document va comme ça :

Titre : Un nouveau document MultiMarkdown
Auteur : Fletcher T. Penney
John Doe
Date : 25 juillet 2005

Je voudrais utiliser mes propres propriétés et contrôler où elles seront affichées dans la sortie. Par défaut, mmd2XHTML produit les variables ci-dessus (prédéfinies) dans des balises, mais je dois les afficher quelque part dans le corps du HTML.

merci

0voto

Je ne suis pas un expert en php, mais le moyen le plus simple serait probablement d'appeler le binaire multimarkdown comme une commande shell, par ex.

multimarkdown -e title foo.txt

Cette commande affiche la valeur des métadonnées du titre pour foo.txt.

C'est essentiellement l'approche que j'utilise en perl, en Objective-C et dans les scripts, et c'est la raison pour laquelle j'ai ajouté la balise -e à MultiMarkdown pour commencer.

L'approche XSLT est excellente si vous utilisez MMD pour générer le résultat HTML, mais elle n'est probablement pas aussi utile dans ce cas.

L'autre option serait d'écrire une expression régulière personnalisée pour saisir ce dont vous avez besoin, mais pourquoi réinventer la roue ?

0voto

c33s Points 1393

Pour analyser les fichiers markdown avec des métadonnées, vous pouvez utiliser front yaml o kurenai

Je ne suis pas sûr de la compatibilité exacte avec multimarkdown.

front yaml

$parser = new Mni\FrontYAML\Parser();

$document = $parser->parse($str);

$yaml = $document->getYAML();
$html = $document->getContent();

kurenai

kurenai peut analyser différents types de contenu de métadonnées comme yaml et json.

$kurenai = new \Kurenai\Parser(
    new \Kurenai\Parsers\Metadata\JsonParser,
    new \Kurenai\Parsers\Content\MarkdownParser
);

$document = $kurenai->parse('path/to/document.md');
$document->getRaw();
$document->getMetadata();
$document->getContent();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X