Add config for enabling/disabling markdown output #12

Merged
isthisnagee merged 1 commits from issue/11/disable-md-output into main 2 years ago

@ -31,7 +31,7 @@ var deleteCmd = &cobra.Command{
} }
fmt.Println("Are you sure you want to delete the following entry? (y/n)") fmt.Println("Are you sure you want to delete the following entry? (y/n)")
PrintEntry(entry) PrintEntry(entry)
PrintNotes(notes) PrintNotes(notes, App.Cfg.UseMarkdownInOutput)
var response string var response string
fmt.Scanln(&response) fmt.Scanln(&response)
if response == "y" { if response == "y" {

@ -36,7 +36,7 @@ func Execute() {
func init() { func init() {
cobra.OnInitialize(InitApp) cobra.OnInitialize(InitApp)
rootCmd.PersistentFlags().String("config", "", "config file (default is $HOME/.diary.toml)") rootCmd.PersistentFlags().String("config", "", "config file (default is $HOME/config/diary/diary.toml)")
viper.BindPFlag("config", rootCmd.Flags().Lookup("config")) viper.BindPFlag("config", rootCmd.Flags().Lookup("config"))
rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle") rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")
} }

@ -42,7 +42,7 @@ var showCmd = &cobra.Command{
var notes = App.Db.GetDiaryEntryNotes(entry.Id) var notes = App.Db.GetDiaryEntryNotes(entry.Id)
PrintEntry(entry) PrintEntry(entry)
fmt.Println() fmt.Println()
PrintNotes(notes) PrintNotes(notes, App.Cfg.UseMarkdownInOutput)
}, },
} }

@ -17,6 +17,7 @@ import (
type Cfg struct { type Cfg struct {
DbPath string DbPath string
UseMarkdownInOutput bool
} }
type TApp struct { type TApp struct {
@ -49,6 +50,10 @@ func initConfig() Cfg {
viper.SetDefault("db_path", db_path) viper.SetDefault("db_path", db_path)
} }
if viper.Get("use_markdown_output") == nil {
viper.SetDefault("use_markdown_output", true)
}
viper.AutomaticEnv() // read in environment variables that match viper.AutomaticEnv() // read in environment variables that match
if err := viper.ReadInConfig(); err != nil { if err := viper.ReadInConfig(); err != nil {
@ -59,7 +64,7 @@ func initConfig() Cfg {
} }
} }
return Cfg{viper.GetString("db_path")} return Cfg{viper.GetString("db_path"), viper.GetBool("use_markdown_output")}
} }
func InitApp() { func InitApp() {
@ -100,21 +105,26 @@ func PrintEntries(entries []*model.DiaryEntry) {
} }
} }
func PrintNote(note *model.DiaryEntryNote, add_tail bool) { func PrintNote(note *model.DiaryEntryNote, add_tail bool, use_markdown bool) {
created_time := time.Unix(note.CreatedAt, 0).Format(time_fmt_str) created_time := time.Unix(note.CreatedAt, 0).Format(time_fmt_str)
fmt.Println("---note ( id:", note.Id, ")", created_time) fmt.Println("---note ( id:", note.Id, ")", created_time)
fmt.Println() fmt.Println()
body := markdown.Render(note.Body, 80, 3) var body string
fmt.Println(string(body)) if use_markdown {
body = string(markdown.Render(note.Body, 80, 3))
} else {
body = note.Body
}
fmt.Println(body)
if add_tail { if add_tail {
fmt.Println("---") fmt.Println("---")
} }
} }
func PrintNotes(notes []*model.DiaryEntryNote) { func PrintNotes(notes []*model.DiaryEntryNote, use_markdown bool) {
for idx, entry := range notes { for idx, entry := range notes {
var is_last = idx == len(notes)-1 var is_last = idx == len(notes)-1
PrintNote(entry, is_last) PrintNote(entry, is_last, use_markdown)
} }
} }

@ -9,3 +9,36 @@ require (
github.com/spf13/cobra v1.3.0 github.com/spf13/cobra v1.3.0
github.com/spf13/viper v1.10.1 github.com/spf13/viper v1.10.1
) )
require (
github.com/MichaelMure/go-term-text v0.3.1 // indirect
github.com/alecthomas/chroma v0.7.1 // indirect
github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 // indirect
github.com/disintegration/imaging v1.6.2 // indirect
github.com/dlclark/regexp2 v1.1.6 // indirect
github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75 // indirect
github.com/fsnotify/fsnotify v1.5.1 // indirect
github.com/gomarkdown/markdown v0.0.0-20191123064959-2c17d62f5098 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/inconshreveable/mousetrap v1.0.0 // indirect
github.com/kyokomi/emoji/v2 v2.2.8 // indirect
github.com/lucasb-eyer/go-colorful v1.0.3 // indirect
github.com/magiconair/properties v1.8.5 // indirect
github.com/mattn/go-colorable v0.1.12 // indirect
github.com/mattn/go-isatty v0.0.14 // indirect
github.com/mattn/go-runewidth v0.0.12 // indirect
github.com/mitchellh/mapstructure v1.4.3 // indirect
github.com/pelletier/go-toml v1.9.4 // indirect
github.com/rivo/uniseg v0.1.0 // indirect
github.com/spf13/afero v1.6.0 // indirect
github.com/spf13/cast v1.4.1 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/subosito/gotenv v1.2.0 // indirect
golang.org/x/image v0.0.0-20191206065243-da761ea9ff43 // indirect
golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d // indirect
golang.org/x/sys v0.0.0-20211210111614-af8b64212486 // indirect
golang.org/x/text v0.3.7 // indirect
gopkg.in/ini.v1 v1.66.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
)

@ -1,6 +1,5 @@
/* /*
Copyright © 2021 NAME HERE <EMAIL ADDRESS> Copyright © 2021 NAME HERE <EMAIL ADDRESS>
*/ */
package main package main

Loading…
Cancel
Save