Copy Selected Tabs to Clipboard vs. Datenstrom Yellow

Ich verwende eigentlich fast ausschließlich die Firefox-Erweiterung Copy Selected Tabs to Clipboard, um Links zu Websites im Markdown-Format hier in meine Beiträge und Seiten einzufügen. Dabei war mir schon etliche Male aufgefallen, dass bei einigen Links bestimmte Zeichen mit einem überflüssigen \ davor angezeigt wurden, heute z. B. ein Fragezeichen „?“. Bisher habe ich das immer händisch korrigiert, heute aber mal etwas Ursachenforschung betrieben.

Die Firefox-Erweiterung Copy Selected Tabs to Clipboard bietet u. a. das Markdown-Format [%MD_SAFE(%TITLE%)%](%URL% "%MD_LINK_TITLE_SAFE(%TITLE%)%") an, was mich zu https://github.com/piroor/copy-selected-tabs-to-clipboard/blob/7c99166aa40cacb1fec64e586d8e5111f3b9a376/common/commands.js#L429 führt:

// https://github.com/piroor/copy-selected-tabs-to-clipboard/pull/36
export function sanitizeMdText(text) {
  return text.replace(/[-!"#$%&'()*+,./:;<=>?@^_`{|}~\[\\\]]/g, '\\$&');
}

// https://github.com/piroor/copy-selected-tabs-to-clipboard/pull/36
export function sanitizeMdLinkTitleText(text) {
  return text.replace(/["'()&\\]/g, '\\$&');
}

Dort ist in sanitizeMdText() das Fragezeichen aufgeführt.

Und was macht Datenstrom Yellow: https://github.com/datenstrom/yellow/blob/ea4c7348adda26e065d3d20bf4652418e93f8742/system/workers/markdown.php#L187

    /**
     * Table of hash values for escaped characters:
     * @var string
     */
    protected $escape_chars = '\`*_{}[]()>#+-.!';
    protected $escape_chars_re;

Hier fehlt also das Fragezeichen in $escape_chars.

Woher nun der Unterschied?

In Pull Request #36 steht u. a.: „CommonMark compliant.“

Aus der CommonMark-Spezifikation:

„Any ASCII punctuation character may be backslash-escaped:“

!
"
#
%
&
'
(
)
*
+
,
-
.
/
:
;
<
=
>
?
@
[
\
]
^
_
`
{
|
}
~
$

(Obiges von mir alphabetisch sortiert)

Aus der originalen Markdown-Syntax-Dokumentation von John Gruber:

„Markdown allows you to use backslash escapes to generate literal characters which would otherwise have special meaning in Markdown’s formatting syntax.

Markdown provides backslash escapes for the following characters:“

!
#
(
)
*
+
-
.
[
\
]
_
`
{
}

(Obiges von mir alphabetisch sortiert)

Statt 32 sind es hier nur 15 Zeichen.

Vergleich zwischen beiden Listen mittels Meld:

Screenshot von Meld

Über mögliche Lösungen habe ich bislang nicht im Detail nachgedacht, Ideen hätte ich aber ein paar.

Kommentare: 0

Interesse an einer Diskussion? Schreibe einen Kommentar.

Image




0 / 5000

Die E-Mail-Adresse wird nicht veröffentlicht noch an Dritte weitergegeben. In deinem Text kannst du *Kursivschrift*, **Fettschrift** und [Links](http://example.org) verwenden. Der Kommentar wird moderiert und so bald wie möglich freigeschaltet.