Непоследовательная подсветка синтаксиса в highlightjs
Я использую отмеченные с highlightjs для подсветки синтаксиса. Оба последние версии. следующая уценка создает несогласованный выделенный код.
```java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
class FilesHandling {
public static void main(String[] args) {
try {
List<String> lines = Files.readAllLines(Paths.get("/path/to/file.txt"));
int lineNum = 1;
} catch (IOException e) {
}
}
}
```
```java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
class FilesHandling {
public static void main(String[] args) {
try {
} catch (IOException e) {
}
}
}
```
Это генерирует следующий HTML-код
<pre><code class="lang-java"><span class="hljs-keyword">import</span> java.io.IOException;
<span class="hljs-keyword">import</span> java.nio.file.Files;
<span class="hljs-keyword">import</span> java.nio.file.Paths;
<span class="hljs-keyword">import</span> java.util.<span class="hljs-built_in">List</span>;
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">FilesHandling</span> </span>{
public <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> main(<span class="hljs-built_in">String</span>[] args) {
<span class="hljs-keyword">try</span> {
<span class="hljs-built_in">List</span><<span class="hljs-built_in">String</span>> lines = Files.readAllLines(Paths.<span class="hljs-keyword">get</span>(<span class="hljs-string">"/path/to/file.txt"</span>));
<span class="hljs-built_in">int</span> lineNum = <span class="hljs-number">1</span>;
} <span class="hljs-keyword">catch</span> (IOException e) {
}
}
}
</code></pre>
<pre><code class="lang-java"><span class="hljs-meta"><span class="hljs-meta-keyword">import</span> java.io.IOException;</span>
<span class="hljs-meta"><span class="hljs-meta-keyword">import</span> java.nio.file.Files;</span>
<span class="hljs-meta"><span class="hljs-meta-keyword">import</span> java.nio.file.Paths;</span>
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">FilesHandling</span> </span>{
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> main(String[] args) {
<span class="hljs-keyword">try</span> {
} <span class="hljs-keyword">catch</span> (IOException e) {
}
}
}
</code></pre>
Посмотрите на разницу между первым фрагментом кода и остальными.
Ниже приведена моя конфигурация в коде
marked = require('marked');
// Synchronous highlighting with highlight.js
marked.setOptions({
breaks: true,
highlight: function(code) {
return require('highlight.js').highlightAuto(code).value;
}
});