highlightjs/highlight.js

(PHP Template) A single apostrophe ' breaks php-template highlighting

Open

#4.152 geöffnet am 24. Okt. 2024

Auf GitHub ansehen
 (17 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)JavaScript (3.497 Forks)batch import
buggood first issuehelp welcomelanguage

Repository-Metriken

Stars
 (22.960 Stars)
PR-Merge-Metriken
 (Keine gemergten PRs in 30 T)

Beschreibung

Describe the issue An apostrophe ' that exists on its own without being closed seems to break highlighting of everything that comes after it even if it's in a comment or escaped but only with the language php-template. With php it works fine as it should.

Funnily if anywhere later this ' is "closed" it works again.

Which language seems to have the issue? php-template

Are you using highlight or highlightAuto? Highlight, not auto.

Sample Code to Reproduce Code: See expected behaviour

Not highlighted:

<?php
// This won't be highlighted unless there is another 
// single apostrophe later.
?>
<p>Some HTML <?= '\code' ?></p>

image

Correctly highlighted:

<?php
// This won't be highlighted unless there is another 
// single apostrophe later.
?>
<p>Some HTML <?= '\'code' ?></p>

image

Expected behavior Github highlights the php bits:

<?php
// This won't be highlighted unless there is another 
// single apostrophe later.
?>
<p>Some HTML <?= '\code' ?></p>

I expect it to highlight the code correctly even if not every ' is closed. In a comment for instance, English words allow for shortcuts with ' for instance "don't" or "can't".

Additional observations
Its breaks only if the apostrophe is in PHP code (not HTML) and if it's not in a code block comment /* such as this, that won't cause any troubles */. It's always everything that comes after it that is broken not before so if half the file doesn't contain a ' and then suddenly a php part with a ' either in a // comment ' or in a string 'string \' with an apostrophe' the bottom half of the file is not highlighted.

Contributor Guide