blob: 7c465049757a900d8f82ded8ed85bf974172d0c6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
export function styleLockfile(preview: string) {
// Match all lines that don't start with a whitespace character
const lines = preview.split(/\n(?!\s)/);
return lines.map(styleSection).join("\n");
}
function styleSection(section: string) {
const lines = section.split(/\n/);
return lines.map(styleLine).join("\n");
}
function styleLine(line: string) {
if (line.startsWith("#")) {
return `<span class="mtk5">${line}</span>`;
}
const parts = line.trim().split(" ");
if (line.startsWith(" ")) {
return `<span><span class="mtk1"> ${parts[0]} </span><span class="mtk16">${parts[1]}</span></span>`;
}
if (line.startsWith(" ")) {
const leftPart = `<span class="mtk6"> ${parts[0]} </span>`;
if (parts.length === 1) return `<span>${leftPart}</span>`;
if (parts[1].startsWith('"http://') || parts[1].startsWith('"https://'))
return `<span>${leftPart}<span class="mtk12 detected-link">${parts[1]}</span></span>`;
if (parts[1].startsWith('"')) return `<span>${leftPart}<span class="mtk16">${parts[1]}</span></span>`;
return `<span>${leftPart}<span class="mtk6">${parts[1]}</span></span>`;
}
return `<span class="mtk1">${line} </span>`;
}
|