Commit f51476f
Changed files (5)
internal
generator
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(