Как выделить Java-код в определенных строках, используя prism.js - PullRequest
0 голосов
/ 04 октября 2019

Prism.js выделяет номера строк, которые не работают. Кажется, что после долгих попыток устранения неполадок абсолютное расположение элементов подсветки перекрывает друг друга (см. Рисунок prism css). Это страница, которую я использую для загрузки prism.js: https://prismjs.com/download.html#themes=prism-dark&languages=markup+css+clike+javascript+c+cpp+java+javadoclike+javadoc&plugins=line-highlight+line-numbers+highlight-keywords

Мой код выглядит следующим образом:

<div class="code-block">
<pre data-line="1-8, 10" data-start="31"><code class="language-java">public AlignmentResults unMarshallAlignmentResult(File alignmentFile) {
AlignmentResults alignmentResults;
try {
    JAXBContext jaxbContext = JAXBContext.newInstance(AlignmentResults.class);
    javax.xml.bind.Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
    alignmentResults = (AlignmentResults) unmarshaller.unmarshal(alignmentFile);
} catch (JAXBException e) {
    alignmentResults = null;
}
return alignmentResults;}

Когда веб-страница загружается, она выглядит следующим образомцифра 2 : highlight showing up when page loads. В настоящее время строки 1-8 (31-38) и 10 (41) должны быть выделены.

Если я увеличу масштаб окна моего браузера, появится более определенное выделение, но оно будет только в строке 1 (или во всехосновные моменты сложены в строке 1). enter image description here

1 Ответ

1 голос
/ 04 октября 2019

Старый ответ удален. Совершенно новый ответ:


Смещение работает не так, как ожидалось (I).

Они в сети, например:

<pre data-line="43" data-line-offset="40" ...

И 3-я строка выделена. Смещение равно 40, поэтому считать до 43 (счет 3): 41, 42, 43 - 3-я строка выделена.

В вашем

<pre data-line="1-8, 10" data-start="31">

смещение равно31, но вы хотите начать выделение со строки 1. Что происходит, то подсветка идет назад , чтобы найти строку 1, которая вверх 30 (или 31) строк.

Убедитесь, что data-line больше, чем data-start, если используется смещение или начало данных.

Если я не ошибаюсь, вашадолжно быть:

<pre data-line="31-38, 40" data-line-offset="31">
...