From 8fd5464c46ddb778e65a53d60f72e06f7f7e5329 Mon Sep 17 00:00:00 2001 From: Aidan Woods Date: Sun, 17 Mar 2019 16:53:17 +0000 Subject: [PATCH] [1.8.x-beta] Fix spaces in class names --- Parsedown.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Parsedown.php b/Parsedown.php index 9008a89..37e3645 100644 --- a/Parsedown.php +++ b/Parsedown.php @@ -469,7 +469,21 @@ class Parsedown if ($infostring !== '') { - $Element['attributes'] = array('class' => "language-$infostring"); + /** + * https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#classes + * Every HTML element may have a class attribute specified. + * The attribute, if specified, must have a value that is a set + * of space-separated tokens representing the various classes + * that the element belongs to. + * [...] + * The space characters, for the purposes of this specification, + * are U+0020 SPACE, U+0009 CHARACTER TABULATION (tab), + * U+000A LINE FEED (LF), U+000C FORM FEED (FF), and + * U+000D CARRIAGE RETURN (CR). + */ + $language = substr($infostring, 0, strcspn($infostring, " \t\n\f\r")); + + $Element['attributes'] = array('class' => "language-$language"); } $Block = array(