53

lessJavaScript に Markdown 文字列があり、コマンド ラインの(または、moreおそらく) スタイルのビューアーで(太字などで) 表示したいと考えています。

たとえば、文字列で

"hello\n" + 
"_____\n" + 
"*world*!"

次のようなスクロール可能なコンテンツで出力ポップアップを表示したいと思います

こんにちは

世界

これは可能ですか?

4

9 に答える 9

68

Pandocは Markdown を groff man ページに変換できます。

これ(ネノペラのコメントに感謝):

 pandoc -s -f markdown -t man foo.md | man -l -

トリックを行う必要があります。この-sオプションは、適切なヘッダーとフッターを生成するように指示します。

マークダウンから *roff へのコンバーターは他にもあるかもしれません。Pandoc はたまたま私が最初に見つけたものです。

もう 1 つの代替手段は、Markdown を HTML に変換するmarkdownコマンド ( Debian システムの場合) です。apt-get install markdown例えば:

markdown README.md | lynx -stdin

lynx(端末ベースの Web ブラウザーを使用していると仮定します)。

または(ダニーの提案のおかげで)次のようなことができます:

markdown README.md > README.html && xdg-open README.html

where xdg-open(一部のシステムでは) 指定したファイルまたは URL を優先アプリケーションで開きます。これは、お好みの GUI Web ブラウザで開くREADME.html可能性があります (正確には「スタイルが少ない」わけではありませんが、便利な場合があります)。

于 2011-09-29T21:40:05.977 に答える
31

上記のコメントにこれを書き込もうとしましたが、コード ブロックを正しくフォーマットできませんでした。「少ないフィルター」を作成するには、たとえば、次のように保存してみてください~/.lessfilter

#!/bin/sh

case "$1" in
    *.md)
        extension-handler "$1"
        pandoc -s -f markdown -t man "$1"|groff -T utf8 -man -
        ;;
    *)
        # We don't handle this format.
        exit 1
esac

# No further processing by lesspipe necessary
exit 0

次に、入力するless FILENAME.mdと、マンページのようにフォーマットされます。

于 2013-11-25T15:52:10.907 に答える
8

あなたがに興味があるなら、これもチェックする価値があるかもしれません:

terminal_markdown_viewer

他のプログラムや python モジュールからも簡単に使用できます。

また、組み合わせ可能なマークダウンとコードの 200 以上のスタイルなど、多くのスタイルがあります。

pic2

免責事項

  • かなりアルファ版なので、まだバグがあるかもしれません

  • 私はそれの作者です、多分何人かの人々はそれを好きです;-)

于 2015-07-12T14:19:21.443 に答える
5

まったく別の選択肢が狂っています。発見したばかりのシェルスクリプトです。インストールは非常に簡単で、コンソールでマークダウンを適切にレンダリングします。

于 2013-12-06T21:35:53.060 に答える
3

キースの答えに基づいていくつかの関数を書きました:

mdt() {
    markdown "$*" | lynx -stdin
}

mdb() {
    local TMPFILE=$(mktemp)
    markdown "$*" > $TMPFILE && ( xdg-open $TMPFILE > /dev/null 2>&1 & )
}

を使用している場合はzsh、これらの 2 つの関数を に配置~/.zshrcし、端末から次のように呼び出します。

mdt README.md
mdb README.md

「t」は「ターミナル」、「b」はブラウザ用です。

于 2015-09-25T20:45:51.287 に答える
1

OSXを使用して、このコマンドを使用することを好みます

brew install pandoc
pandoc -s -f markdown -t man README.md | groff -T utf8 -man | less

markupm を変換し、ドキュメントを groff でフォーマットし、パイプを less に変換します

クレジット: http://blog.metamatt.com/blog/2013/01/09/previewing-markdown-files-from-the-terminal/

于 2016-04-01T21:10:22.527 に答える
1

これは、関数をカプセル化するエイリアスです。

alias mdless='_mdless() { if [ -n "$1" ] ; then if [ -f "$1" ] ; then cat <(echo ".TH $1 7 `date --iso-8601` Dr.Beco Markdown") <(pandoc -t man $1) | groff -K utf8 -t -T utf8 -man 2>/dev/null | less ; fi ; fi ;}; _mdless '

説明

  • alias mdless='...': のエイリアスを作成しますmdless
  • _mdless() {...};: 後で呼び出される一時的な関数を作成します
  • _mdless: 最後に、それを呼び出します (上記の関数)

関数内:

  • if [ -n "$1" ] ; then: 最初の引数が null でない場合...
  • if [ -f "$1" ] ; then: また、ファイルが存在し、通常の場合...
  • cat arg1 arg2 | groff... : cat はこの 2 つの引数を連結して groff に送信します。引数は次のとおりです。
    • arg1: <(echo ".TH $1 7date --iso-8601 Dr.Beco Markdown"): ファイルを開始groffし、ヘッダーとフッターのメモとして理解されるもの。-sこれにより、 key onの空のヘッダーが置き換えられますpandoc
    • arg2: <(pandoc -t man $1): でフィルタリングされ、ファイルのスタイルをpandoc出力するファイル自体man$1
  • | groff -K utf8 -t -T utf8 -man 2>/dev/null: 結果の連結ファイルを : にパイプしますgroff
    • -K utf8groff入力ファイルコードを理解する
    • -tそのため、ファイル内のテーブルが正しく表示されます
    • -T utf8したがって、正しい形式で出力されます
    • -manそのため、MACROパッケージを使用してファイルをman形式で出力します
    • 2>/dev/nullエラーを無視するには (結局のところ、手作業で変換された生のファイルであるため、ファイルがそれほど醜くない形式で表示される限り、エラーは気にしません)。
  • | less:最後に、ファイルのページネーションを表示します(代わりに をless使用してこのパイプを回避しようとしましたが、ほど堅牢ではなく、一部のファイルはハングするか、まったく表示されません。したがって、もう1つのパイプを通過させます、なんてこった!groffergroffgrofferless

~/.bash_aliasesそれをあなたの(または同様の)ものに追加してください

于 2016-08-17T05:06:06.357 に答える
0

私は個人的にこのスクリプトを使用します:

#!/bin/bash
id=$(uuidgen | cut -c -8)
markdown $1 > /tmp/md-$id
google-chrome --app=file:///tmp/md-$id

マークダウンを HTML にレンダリングし、それをファイルに入れ、/tmp/md-...URI バーなどのないキオスク chrome セッションで開きます。md ファイルを引数として渡すか、stdin にパイプするだけです。マークダウンと Google Chrome が必要です。Chromiumも機能するはずですが、最後の行を次のように置き換える必要があります

chromium-browser --app=file:///tmp/md-$id

あなたがそれに夢中になりたいなら、いくつかのcssを使って見栄えを良くすることができます.私はスクリプトを編集し、CDNからBootstrap3(overkill)を使用しました.

#!/bin/bash
id=$(uuidgen | cut -c -8)
markdown $1 > /tmp/md-$id
sed -i "1i <html><head><style>body{padding:24px;}</style><link rel=\"stylesheet\" type=\"text/css\" href=\"http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css\"></head><body>" /tmp/md-$id
echo "</body>" >> /tmp/md-$id
google-chrome --app=file:///tmp/md-$id > /dev/null 2>&1 &
于 2014-08-05T11:35:21.063 に答える