Skip to content

Commit

Permalink
embed theme as bytes to use with WithStylesFromJSONBytes
Browse files Browse the repository at this point in the history
  • Loading branch information
getinnocuous committed Apr 16, 2024
1 parent d6bd3bb commit ecdae14
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 8 deletions.
11 changes: 6 additions & 5 deletions cmd/theme.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,19 +121,20 @@ var deletedLineStyle = lipgloss.NewStyle().Background(lipgloss.Color(ColorPalett
var containerStyle = lipgloss.NewStyle().PaddingLeft(2).PaddingTop(2)

//go:embed overmind-theme.json
var overmindTheme string
var overmindTheme []byte

//go:embed overmind-theme-dark.json
var overmindThemeDark string
var overmindThemeDark []byte

func markdownToString(markdown string) string {
themePath := overmindTheme
themeToUse := overmindTheme
hasDarkBackground := termenv.HasDarkBackground()
if hasDarkBackground {
themePath = overmindThemeDark
themeToUse = overmindThemeDark
}

r, err := glamour.NewTermRenderer(
glamour.WithStylesFromJSONFile(themePath),
glamour.WithStylesFromJSONBytes(themeToUse),
)
if err != nil {
panic(fmt.Errorf("failed to initialize terminal renderer: %w", err))
Expand Down
6 changes: 3 additions & 3 deletions cmd/theme_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import (
)

func TestMarkdownToString(t *testing.T) {
// TODO: change this test data to use something that actually gets rendered to ANSI sequences and capture the correct output.
markdown := "This is a test markdown"
expectedOutput := "This is a test markdown"
markdown := `# some random markdown`
expectedOutput := "\n\x1b[38;2;255;255;255;48;2;121;112;235;1m\x1b[0m\x1b[38;2;255;255;255;48;2;121;112;235;1m\x1b[0m \x1b[38;2;255;255;255;48;2;121;112;235;1m \x1b[0m\x1b[38;2;255;255;255;48;2;121;112;235;1msome random\x1b[0m\x1b[38;2;255;255;255;48;2;121;112;235;1m markdown\x1b[0m\x1b[38;2;255;255;255;48;2;121;112;235;1m \x1b[0m\x1b[38;2;186;186;186m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[38;2;186;186;186m \x1b[0m\x1b[0m\n\x1b[0m\n"

got := markdownToString(markdown)
if got != expectedOutput {
t.Errorf("Expected %q, but got %q", expectedOutput, got)
Expand Down

0 comments on commit ecdae14

Please sign in to comment.