
___x_cmd_hua_lunyu(){
    [ $# -gt 0 ]    ||      set -- --fzf
    local fmt=auto

    local op="$1";  shift
    case "$op" in
        --csv|--json|--app|--fzf|--fzfinfo|--fzdata)     fmt=${op#--} ;;
    esac

    ___x_cmd_hua_lunyu___"$fmt" "$@"
}


___x_cmd_hua_lunyu___auto(){
    if ___x_cmd_is_stdout2tty && ___x_cmd_runmode_allow_manual; then
        ___x_cmd_hua_lunyu___fzf
    else
        ___x_cmd_hua_lunyu___tsv
    fi
}

___x_cmd_hua_lunyu___app(){
    ___x_cmd_hua_lunyu___csv | ___x_cmd csv --app
}


___x_cmd_hua_lunyu___csv(){
    printf "%s,%s,%s,%s\n" title chapter section content
    ___x_cmd_hua_lunyu___json | \
        ___x_cmd jq -r '.[] | [ .chapter, ( .paragraphs | join("\n") ) ] | @csv'
}

___x_cmd_hua_lunyu___tsv(){
    printf "%s,%s,%s,%s\n" title chapter section content
    ___x_cmd_hua_lunyu___json | \
        ___x_cmd jq -r '.[] | [ .chapter, ( .paragraphs | join("\n") ) ] | @tsv'
}

___x_cmd_hua_lunyu___json(){
    ___x_cmd_hua___cat "论语/lunyu.json"
}

___x_cmd_hua_lunyu___fzfinfo(){
    local data="$1"
    data="${data%%"$___X_CMD_UNSEENCHAR_011"*}"

    ___x_cmd_hua_lunyu___tsv      | \
        ___x_cmd_hua___tsvlabel     | \
        ___x_cmd_hua_lunyu___fzfinfo___color
}

___x_cmd_hua_lunyu___fzfinfo___color(){
    a="$data" command awk -f "$___X_CMD_ROOT_MOD/hua/lib/awk/fzfinfo.awk"
}

___x_cmd_hua_lunyu___fzf(){
    local data; data="$( ___X_CMD_RUNMODE="$___X_CMD_RUNMODE" ___x_cmdexe hua lunyu --fzdata )" || return $?

    [ -z "$data" ] || ___x_cmd_hua_lunyu___fzfinfo "$data"
}

___x_cmd_hua_lunyu___fzdata(){
    ___x_cmd_hua_lunyu___tsv                \
        |   ___x_cmd_hua___tsvlabel         \
        |   ___x_cmd_hua___fzfpretty        \
        |   command awk -v FS='\t' '{
                printf("\033[2m" "%s\t" "\033[0;32m" "%-12s\t" "\033[2;33m"  "%s\t" "\033[2;37m" "%s\t"  "\033[0;36m" "%s\n", $1, $2, $3, $4, $5)
            }' \
        |   ___x_cmd_hua___fzf --preview="___x_cmdexe hua lunyu --fzfinfo {1}" --reverse --height='80%' --preview-window="right:60%,wrap"
}



