mirror of
https://github.com/charmbracelet/glow
synced 2024-09-20 06:22:02 +00:00
feat: update glamour (#634)
* feat: updating glamour Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: trim space * chore: bump Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * chore(deps): bump Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: perms * fix: improve logs * feat: update glamour --------- Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
This commit is contained in:
parent
4578bc149a
commit
c89c8bd6e7
6 changed files with 31 additions and 25 deletions
2
go.mod
2
go.mod
|
@ -7,7 +7,7 @@ require (
|
||||||
github.com/caarlos0/env/v11 v11.0.1
|
github.com/caarlos0/env/v11 v11.0.1
|
||||||
github.com/charmbracelet/bubbles v0.18.0
|
github.com/charmbracelet/bubbles v0.18.0
|
||||||
github.com/charmbracelet/bubbletea v0.26.7-0.20240711210516-ea13ffb9a18d
|
github.com/charmbracelet/bubbletea v0.26.7-0.20240711210516-ea13ffb9a18d
|
||||||
github.com/charmbracelet/glamour v0.7.1-0.20240725142829-adb0b8d1c3ea
|
github.com/charmbracelet/glamour v0.8.0
|
||||||
github.com/charmbracelet/lipgloss v0.12.2-0.20240712161825-87dd58def709
|
github.com/charmbracelet/lipgloss v0.12.2-0.20240712161825-87dd58def709
|
||||||
github.com/charmbracelet/log v0.4.0
|
github.com/charmbracelet/log v0.4.0
|
||||||
github.com/charmbracelet/x/editor v0.0.0-20240625164403-2627ec16405d
|
github.com/charmbracelet/x/editor v0.0.0-20240625164403-2627ec16405d
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -59,8 +59,8 @@ github.com/charmbracelet/bubbles v0.18.0 h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/
|
||||||
github.com/charmbracelet/bubbles v0.18.0/go.mod h1:08qhZhtIwzgrtBjAcJnij1t1H0ZRjwHyGsy6AL11PSw=
|
github.com/charmbracelet/bubbles v0.18.0/go.mod h1:08qhZhtIwzgrtBjAcJnij1t1H0ZRjwHyGsy6AL11PSw=
|
||||||
github.com/charmbracelet/bubbletea v0.26.7-0.20240711210516-ea13ffb9a18d h1:IHcf2pu0D9dau/Z1Jff53mke0Yc62lf1sVRl0vWsAew=
|
github.com/charmbracelet/bubbletea v0.26.7-0.20240711210516-ea13ffb9a18d h1:IHcf2pu0D9dau/Z1Jff53mke0Yc62lf1sVRl0vWsAew=
|
||||||
github.com/charmbracelet/bubbletea v0.26.7-0.20240711210516-ea13ffb9a18d/go.mod h1:MT/hMxp8fkrH8YV7AZ0KM7SeveivHPy0lUaZL0sBOxU=
|
github.com/charmbracelet/bubbletea v0.26.7-0.20240711210516-ea13ffb9a18d/go.mod h1:MT/hMxp8fkrH8YV7AZ0KM7SeveivHPy0lUaZL0sBOxU=
|
||||||
github.com/charmbracelet/glamour v0.7.1-0.20240725142829-adb0b8d1c3ea h1:+zL7DrRjedvLEMQtKEajxpGMHMMD1y9yyk30TZyEx34=
|
github.com/charmbracelet/glamour v0.8.0 h1:tPrjL3aRcQbn++7t18wOpgLyl8wrOHUEDS7IZ68QtZs=
|
||||||
github.com/charmbracelet/glamour v0.7.1-0.20240725142829-adb0b8d1c3ea/go.mod h1:8oyd4gn8mrEWXeMnQq172bcowKd6LSmR8tOCS3sXn/s=
|
github.com/charmbracelet/glamour v0.8.0/go.mod h1:ViRgmKkf3u5S7uakt2czJ272WSg2ZenlYEZXT2x7Bjw=
|
||||||
github.com/charmbracelet/lipgloss v0.12.2-0.20240712161825-87dd58def709 h1:xKyYI89iCZPBA4QOBN1WQ8Fqt+iH09K3Ywx0qOKVPUo=
|
github.com/charmbracelet/lipgloss v0.12.2-0.20240712161825-87dd58def709 h1:xKyYI89iCZPBA4QOBN1WQ8Fqt+iH09K3Ywx0qOKVPUo=
|
||||||
github.com/charmbracelet/lipgloss v0.12.2-0.20240712161825-87dd58def709/go.mod h1:lVwxBOJ0KkZflL9y+DObgGY8V90IZUJ1e6jjZ+PBcnE=
|
github.com/charmbracelet/lipgloss v0.12.2-0.20240712161825-87dd58def709/go.mod h1:lVwxBOJ0KkZflL9y+DObgGY8V90IZUJ1e6jjZ+PBcnE=
|
||||||
github.com/charmbracelet/log v0.4.0 h1:G9bQAcx8rWA2T3pWvx7YtPTPwgqpk7D68BX21IRW8ZM=
|
github.com/charmbracelet/log v0.4.0 h1:G9bQAcx8rWA2T3pWvx7YtPTPwgqpk7D68BX21IRW8ZM=
|
||||||
|
|
4
log.go
4
log.go
|
@ -1,6 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
|
@ -17,12 +18,13 @@ func getLogFilePath() (string, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupLog() (func() error, error) {
|
func setupLog() (func() error, error) {
|
||||||
|
log.SetOutput(io.Discard)
|
||||||
// Log to file, if set
|
// Log to file, if set
|
||||||
logFile, err := getLogFilePath()
|
logFile, err := getLogFilePath()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := os.MkdirAll(filepath.Dir(logFile), 0o644); err != nil {
|
if err := os.MkdirAll(filepath.Dir(logFile), 0o755); err != nil {
|
||||||
// log disabled
|
// log disabled
|
||||||
return func() error { return nil }, nil
|
return func() error { return nil }, nil
|
||||||
}
|
}
|
||||||
|
|
7
main.go
7
main.go
|
@ -14,6 +14,7 @@ import (
|
||||||
|
|
||||||
"github.com/caarlos0/env/v11"
|
"github.com/caarlos0/env/v11"
|
||||||
"github.com/charmbracelet/glamour"
|
"github.com/charmbracelet/glamour"
|
||||||
|
"github.com/charmbracelet/glamour/styles"
|
||||||
"github.com/charmbracelet/glow/ui"
|
"github.com/charmbracelet/glow/ui"
|
||||||
"github.com/charmbracelet/glow/utils"
|
"github.com/charmbracelet/glow/utils"
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
|
@ -149,7 +150,7 @@ func validateOptions(cmd *cobra.Command) error {
|
||||||
|
|
||||||
// validate the glamour style
|
// validate the glamour style
|
||||||
style = viper.GetString("style")
|
style = viper.GetString("style")
|
||||||
if style != glamour.AutoStyle && glamour.DefaultStyles[style] == nil {
|
if style != styles.AutoStyle && styles.DefaultStyles[style] == nil {
|
||||||
style = utils.ExpandPath(style)
|
style = utils.ExpandPath(style)
|
||||||
if _, err := os.Stat(style); errors.Is(err, fs.ErrNotExist) {
|
if _, err := os.Stat(style); errors.Is(err, fs.ErrNotExist) {
|
||||||
return fmt.Errorf("Specified style does not exist: %s", style)
|
return fmt.Errorf("Specified style does not exist: %s", style)
|
||||||
|
@ -357,7 +358,7 @@ func init() {
|
||||||
// "Glow Classic" cli arguments
|
// "Glow Classic" cli arguments
|
||||||
rootCmd.PersistentFlags().StringVar(&configFile, "config", "", fmt.Sprintf("config file (default %s)", viper.GetViper().ConfigFileUsed()))
|
rootCmd.PersistentFlags().StringVar(&configFile, "config", "", fmt.Sprintf("config file (default %s)", viper.GetViper().ConfigFileUsed()))
|
||||||
rootCmd.Flags().BoolVarP(&pager, "pager", "p", false, "display with pager")
|
rootCmd.Flags().BoolVarP(&pager, "pager", "p", false, "display with pager")
|
||||||
rootCmd.Flags().StringVarP(&style, "style", "s", glamour.AutoStyle, "style name or JSON path")
|
rootCmd.Flags().StringVarP(&style, "style", "s", styles.AutoStyle, "style name or JSON path")
|
||||||
rootCmd.Flags().UintVarP(&width, "width", "w", 0, "word-wrap at width (set to 0 to disable)")
|
rootCmd.Flags().UintVarP(&width, "width", "w", 0, "word-wrap at width (set to 0 to disable)")
|
||||||
rootCmd.Flags().BoolVarP(&showAllFiles, "all", "a", false, "show system files and directories (TUI-mode only)")
|
rootCmd.Flags().BoolVarP(&showAllFiles, "all", "a", false, "show system files and directories (TUI-mode only)")
|
||||||
rootCmd.Flags().BoolVarP(&showLineNumbers, "line-numbers", "l", false, "show line numbers (TUI-mode only)")
|
rootCmd.Flags().BoolVarP(&showLineNumbers, "line-numbers", "l", false, "show line numbers (TUI-mode only)")
|
||||||
|
@ -374,7 +375,7 @@ func init() {
|
||||||
_ = viper.BindPFlag("showLineNumbers", rootCmd.Flags().Lookup("line-numbers"))
|
_ = viper.BindPFlag("showLineNumbers", rootCmd.Flags().Lookup("line-numbers"))
|
||||||
_ = viper.BindPFlag("showAllFiles", rootCmd.Flags().Lookup("all"))
|
_ = viper.BindPFlag("showAllFiles", rootCmd.Flags().Lookup("all"))
|
||||||
|
|
||||||
viper.SetDefault("style", glamour.AutoStyle)
|
viper.SetDefault("style", styles.AutoStyle)
|
||||||
viper.SetDefault("width", 0)
|
viper.SetDefault("width", 0)
|
||||||
|
|
||||||
rootCmd.AddCommand(configCmd, manCmd)
|
rootCmd.AddCommand(configCmd, manCmd)
|
||||||
|
|
8
ui/ui.go
8
ui/ui.go
|
@ -9,7 +9,7 @@ import (
|
||||||
|
|
||||||
"github.com/charmbracelet/bubbles/list"
|
"github.com/charmbracelet/bubbles/list"
|
||||||
tea "github.com/charmbracelet/bubbletea"
|
tea "github.com/charmbracelet/bubbletea"
|
||||||
"github.com/charmbracelet/glamour"
|
"github.com/charmbracelet/glamour/styles"
|
||||||
"github.com/charmbracelet/glow/utils"
|
"github.com/charmbracelet/glow/utils"
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
"github.com/charmbracelet/log"
|
"github.com/charmbracelet/log"
|
||||||
|
@ -134,11 +134,11 @@ func (m *model) unloadDocument() []tea.Cmd {
|
||||||
func newModel(cfg Config) tea.Model {
|
func newModel(cfg Config) tea.Model {
|
||||||
initSections()
|
initSections()
|
||||||
|
|
||||||
if cfg.GlamourStyle == glamour.AutoStyle {
|
if cfg.GlamourStyle == styles.AutoStyle {
|
||||||
if te.HasDarkBackground() {
|
if te.HasDarkBackground() {
|
||||||
cfg.GlamourStyle = glamour.DarkStyle
|
cfg.GlamourStyle = styles.DarkStyle
|
||||||
} else {
|
} else {
|
||||||
cfg.GlamourStyle = glamour.LightStyle
|
cfg.GlamourStyle = styles.LightStyle
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
|
|
||||||
"github.com/charmbracelet/glamour"
|
"github.com/charmbracelet/glamour"
|
||||||
"github.com/charmbracelet/glamour/ansi"
|
"github.com/charmbracelet/glamour/ansi"
|
||||||
|
"github.com/charmbracelet/glamour/styles"
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
"github.com/mitchellh/go-homedir"
|
"github.com/mitchellh/go-homedir"
|
||||||
)
|
)
|
||||||
|
@ -69,7 +70,7 @@ func IsMarkdownFile(filename string) bool {
|
||||||
|
|
||||||
func GlamourStyle(style string, isCode bool) glamour.TermRendererOption {
|
func GlamourStyle(style string, isCode bool) glamour.TermRendererOption {
|
||||||
if !isCode {
|
if !isCode {
|
||||||
if style == glamour.AutoStyle {
|
if style == styles.AutoStyle {
|
||||||
return glamour.WithAutoStyle()
|
return glamour.WithAutoStyle()
|
||||||
} else {
|
} else {
|
||||||
return glamour.WithStylePath(style)
|
return glamour.WithStylePath(style)
|
||||||
|
@ -82,22 +83,24 @@ func GlamourStyle(style string, isCode bool) glamour.TermRendererOption {
|
||||||
var styleConfig ansi.StyleConfig
|
var styleConfig ansi.StyleConfig
|
||||||
|
|
||||||
switch style {
|
switch style {
|
||||||
case glamour.AutoStyle:
|
case styles.AutoStyle:
|
||||||
if lipgloss.HasDarkBackground() {
|
if lipgloss.HasDarkBackground() {
|
||||||
styleConfig = glamour.DarkStyleConfig
|
styleConfig = styles.DarkStyleConfig
|
||||||
} else {
|
} else {
|
||||||
styleConfig = glamour.LightStyleConfig
|
styleConfig = styles.LightStyleConfig
|
||||||
}
|
}
|
||||||
case glamour.DarkStyle:
|
case styles.DarkStyle:
|
||||||
styleConfig = glamour.DarkStyleConfig
|
styleConfig = styles.DarkStyleConfig
|
||||||
case glamour.LightStyle:
|
case styles.LightStyle:
|
||||||
styleConfig = glamour.LightStyleConfig
|
styleConfig = styles.LightStyleConfig
|
||||||
case glamour.PinkStyle:
|
case styles.PinkStyle:
|
||||||
styleConfig = glamour.PinkStyleConfig
|
styleConfig = styles.PinkStyleConfig
|
||||||
case glamour.NoTTYStyle:
|
case styles.NoTTYStyle:
|
||||||
styleConfig = glamour.NoTTYStyleConfig
|
styleConfig = styles.NoTTYStyleConfig
|
||||||
case glamour.DraculaStyle:
|
case styles.DraculaStyle:
|
||||||
styleConfig = glamour.DraculaStyleConfig
|
styleConfig = styles.DraculaStyleConfig
|
||||||
|
case styles.TokyoNightStyle:
|
||||||
|
styleConfig = styles.DraculaStyleConfig
|
||||||
default:
|
default:
|
||||||
return glamour.WithStylesFromJSONFile(style)
|
return glamour.WithStylesFromJSONFile(style)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue