如何configuration“less”来显示格式化的降价文件?

我想有less显示*.md markdown文件与一些格式 – 就像我知道less ,对于手册等。我正在运行的Ubuntu 12.04。

我尽可能将用户定义的filter放入.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 

所以,主要的问题是:

  • 我怎样才能传递一些基本的格式信息,而不是用html2txt丢失
  • 将新内容打印到标准输出是否正确? 或者我可以将*.html文件写入文件磁盘,让它less处理它的html(看到html扩展名并对其执行操作)?

看看潘多克 。 它可以将文件从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脚本必须写入标准输出。

Dogbane的答案很好,但是如果你使用groff -T utf8 -man而不是man -l来进行格式化,那么粗体,斜体等等都会通过。 如在这里看到的: https : //stackoverflow.com/a/20197316/2674930 。

这不适用于我的MacOSX版本(10.10.5优胜美地)。 手册页也没有提到.lessfilter 。 这是我做了什么(在阅读MAN页面 – 感谢这个问题的提示和提示)。

我在~/bin创建了脚本lessopen.shlessclose.sh 。 他们分别是:

 #!/bin/bash case "$1" in *.md) pandoc -s -f markdown -t man "$1" | groff -T utf8 -man > /tmp/less.$$ if [ -s /tmp/less.$$ ]; then echo /tmp/less.$$ else rm -f /tmp/less.$$ fi ;; esac 

 #!/bin/sh rm $2 

lessopen.sh返回的是文件的名称,其内容为less 。 或者如果没有,那么使用原始文件。 -s测试文件是不是零大小。 lessclose.sh清理。

那么在我的〜/ .bash_profile中是:

 export LESSOPEN="lessopen.sh %s" export LESSCLOSE="less-close.sh %s %s" 

我也必须安装pandoc – groff已经存在了

 brew install pandoc 

然后简单地:

 less README.md 

阅读它呈现。