-USE_GLOW=false
-USE_BAT=false
-if command -v glow >/dev/null 2>/dev/null; then
- USE_GLOW=true
-elif command -v bat >/dev/null 2>/dev/null; then
- USE_BAT=true
- printf "Glow not found, markdown rendering will be done by bat.\n"
- printf "Install glow for easier reading & copy-paste.\n"
-else
- printf "Glow or bat not found, markdown rendering not available.\n"
- printf "Output will be raw markdown and might look weird.\n"
- printf "Install glow for easier reading & copy-paste.\n"
-fi
+has_command() {
+ command -v "$1" >/dev/null 2>/dev/null
+ return $?
+}
+
+auto_set_decoder() {
+ DECODER="cat"
+ if has_command glow; then
+ DECODER="glow -"
+ elif has_command batcat; then
+ DECODER="batcat -pp --decorations=always --color=always --language markdown"
+ printf "Markdown rendering will be done by bat. (Glow is recommended)\n"
+ elif has_command bat; then
+ DECODER="bat -pp --decorations=always --color=always --language markdown"
+ printf "Markdown rendering will be done by bat. (Glow is recommended)\n"
+ elif has_command pygmentize; then
+ DECODER="pygmentize -l markdown"
+ printf "Markdown rendering will be done by pygmentize. (Glow is recommended)\n"
+ elif has_command highlight; then
+ DECODER="highlight --out-format ansi --syntax markdown"
+ printf "Markdown rendering will be done by highlight. (Glow is recommended)\n"
+ else
+ printf "Install glow for easier reading & copy-paste.\n"
+ fi
+}
+auto_set_decoder