less
JavaScript に Markdown 文字列があり、コマンド ラインの(または、more
おそらく) スタイルのビューアーで(太字などで) 表示したいと考えています。
たとえば、文字列で
"hello\n" +
"_____\n" +
"*world*!"
次のようなスクロール可能なコンテンツで出力ポップアップを表示したいと思います
こんにちは
世界
これは可能ですか?
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
可能性があります (正確には「スタイルが少ない」わけではありませんが、便利な場合があります)。
上記のコメントにこれを書き込もうとしましたが、コード ブロックを正しくフォーマットできませんでした。「少ないフィルター」を作成するには、たとえば、次のように保存してみてください~/.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
と、マンページのようにフォーマットされます。
あなたが色に興味があるなら、これもチェックする価値があるかもしれません:
他のプログラムや python モジュールからも簡単に使用できます。
また、組み合わせ可能なマークダウンとコードの 200 以上のスタイルなど、多くのスタイルがあります。
かなりアルファ版なので、まだバグがあるかもしれません
私はそれの作者です、多分何人かの人々はそれを好きです;-)
まったく別の選択肢が狂っています。発見したばかりのシェルスクリプトです。インストールは非常に簡単で、コンソールでマークダウンを適切にレンダリングします。
キースの答えに基づいていくつかの関数を書きました:
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」はブラウザ用です。
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/
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 に送信します。引数は次のとおりです。
<(echo ".TH $1 7
date --iso-8601 Dr.Beco Markdown")
: ファイルを開始groff
し、ヘッダーとフッターのメモとして理解されるもの。-s
これにより、 key onの空のヘッダーが置き換えられますpandoc
。<(pandoc -t man $1)
: でフィルタリングされ、ファイルのスタイルをpandoc
出力するファイル自体man
$1
| groff -K utf8 -t -T utf8 -man 2>/dev/null
: 結果の連結ファイルを : にパイプしますgroff
。
-K utf8
groff
入力ファイルコードを理解する-t
そのため、ファイル内のテーブルが正しく表示されます-T utf8
したがって、正しい形式で出力されます-man
そのため、MACROパッケージを使用してファイルをman
形式で出力します2>/dev/null
エラーを無視するには (結局のところ、手作業で変換された生のファイルであるため、ファイルがそれほど醜くない形式で表示される限り、エラーは気にしません)。| less
:最後に、ファイルのページネーションを表示します(代わりに をless
使用してこのパイプを回避しようとしましたが、ほど堅牢ではなく、一部のファイルはハングするか、まったく表示されません。したがって、もう1つのパイプを通過させます、なんてこった!groffer
groff
groffer
less
~/.bash_aliases
それをあなたの(または同様の)ものに追加してください
私は個人的にこのスクリプトを使用します:
#!/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 &