Tiada pemapar ditemui untuk jenis nod: League\Commonmark + Drupal
P粉144705065
P粉144705065 2024-01-16 13:52:24
0
1
426

Saya cuba membuat penurunan harga menggunakan LeagueCommonmark 2.3.8 dan sambungan dalam Drupal dan apabila saya cuba untuk membuat menggunakan sambungan itu saya mendapat ralat berikut:

Tidak dapat mencari pemapar yang sepadan dengan jenis nod LeagueCommonMarkNodeBlockDocument

Ini kod saya:

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;
  }

}

Masalahnya berkaitan dengan cara saya mencipta persekitaran. Saya tahu perkara ini kerana saya mengatasi proses() seperti berikut dan penukaran markdown berfungsi seperti yang dijangkakan:

public function process($text, $langcode): FilterProcessResult {
    $converter = new CommonMarkConverter($this->config);

    $converted_text = $converter->convert($text);

    return new FilterProcessResult("$converted_text");
  }

Saya juga memadam semua addExtension 行并得到了相同的错误,所以问题是 new Environment($this->config).

Kemudian saya cuba memulakan tanpa konfigurasi: new Environment([]) tetapi saya masih mendapat ralat yang sama.

Jadi apa salah saya?

(Drupal mempunyai modul penurunan nilai, tetapi saya tidak boleh menggunakannya kerana saya memindahkan tapak ke Drupal 10 dan modul itu tidak serasi.)

P粉144705065
P粉144705065

membalas semua(1)
P粉642920522

Anda juga perlu menambah nod CommonMarkCoreExtensionInlinesOnlyExtension,因为它们为 Document 等内容提供解析器和渲染器>段落文本. (Sebagai alternatif, jika anda memerlukan lebih kawalan ke atas tatabahasa yang disertakan atau dikecualikan, anda boleh mendaftarkan sendiri penghurai dan pemapar individu secara manual).

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!