Maison > Questions et réponses > le corps du texte
J'essaie de restituer le démarque en utilisant LeagueCommonmark 2.3.8 et l'extension dans Drupal et lorsque j'essaie de restituer en utilisant l'extension, j'obtiens l'erreur suivante :
Impossible de trouver le moteur de rendu correspondant au type de nœud LeagueCommonMarkNodeBlockDocument
Voici mon code :
class FilterMarkdown extends FilterBase { /** * @var array The private config array. * * https://commonmark.thephpleague.com/2.3/configuration/. */ private array $config = [ // Allow because only the admin has markdown access. 'html_input' => 'allow', 'allow_unsafe_links' => false, ]; /** * {@inheritdoc} */ public function process($text, $langcode): FilterProcessResult { $converter = new MarkdownConverter($this->createEnvironment()); $converted_text = $converter->convert($text); return new FilterProcessResult("$converted_text"); } /** * Generate an environment with all the extensions we need. */ private function createEnvironment(): Environment { $environment = new Environment($this->config); $environment->addExtension(new ExternalLinkExtension()); $environment->addExtension(new HeadingPermalinkExtension()); $environment->addExtension(new StrikethroughExtension()); $environment->addExtension(new TableExtension()); return $environment; } }
Le problème est lié à la façon dont je crée l'environnement. Je le sais parce que j'ai remplacé process() comme suit et la conversion markdown fonctionne comme prévu :
public function process($text, $langcode): FilterProcessResult { $converter = new CommonMarkConverter($this->config); $converted_text = $converter->convert($text); return new FilterProcessResult("$converted_text"); }
J'ai également tout supprimé addExtension
行并得到了相同的错误,所以问题是 new Environment($this->config)
.
Puis j'ai essayé d'initialiser sans configuration : new Environment([])
mais j'ai toujours la même erreur.
Alors, qu'est-ce que j'ai fait de mal ?
(Drupal a un module markdown, mais je ne peux pas l'utiliser car je migre le site vers Drupal 10 et le module n'est pas compatible.)
P粉6429205222024-01-17 10:19:19
Vous devez également ajouter le nœud CommonMarkCoreExtension
或 InlinesOnlyExtension
,因为它们为 Document
、 等内容提供解析器和渲染器>段落
和文本
. (Alternativement, si vous avez besoin de plus de contrôle sur les grammaires incluses ou exclues, vous pouvez enregistrer manuellement vous-même des analyseurs et des moteurs de rendu individuels).