Problèmes avec plugin Markdown

Bonjour à tous,

Je suis en train de tester PluXml 5.1.5 pour réaliser un blog personnel. Pour la rédaction je veux utiliser la syntaxe Markdown. Complètement débutant en PHP (mais pas en codage...) j'ai d'abord sélectionné la librairie Markdown Extra (http://michelf.com/projects/php-markdown/extra/).


Ensuite j'ai procédé en 3 étapes :

1) j'ai encapsulé dans les fichiers class.plx.show.php et class.plx.feed.php
les appels $this->plxMotor->plxRecord_arts->f('chapo') et $this->plxMotor->plxRecord_arts->f('content') par la conversion Markdown(). Et cela fonctionne bien... mais c'est assez pénible d'injecter mes modifs à chaque nouvelle version, ce serait mieux en dehors du source de Pluxml.


2) je tente de placer l'appel
<div class="post"><?php Markdown($plxShow->artContent();) ?></div>
dans le fichier article.php de mon thème, ne rigolez pas j'ai dis que j'étais débutant en PHP. Je mets un certain temps à me rendre compte que la commande echo placée dans la méthode artContent() me fait un superbe effet de bord... On ne pourrait pas plutôt lui faire retourner l'article sous forme de chaine? Je ne m'en sortirai pas comme ça.


3) j'essaye le plugin, et là ça se gate... comment aller placer mon appel Markdown(...) au plus près de la récupération des champs "chapo" et "content". Les Hooks ne m'aident pas beaucoup, la seule solution que j'ai trouvée est assez "tordue": en m'accrochant sur le Hook 'IndexEnd', je vais remplacer le contenu de la <div class='post'> par sa transformation Markdown.
public function IndexEnd() {
    global $output;
    $dom = new DOMDocument('1.0', 'utf-8');
    $dom->loadHTML($output);
    $xpath = new DOMXPath($dom);
    $old_div = $xpath->query("//div[@class='post']")->item(0);
    $new_content = "<div class='post'>".Markdown($old_div->textContent)."</div>";
    $old_div->removeChild($old_div->firstChild);
    
    $output = str_replace("<div class=\"post\"></div>", $new_content, $dom->saveHTML());
    }

Cela fonctionne, mais j'ai quelques problèmes:
- je ne suis pas sur que les urls des liens soient correctement traités (relatifs/absolus)
- je ne sais pas traiter le flux RSS avec ce plugin, ni l'aperçu en cours d'édition

Quelle serait la bonne approche pour faire ce genre de plugin?


J'ai aussi sur le feu une autre petite modification : lorsque, dans un article j'encadre un mot dans '{...}', le mot est automatiquement ajouté en tant que mot clé à l'article lors de l'enregistrement et transformé lors de l'affichage en un lien vers "index.php?tag/le_mot" listant ainsi tous les autres articles concernés (une sorte de lien wiki en étoile). Est-ce faisable en plugin? sans toucher aux sources?

Cordialement
Benoit

PS: Bravo, à part ça PluXml est un super moteur de blog qui correspond bien à la plupart des besoins courants.

Réponses

  • Jerry WhamJerry Wham Member
    février 2013 modifié
    Essaie d'utiliser ce plugin que j'ai écrit il y a un petit moment maintenant à partir du script de Jay Salvat. Tu peux utiliser Mardown avec.
Connectez-vous ou Inscrivez-vous pour répondre.