Commit f51476f

mo khan <mo@mokhan.ca>
2026-01-31 03:21:31
fix: remove duplicate css
1 parent b51a073
Changed files (5)
internal/generator/blob.go
@@ -97,6 +97,7 @@ func GenerateBlobs(files []git.Blob, params Params) error {
 						CurrentRefDir:    params.Ref.DirName(),
 						Selected:         "code",
 						NeedsMarkdownCSS: true,
+						NeedsSyntaxCSS:   true,
 					},
 					HeaderParams: templates.HeaderParams{
 						Ref:         params.Ref,
internal/generator/css.go
@@ -5,7 +5,6 @@ import (
 	"path/filepath"
 	"strings"
 
-	"github.com/alecthomas/chroma/v2"
 	"github.com/alecthomas/chroma/v2/formatters/html"
 	"github.com/alecthomas/chroma/v2/styles"
 
@@ -46,14 +45,12 @@ func writeMarkdownCSS(cssDir string) error {
 }
 
 func writeSyntaxCSS(cssDir string) error {
-	formatterOptions := []html.Option{
+	formatter := html.New(
 		html.WithLineNumbers(true),
 		html.WithLinkableLineNumbers(true, "L"),
 		html.WithClasses(true),
 		html.WithCSSComments(false),
-	}
-
-	formatter := html.New(formatterOptions...)
+	)
 	lightStyle := styles.Get("github")
 	darkStyle := styles.Get("github-dark")
 
@@ -61,25 +58,15 @@ func writeSyntaxCSS(cssDir string) error {
 	_ = formatter.WriteCSS(&light, lightStyle)
 	_ = formatter.WriteCSS(&dark, darkStyle)
 
-	diffFormatter := html.New(
-		html.WithClasses(true),
-		html.WithCSSComments(false),
-		html.WithCustomCSS(map[chroma.TokenType]string{
-			chroma.GenericInserted: "display: block;",
-			chroma.GenericDeleted:  "display: block;",
-		}),
-	)
-	var diffLight, diffDark strings.Builder
-	_ = diffFormatter.WriteCSS(&diffLight, lightStyle)
-	_ = diffFormatter.WriteCSS(&diffDark, darkStyle)
+	diffCSS := ".chroma .gi { display: block; }\n.chroma .gd { display: block; }\n"
 
 	css := "@media (prefers-color-scheme: light) {\n" +
 		light.String() +
-		diffLight.String() +
+		diffCSS +
 		"\n}\n" +
 		"@media (prefers-color-scheme: dark) {\n" +
 		dark.String() +
-		diffDark.String() +
+		diffCSS +
 		"\n}"
 
 	return os.WriteFile(filepath.Join(cssDir, "syntax.css"), []byte(css), 0o644)
internal/generator/index.go
@@ -97,6 +97,7 @@ func GenerateIndex(files []git.Blob, params Params) error {
 
 	rootHref := "./"
 	readmeHTML := readme(di.files, dirsSet, filesSet, params, rootHref)
+	hasReadme := readmeHTML != ""
 
 	err = templates.ListTemplate.ExecuteTemplate(f, "layout.gohtml", templates.ListParams{
 		LayoutParams: templates.LayoutParams{
@@ -105,7 +106,8 @@ func GenerateIndex(files []git.Blob, params Params) error {
 			RootHref:         rootHref,
 			CurrentRefDir:    params.Ref.DirName(),
 			Selected:         "code",
-			NeedsMarkdownCSS: readmeHTML != "",
+			NeedsMarkdownCSS: hasReadme,
+			NeedsSyntaxCSS:   hasReadme,
 		},
 		HeaderParams: templates.HeaderParams{
 			Ref:         params.Ref,
internal/generator/list.go
@@ -127,6 +127,7 @@ func GenerateLists(files []git.Blob, params Params) error {
 
 		readmeHTML := readme(di.files, dirsSet, filesSet, params, rootHref)
 
+		hasReadme := readmeHTML != ""
 		return templates.ListTemplate.ExecuteTemplate(f, "layout.gohtml", templates.ListParams{
 			LayoutParams: templates.LayoutParams{
 				Title:            title,
@@ -134,7 +135,8 @@ func GenerateLists(files []git.Blob, params Params) error {
 				RootHref:         rootHref,
 				CurrentRefDir:    params.Ref.DirName(),
 				Selected:         "code",
-				NeedsMarkdownCSS: readmeHTML != "",
+				NeedsMarkdownCSS: hasReadme,
+				NeedsSyntaxCSS:   hasReadme,
 			},
 			HeaderParams: templates.HeaderParams{
 				Ref:         params.Ref,
internal/generator/markdown.go
@@ -1,6 +1,7 @@
 package generator
 
 import (
+	chromahtml "github.com/alecthomas/chroma/v2/formatters/html"
 	"github.com/yuin/goldmark"
 	highlighting "github.com/yuin/goldmark-highlighting/v2"
 	"github.com/yuin/goldmark/extension"
@@ -14,7 +15,9 @@ func createMarkdown() goldmark.Markdown {
 			extension.GFM,
 			extension.Typographer,
 			highlighting.NewHighlighting(
-				highlighting.WithStyle("github"),
+				highlighting.WithFormatOptions(
+					chromahtml.WithClasses(true),
+				),
 			),
 		),
 		goldmark.WithParserOptions(