Как мне просмотреть файл Markdown как страницу руководства без создания временного файла?

Я хотел бы прочитать файлы Markdown как man страницы. Я могу сделать это:

pandoc README.md -t man --standalone > tmp_file && man ./tmp_file

Однако я хотел бы сделать это без создания временного файла. Я старался:

man <(pandoc README.md -t man –standalone)

Но я получил ошибку:

fgets: Undefined error: 0
Error reading man page /dev/fd/63
No manual entry for /dev/fd/63

Есть идеи? Я посмотрел на этот вопрос, но это не работает на версии MacOS man, похоже на то.

Я действительно не забочусь об использовании man По сути, но я хотел бы иметь возможность просматривать предварительно отформатированные файлы Markdown в терминале. pandoc можно преобразовать в groff, который я могу затем отправить man чтобы получить хороший дисплей. Есть ли программа, которая man использует под капотом, что может работать?

1 ответ

Решение

Попробуйте эту трубу, чтобы groff:

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

( Источник)

Я использую эту функцию оболочки:

mdv () { # This function display Markdown in the terminal from file or "-"
  pandoc -s -t man ${1:-"-"} | # Read into Pandoc from file or STDIN
  groff -T utf8 -man         | # format for Pager
  sed 1,4d | head -n -4      | # Chop off 4 leading/trailing (empty) lines
  ${PAGER:-$(DN=/dev/null;     # Use $PAGER, if available
             which less &>$DN && { echo "less -FRSEX"; } || # less w/ opts
               which more 2>$DN || echo cat                )} # Fallbacks
}

Основная идея такая же, как и в принятом ответе, я просто добавил несколько наворотов вокруг нее и обернул ее в документированную функцию

Другие вопросы по тегам