Skip to content

Commit 9c090cc

Browse files
committed
fix
1 parent d27d36f commit 9c090cc

File tree

7 files changed

+107
-9
lines changed

7 files changed

+107
-9
lines changed

.stylelintrc.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
plugins:
22
- stylelint-declaration-strict-value
33

4+
ignoreFiles:
5+
- "**/*.go"
6+
47
overrides:
58
- files: ["**/*.less"]
69
customSyntax: postcss-less
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
// Copyright 2023 The Gitea Authors. All rights reserved.
2+
// SPDX-License-Identifier: MIT
3+
4+
//go:build ignore
5+
6+
/*
7+
This tool is used to compare the CSS names in a chroma builtin styles with the Gitea theme CSS names.
8+
9+
It outputs the difference between the two sets of CSS names, eg:
10+
11+
```
12+
CSS names not in builtin:
13+
.chroma .ln
14+
----
15+
Builtin CSS names not in file:
16+
.chroma .vm
17+
```
18+
19+
Developers could use this tool to re-sync the CSS names in the Gitea theme.
20+
*/
21+
22+
package main
23+
24+
import (
25+
"os"
26+
"regexp"
27+
"strings"
28+
29+
"github.com/alecthomas/chroma/v2"
30+
)
31+
32+
func main() {
33+
if len(os.Args) != 2 {
34+
println("Usage: chroma-style-diff css-or-less-file")
35+
os.Exit(1)
36+
}
37+
38+
data, err := os.ReadFile(os.Args[1])
39+
if err != nil {
40+
println(err.Error())
41+
os.Exit(1)
42+
}
43+
44+
content := string(data)
45+
46+
// a simple CSS parser to collect CSS names
47+
content = regexp.MustCompile("//.*\r?\n").ReplaceAllString(content, "\n")
48+
content = regexp.MustCompile("/\\*.*?\\*/").ReplaceAllString(content, "")
49+
matches := regexp.MustCompile("\\s*([-.#:\\w\\s]+)\\s*\\{[^}]*}").FindAllStringSubmatch(content, -1)
50+
51+
cssNames := map[string]bool{}
52+
for _, matchGroup := range matches {
53+
cssName := strings.TrimSpace(matchGroup[1])
54+
cssNames[cssName] = true
55+
}
56+
57+
// collect Chroma builtin CSS names
58+
builtin := map[string]bool{}
59+
for tokenType, cssName := range chroma.StandardTypes {
60+
if tokenType > 0 && cssName != "" {
61+
builtin[".chroma ."+cssName] = true
62+
}
63+
}
64+
65+
// show the diff
66+
println("CSS names not in builtin:")
67+
for cssName := range cssNames {
68+
if !builtin[cssName] {
69+
println(cssName)
70+
}
71+
}
72+
println("----")
73+
println("Builtin CSS names not in file:")
74+
for cssName := range builtin {
75+
if !cssNames[cssName] {
76+
println(cssName)
77+
}
78+
}
79+
}

web_src/less/chroma/dark.less

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
/* stylelint-disable block-no-empty */
2+
13
.chroma .bp { color: #fabd2f; } /* NameBuiltinPseudo */
24
.chroma .c { color: #777e94; } /* Comment */
35
.chroma .c1 { color: #777e94; } /* CommentSingle */
@@ -7,34 +9,36 @@
79
.chroma .cpf { color: #649bc4; } /* CommentPreprocFile */
810
.chroma .cs { color: #9075cd; } /* CommentSpecial */
911
.chroma .dl { color: #649bc4; } /* LiteralStringDelimiter */
12+
.chroma .fm {} /* NameFunctionMagic */
13+
.chroma .g {} /* Generic */
1014
.chroma .gd { color: #ffffff; background-color: #5f3737; } /* GenericDeleted */
1115
.chroma .ge { color: #ddee30; } /* GenericEmph */
1216
.chroma .gh { color: #ffaa10; } /* GenericHeading */
1317
.chroma .gi { color: #ffffff; background-color: #3a523a; } /* GenericInserted */
18+
.chroma .gl {} /* GenericUnderline */
1419
.chroma .go { color: #777e94; } /* GenericOutput */
1520
.chroma .gp { color: #ebdbb2; } /* GenericPrompt */
1621
.chroma .gr { color: #ff4433; } /* GenericError */
1722
.chroma .gs { color: #ebdbb2; } /* GenericStrong */
1823
.chroma .gt { color: #ff7540; } /* GenericTraceback */
1924
.chroma .gu { color: #b8bb26; } /* GenericSubheading */
20-
.chroma .hl { background-color: #3f424d; } /* LineHighlight */
2125
.chroma .il { color: #649bc4; } /* LiteralNumberIntegerLong */
2226
.chroma .k { color: #ff7540; } /* Keyword */
2327
.chroma .kc { color: #649bc4; } /* KeywordConstant */
2428
.chroma .kd { color: #ff7540; } /* KeywordDeclaration */
2529
.chroma .kn { color: #ffaa10; } /* KeywordNamespace */
2630
.chroma .kp { color: #5f8700; } /* KeywordPseudo */
2731
.chroma .kr { color: #ff7540; } /* KeywordReserved */
28-
.chroma .kt { color: #fabd2f; } /* KeywordType */
29-
.chroma .ln { color: #7f8699; } /* LineNumbers */
30-
.chroma .lnt { color: #7f8699; } /* LineNumbersTable */
32+
.chroma .kt { color: #ff7b72; } /* KeywordType */
33+
.chroma .l {} /* Literal */
34+
.chroma .ld {} /* LiteralDate */
3135
.chroma .m { color: #649bc4; } /* LiteralNumber */
3236
.chroma .mb { color: #649bc4; } /* LiteralNumberBin */
3337
.chroma .mf { color: #649bc4; } /* LiteralNumberFloat */
3438
.chroma .mh { color: #649bc4; } /* LiteralNumberHex */
3539
.chroma .mi { color: #649bc4; } /* LiteralNumberInteger */
3640
.chroma .mo { color: #649bc4; } /* LiteralNumberOct */
37-
.chroma .n { color: #fabd2f; } /* Name */
41+
.chroma .n { color: #c9d1d9; } /* Name */
3842
.chroma .na { color: #b8bb26; } /* NameAttribute */
3943
.chroma .nb { color: #fabd2f; } /* NameBuiltin */
4044
.chroma .nc { color: #ffaa10; } /* NameClass */
@@ -51,6 +55,7 @@
5155
.chroma .o { color: #ff7540; } /* Operator */
5256
.chroma .ow { color: #5f8700; } /* OperatorWord */
5357
.chroma .p { color: #d2d4db; } /* Punctuation */
58+
.chroma .py {} /* NameProperty */
5459
.chroma .s { color: #b8bb26; } /* LiteralString */
5560
.chroma .s1 { color: #b8bb26; } /* LiteralStringSingle */
5661
.chroma .s2 { color: #b8bb26; } /* LiteralStringDouble */
@@ -67,4 +72,5 @@
6772
.chroma .vc { color: #ff7540; } /* NameVariableClass */
6873
.chroma .vg { color: #ffaa10; } /* NameVariableGlobal */
6974
.chroma .vi { color: #ffaa10; } /* NameVariableInstance */
75+
.chroma .vm {} /* NameVariableMagic */
7076
.chroma .w { color: #7f8699; } /* TextWhitespace */

web_src/less/chroma/light.less

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
/* stylelint-disable */
2+
13
.chroma .bp { color: #999999; } /* NameBuiltinPseudo */
24
.chroma .c { color: #6a737d; } /* Comment */
35
.chroma .c1 { color: #6a737d; } /* CommentSingle */
@@ -7,16 +9,19 @@
79
.chroma .cpf { color: #4c4dbc; } /* CommentPreprocFile */
810
.chroma .cs { color: #999999; } /* CommentSpecial */
911
.chroma .dl { color: #106303; } /* LiteralStringDelimiter */
12+
.chroma .fm {} /* NameFunctionMagic */
13+
.chroma .g {} /* Generic */
1014
.chroma .gd { color: #000000; background-color: #ffdddd; } /* GenericDeleted */
1115
.chroma .ge { color: #000000; } /* GenericEmph */
1216
.chroma .gh { color: #999999; } /* GenericHeading */
1317
.chroma .gi { color: #000000; background-color: #ddffdd; } /* GenericInserted */
18+
.chroma .gl {} /* GenericUnderline */
1419
.chroma .go { color: #888888; } /* GenericOutput */
1520
.chroma .gp { color: #555555; } /* GenericPrompt */
1621
.chroma .gr { color: #aa0000; } /* GenericError */
22+
.chroma .gs {} /* GenericStrong */
1723
.chroma .gt { color: #aa0000; } /* GenericTraceback */
1824
.chroma .gu { color: #aaaaaa; } /* GenericSubheading */
19-
.chroma .hl { background-color: #e5e5e5; } /* LineHighlight */
2025
.chroma .il { color: #009999; } /* LiteralNumberIntegerLong */
2126
.chroma .k { color: #d73a49; } /* Keyword */
2227
.chroma .kc { color: #d73a49; } /* KeywordConstant */
@@ -25,14 +30,15 @@
2530
.chroma .kp { color: #d73a49; } /* KeywordPseudo */
2631
.chroma .kr { color: #d73a49; } /* KeywordReserved */
2732
.chroma .kt { color: #445588; } /* KeywordType */
28-
.chroma .ln { color: #7f7f7f; } /* LineNumbers */
29-
.chroma .lnt { color: #7f7f7f; } /* LineNumbersTable */
33+
.chroma .l {} /* Literal */
34+
.chroma .ld {} /* LiteralDate */
3035
.chroma .m { color: #009999; } /* LiteralNumber */
3136
.chroma .mb { color: #009999; } /* LiteralNumberBin */
3237
.chroma .mf { color: #009999; } /* LiteralNumberFloat */
3338
.chroma .mh { color: #009999; } /* LiteralNumberHex */
3439
.chroma .mi { color: #009999; } /* LiteralNumberInteger */
3540
.chroma .mo { color: #009999; } /* LiteralNumberOct */
41+
.chroma .n {} /* Name */
3642
.chroma .na { color: #d73a49; } /* NameAttribute */
3743
.chroma .nb { color: #005cc5; } /* NameBuiltin */
3844
.chroma .nc { color: #445588; } /* NameClass */
@@ -48,6 +54,8 @@
4854
.chroma .nx { color: #24292e; } /* NameOther */
4955
.chroma .o { color: #d73a49; } /* Operator */
5056
.chroma .ow { color: #d73a49; } /* OperatorWord */
57+
.chroma .p {} /* Punctuation */
58+
.chroma .py {} /* NameProperty */
5159
.chroma .s { color: #106303; } /* LiteralString */
5260
.chroma .s1 { color: #cc7a00; } /* LiteralStringSingle */
5361
.chroma .s2 { color: #106303; } /* LiteralStringDouble */
@@ -64,4 +72,5 @@
6472
.chroma .vc { color: #008080; } /* NameVariableClass */
6573
.chroma .vg { color: #008080; } /* NameVariableGlobal */
6674
.chroma .vi { color: #008080; } /* NameVariableInstance */
75+
.chroma .vm {} /* NameVariableMagic */
6776
.chroma .w { color: #bbbbbb; } /* TextWhitespace */
File renamed without changes.

web_src/less/index.less

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
@import "./code/linebutton.less";
1616
@import "./markup/asciicast.less";
1717

18-
@import "./chroma/base.less";
1918
@import "./chroma/light.less";
19+
@import "./chroma/overwrite.less";
2020
@import "./codemirror/base.less";
2121
@import "./codemirror/light.less";
2222
@import "./console/console.less";

web_src/less/themes/theme-arc-green.less

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@import "../chroma/dark.less";
2+
@import "../chroma/overwrite.less";
23
@import "../codemirror/dark.less";
34

45
:root {

0 commit comments

Comments
 (0)