web-dev-qa-db-ja.com

UNIXシステム用のスタイルの少ないマークダウンビューアー

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

たとえば、文字列

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

次のようなスクロール可能なコンテンツを含むポップアップを出力したい

こんにちは

世界

これは可能ですか?可能な場合、どのようにですか?

50
user961528

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

これ(nenoperaのコメントのおかげ):

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

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

他にもmarkdown-to- * roffコンバーターがあるかもしれません。パンドックはたまたま私が見つけた最初のものです。

もう1つの方法は、markdownコマンド(apt-get install markdown(Debianシステムの場合)、MarkdownをHTMLに変換します。例えば:

markdown README.md | lynx -stdin

(あなたがlynx端末ベースのウェブブラウザを持っていると仮定します)。

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

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

どこ xdg-open(一部のシステムでは)指定されたファイルまたはURLを優先アプリケーションで開きます。これはおそらくREADME.htmlお好みのGUI Webブラウザー(厳密には「スタイルの低い」ものではありませんが、役立つ場合があります)。

68
Keith Thompson

上記のコメントでこれを書き込もうとしましたが、コードブロックを正しくフォーマットできませんでした。 「より少ないフィルター」を作成するには、たとえば、以下を~/.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と入力すると、マンページのような形式になります。

30
Joel Cross

colorsを使用している場合は、これもチェックする価値があります。

terminal_markdown_viewer

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

それに、lotのスタイルがあり、マークダウンとコードを組み合わせることができる200以上のスタイルがあります。

pic2

免責事項

  • それはまだバグがあるかもしれないかなりのアルファです

  • 私はそれの作者です、多分それを好む人もいるでしょう;-)

8
Red Pill

まったく異なる代替案は mad です。私が見つけたシェルスクリプトです。インストールは非常に簡単で、コンソールでのマークダウンをかなりうまくレンダリングします。

5
Alban

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

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」はブラウザ用です。

3
mpen

OSXを使用してこのコマンドを使用したい

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

マークアップを変換し、groffを使用してドキュメントをフォーマットし、lessにパイプします

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

0
lfender6445

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

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

マークダウンをHTMLにレンダリングし、/tmp/md-...のファイルに入れて、キオスクで開きますchrome URIバーなしのセッションなど)。mdファイルを引数またはstdinにパイプします。markdownと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 &
0
sammko

投稿します my unix page answer こちらも:

私見の過小評価されたコマンドラインマークダウンビューアーは markdown-cli です。

Installation

npm install markdown-cli --global

使用法

markdown-cli <file>

特徴

ドキュメントを見逃しているため、おそらくあまり気づかれないでしょう...
しかし、私がいくつかのマークダウンファイルの例から理解できる限り、私を納得させたいくつかのこと:

  • 不正な形式のファイルをより適切に処理します(atom、githubなどと同様。たとえば、リストの前に空白行がない場合)
  • ヘッダーまたはリストのフォーマットがより安定しました(リストの太字のテキストは、他の一部のビューアではサブリストを壊します)
  • 適切な表のフォーマット
  • 構文の強調表示
  • 脚注番号の代わりにリンクを表示するように脚注リンクを解決します(誰もがこれを望んでいるわけではありません)

スクリーンショット

example.png

欠点

私は次の問題を認識しました

  • コードブロックがフラット化されます(すべての先行スペースが消えます)
  • リストの前に2行の空白行が表示される
0
orzechow

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

_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 7_ date --iso-8601 _Dr.Beco Markdown")_:ファイルを開始するものとgroffは、ヘッダーとフッターのメモとして認識されます。これは、pandocの_-s_キーの空のヘッダーを置き換えます。
    • arg2:<(pandoc -t man $1)pandocでフィルタリングされたファイル自体、manスタイルのファイルを出力__$1_
  • _| groff -K utf8 -t -T utf8 -man 2>/dev/null_:結果の連結ファイルをgroff:にパイプします
    • _-K utf8_ so groffは入力ファイルのコードを理解します
    • _-t_ファイルにテーブルを正しく表示する
    • _-T utf8_正しい形式で出力する
    • _-man_したがって、[〜#〜] macro [〜#〜]パッケージを使用して、man形式でファイルを出力します
    • エラーを無視する_2>/dev/null_(結局のところ、生のファイルが手動で変換されているため、あまり醜くない形式でファイルを表示できる限り、エラーは気になりません)。
  • _| less_:最後に、lessでページ分割されたファイルを表示します(grofferの代わりにgroffを使用してこのパイプを回避しようとしましたが、grofferlessほど堅牢ではなく、一部のファイルはそれをハングアップするか、まったく表示しないので、もう1つのパイプを通過させてください。

_~/.bash_aliases_(または同様のもの)に追加します

0
Dr Beco