linux - 如何配置 'less'显示格式化的markdown文件?

标签 linux shell markdown gnu text-processing

我想让 less 显示具有某种格式的 *.md markdown 文件——我知道 less 可以,对于联机帮助页,等。我正在运行 Ubuntu 12.04。

我目前正在将一个用户定义的过滤器放入.lessfilter:

#!/bin/sh
case "$1" in
  *.md)
    fn=/tmp/$1.$$.html
    markdown "$1" | html2txt > $fn  ### LOSES FORMATTING
    cat $fn                         ### TO STDOUT???
    ;;
  *)
  # We don't handle this format
  exit 1
esac
# No further processing by lesspipe necessary
exit 0

所以,主要问题是:

  • 如何将一些基本格式信息也传递给 less,而不是用 html2txt 丢失它
  • 只将新内容打印到stdout 是否正确?或者我可以只将 *.html 写入文件磁盘,然后让 less 自行处理该 html(查看 html 扩展名并对其执行操作?)<

最佳答案

看看Pandoc .它可以将文件从 markdown 格式转换为 groff 手册页,然后您可以在 man 中查看。

您的 .lessfilter 脚本将是:

case "$1" in
  *.md)
    pandoc -s -f markdown -t man "$1" | man -l -
    ;;

或者,使用 markdown 命令将其转换为 html,然后使用 lynx 浏览器查看它,但这对我来说效果不佳。

case "$1" in
  *.md)
    markdown "$1" | lynx -stdin
    ;;

是的,lessfilter 脚本必须写入标准输出。

关于linux - 如何配置 'less'显示格式化的markdown文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15496865/

相关文章:

ruby - 如何将系统 grep 结果导入 ruby

python - 如何自动将 excel 文件的类型从 Tab 空格分隔的文本更改为 xls 文件?

emacs - Markdown 不对齐表格

bash - 提取子字符串直到第一个数字

npm - 从 readme.md 到包中另一个文件的相对链接,在 npmjs 中呈现

python - 在Python中将markdown标题转换为 anchor

java - 使用 Process p=runtime.getRuntime().exec ("java classname &lt;input_file") 执行 java 文件;

linux - Shell - 如何在第 n 次出现管道后删除特定字符串

linux - Linux 中的文件系统

MySQL 子查询死锁(某种)