diff --git a/.travis.yml b/.travis.yml index b9361a6c7..7a8ba35f3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,13 +12,12 @@ matrix: - php: 5.6 - php: 7.0 - php: 7.1 + - php: 7.2 + - php: 7.3 - php: nightly - - php: hhvm - - php: hhvm-nightly fast_finish: true allow_failures: - php: nightly - - php: hhvm-nightly install: - composer install --prefer-dist --no-interaction --no-progress diff --git a/Parsedown.php b/Parsedown.php index 87d612ab8..c5f01a3eb 100644 --- a/Parsedown.php +++ b/Parsedown.php @@ -429,7 +429,21 @@ protected function blockFencedCode($Line) if (isset($matches[1])) { - $class = 'language-'.$matches[1]; + /** + * 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($matches[1], 0, strcspn($matches[1], " \t\n\f\r")); + + $class = 'language-'.$language; $Element['attributes'] = array( 'class' => $class,