diff --git a/go.mod b/go.mod index b0cbcdf..972bd0d 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/elnormous/contenttype v1.0.0 github.com/emersion/go-sasl v0.0.0-20211008083017-0b9dcfb154ac github.com/emersion/go-smtp v0.15.0 - github.com/go-chi/chi/v5 v5.0.5 + github.com/go-chi/chi/v5 v5.0.6 github.com/go-fed/httpsig v1.1.0 github.com/gorilla/handlers v1.5.1 github.com/gorilla/securecookie v1.1.1 @@ -50,7 +50,7 @@ require ( // master github.com/yuin/goldmark-emoji v1.0.2-0.20210607094911-0487583eca38 github.com/yuin/goldmark-highlighting v0.0.0-20210516132338-9216f9c5aa01 - golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa + golang.org/x/crypto v0.0.0-20211115234514-b4de73f9ece8 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c golang.org/x/text v0.3.7 diff --git a/go.sum b/go.sum index 4f04a8c..5fcf777 100644 --- a/go.sum +++ b/go.sum @@ -148,8 +148,8 @@ github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/github/fakeca v0.1.0 h1:Km/MVOFvclqxPM9dZBC4+QE564nU4gz4iZ0D9pMw28I= github.com/github/fakeca v0.1.0/go.mod h1:+bormgoGMMuamOscx7N91aOuUST7wdaJ2rNjeohylyo= -github.com/go-chi/chi/v5 v5.0.5 h1:l3RJ8T8TAqLsXFfah+RA6N4pydMbPwSdvNM+AFWvLUM= -github.com/go-chi/chi/v5 v5.0.5/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/go-chi/chi/v5 v5.0.6 h1:CHIMAkr36TRf/zYvOqNKklMDxEm9HuqdiK+syK+tYtw= +github.com/go-chi/chi/v5 v5.0.6/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-fed/httpsig v1.1.0 h1:9M+hb0jkEICD8/cAiNqEB66R87tTINszBRTjwjQzWcI= github.com/go-fed/httpsig v1.1.0/go.mod h1:RCMrTZvN1bJYtofsG4rd5NaO5obxQ5xBkdiS7xsT7bM= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= @@ -512,8 +512,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa h1:idItI2DDfCokpg0N51B2VtiLdJ4vAuXC9fnCb2gACo4= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211115234514-b4de73f9ece8 h1:5QRxNnVsaJP6NAse0UdkRgL3zHMvCRRkrDVLNdNpdy4= +golang.org/x/crypto v0.0.0-20211115234514-b4de73f9ece8/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= diff --git a/highlighting.go b/highlighting.go new file mode 100644 index 0000000..1b609c8 --- /dev/null +++ b/highlighting.go @@ -0,0 +1,37 @@ +package main + +import ( + "github.com/alecthomas/chroma" + "github.com/alecthomas/chroma/styles" +) + +var chromaGoBlogStyle = styles.Register(chroma.MustNewStyle("goblog", chroma.StyleEntries{ + // Monokai + chroma.Text: "#f8f8f2", + chroma.Error: "#960050 bg:#1e0010", + chroma.Comment: "#75715e", + chroma.Keyword: "#66d9ef", + chroma.KeywordNamespace: "#f92672", + chroma.Operator: "#f92672", + chroma.Punctuation: "#f8f8f2", + chroma.Name: "#f8f8f2", + chroma.NameAttribute: "#a6e22e", + chroma.NameClass: "#a6e22e", + chroma.NameConstant: "#66d9ef", + chroma.NameDecorator: "#a6e22e", + chroma.NameException: "#a6e22e", + chroma.NameFunction: "#a6e22e", + chroma.NameOther: "#a6e22e", + chroma.NameTag: "#f92672", + chroma.LiteralNumber: "#ae81ff", + chroma.Literal: "#ae81ff", + chroma.LiteralDate: "#e6db74", + chroma.LiteralString: "#e6db74", + chroma.LiteralStringEscape: "#ae81ff", + chroma.GenericDeleted: "#f92672", + chroma.GenericEmph: "italic", + chroma.GenericInserted: "#a6e22e", + chroma.GenericStrong: "bold", + chroma.GenericSubheading: "#75715e", + chroma.Background: "bg:#272822", +})) diff --git a/markdown.go b/markdown.go index 93cd0bd..b0bbff5 100644 --- a/markdown.go +++ b/markdown.go @@ -38,7 +38,7 @@ func (a *goBlog) initMarkdown() { marktag.Mark, emoji.Emoji, highlighting.NewHighlighting( - highlighting.WithStyle("monokai"), + highlighting.WithCustomStyle(chromaGoBlogStyle), highlighting.WithFormatOptions( chromahtml.ClassPrefix("c-"), chromahtml.WithClasses(true), diff --git a/original-assets/styles/styles.scss b/original-assets/styles/styles.scss index 4c99801..a5ced6e 100644 --- a/original-assets/styles/styles.scss +++ b/original-assets/styles/styles.scss @@ -46,25 +46,26 @@ html { body { @extend .sans-serif; @include color(background, background); + @include color(color, primary); line-height: 1.5; margin: 0 auto; max-width: 700px; padding: 10px; word-break: break-word; overflow-wrap: break-word; - + * { - @include color(color, primary); max-width: 100%; } - [class*='c-'] { - // monokai is dark, so we need to use light color for text - color: #{map-get($colors, primary-dark)}; - } - *::selection { - @include color(color, background); - @include color(background, primary); - } +} + +a, hr { + @include color(color, primary); +} + +*::selection { + @include color(color, background); + @include color(background, primary); } header { diff --git a/templateAssets.go b/templateAssets.go index 2bc1633..8919a4f 100644 --- a/templateAssets.go +++ b/templateAssets.go @@ -11,7 +11,6 @@ import ( "strings" chromahtml "github.com/alecthomas/chroma/formatters/html" - "github.com/alecthomas/chroma/styles" "go.goblog.app/app/pkgs/contenttype" ) @@ -121,7 +120,7 @@ func (a *goBlog) initChromaCSS() error { return nil } // Initialize the style - chromaStyleBuilder := styles.Get("monokai").Builder() + chromaStyleBuilder := chromaGoBlogStyle.Builder() chromaStyle, err := chromaStyleBuilder.Build() if err != nil { return err @@ -135,6 +134,7 @@ func (a *goBlog) initChromaCSS() error { // Write the CSS to the file chromahtml.New( chromahtml.ClassPrefix("c-"), + chromahtml.WithAllClasses(true), ).WriteCSS(chromaTempFile, chromaStyle) // Close the file _ = chromaTempFile.Close() @@ -144,8 +144,6 @@ func (a *goBlog) initChromaCSS() error { if err != nil { return err } - if compiled != "" { - a.assetFileNames["css/chroma.css"] = compiled - } + a.assetFileNames["css/chroma.css"] = compiled return nil } diff --git a/templates/assets/css/styles.css b/templates/assets/css/styles.css index 1b9fd72..cb4c01e 100644 --- a/templates/assets/css/styles.css +++ b/templates/assets/css/styles.css @@ -23,6 +23,8 @@ html { body { background: #fff; background: var(--background, #fff); + color: #000; + color: var(--primary, #000); line-height: 1.5; margin: 0 auto; max-width: 700px; @@ -31,14 +33,15 @@ body { overflow-wrap: break-word; } body * { - color: #000; - color: var(--primary, #000); max-width: 100%; } -body [class*=c-] { - color: #fff; + +a, hr { + color: #000; + color: var(--primary, #000); } -body *::selection { + +*::selection { color: #fff; color: var(--background, #fff); background: #000;