it-swarm.com.de

Der Editor fügt bei jeder Eingabe <p> & nbsp </ p> hinzu

Ich habe ein Problem mit CKEditor in Drupal 8. Ich habe nach verwandten Fragen wie gesucht. CKeditor fügt zusätzliche <p> -Tags hinzu , aber fast alle Fragen beziehen sich auf Drupal 7.

Mein CKEditor wendet also automatisch einen <p>&nbsp</p> An, wenn ich die Eingabetaste drücke und nichts eingebe.

screenshot

Wie kann ich das deaktivieren? Ich möchte weder die Polsterung noch etwas von einem <p> - Tag entfernen. Ich brauche etwas, das prüft, ob der Absatz leer ist und ihn dann nicht anzeigt.

3
Rubenxfd

haben Sie versucht, die Zeilenumbrüche in HTML umzuwandeln (d. h. <br> and <p>) "Einstellung auf das Texteingabeformat?

(enter image description here

1
Anson W Han

Beachten Sie, dass Sie in einem benutzerdefinierten Modul einen eigenen benutzerdefinierten Filter hinzufügen können. Dies könnte beispielsweise so aussehen, um leere Absätze zu entfernen:

<?php

namespace Drupal\your_module\Plugin\Filter;

use Drupal\filter\FilterProcessResult;
use Drupal\filter\Plugin\FilterBase;
use Drupal\filter\Annotation\Filter;
use Drupal\Core\Annotation\Translation;

/**
 * Class FilterEmptyParagraphs
 * @Filter(
 *   id = "filter_empty_paragraphs",
 *   title = @Translation("Filter empty paragraphs"),
 *   description = @Translation("Removes empty paragraphs."),
 *   type = Drupal\filter\Plugin\FilterInterface::TYPE_MARKUP_LANGUAGE,
 * )
 * @package Drupal\your_module\Plugin\Filter
 */
class FilterEmptyParagraphs extends FilterBase
{
    /**
     * Performs the filter processing.
     *
     * @param string $text
     *   The text string to be filtered.
     * @param string $langcode
     *   The language code of the text to be filtered.
     *
     * @return \Drupal\filter\FilterProcessResult
     *   The filtered text, wrapped in a FilterProcessResult object, and possibly
     *   with associated assets, cacheability metadata and placeholders.
     *
     * @see \Drupal\filter\FilterProcessResult
     */
    public function process($text, $langcode)
    {
        $regex = '@<p([^>]*)>\s*\n*\t*(&nbsp;)*\s*\n*\t*</p>@igm';
        $text = preg_replace($regex, '', $text);
        return new FilterProcessResult($text);
    }
}

(Regex nicht getestet)

1
Oulalahakabu