mukan-ignite/ignite/pkg/markdownviewer/markdownviewer.go
Mukan Erkin Törük 26b204bd04
Some checks are pending
Docs Deploy / build_and_deploy (push) Waiting to run
Generate Docs / cli (push) Waiting to run
Generate Config Doc / cli (push) Waiting to run
Go formatting / go-formatting (push) Waiting to run
Check links / markdown-link-check (push) Waiting to run
Integration / pre-test (push) Waiting to run
Integration / test on (push) Blocked by required conditions
Integration / status (push) Blocked by required conditions
Lint / Lint Go code (push) Waiting to run
Test / test (ubuntu-latest) (push) Waiting to run
feat: fork Ignite CLI v29 as Mukan Ignite — remove cosmos-sdk restrictions
2026-05-11 03:31:37 +03:00

50 lines
1 KiB
Go

package markdownviewer
import (
"os"
"github.com/charmbracelet/glow/ui"
"golang.org/x/term"
"github.com/ignite/cli/v29/ignite/pkg/safeconverter"
)
// View starts the Markdown viewer at path that .md files are located at.
func View(path string) error {
conf, err := config(path)
if err != nil {
return err
}
// TODO: Enable bubbletea WithAltScreen and WithMouseCellMotion options when glow supports them
p := ui.NewProgram(conf)
_, err = p.Run()
return err
}
func config(path string) (ui.Config, error) {
var width uint
fd := safeconverter.ToInt(os.Stdout.Fd())
w, _, err := term.GetSize(fd)
if err != nil {
return ui.Config{}, err
}
width = min(uint(w), 120) //nolint:gosec,nolintlint // conversion is fine
docTypes := ui.NewDocTypeSet()
docTypes.Add(ui.LocalDoc)
conf := ui.Config{
WorkingDirectory: path,
DocumentTypes: docTypes,
GlamourStyle: "auto",
HighPerformancePager: true,
GlamourEnabled: true,
GlamourMaxWidth: width,
}
return conf, nil
}