递归目录兼容Mac Pandoc解析(Recursive directory parsing wit

2019-06-25 11:19发布

我发现这个问题,其中有一个答案与Pandoc进行批量转换的问题,但它并没有回答如何使它递归的问题。 我订了前面,我不是一个程序员,所以我在这里寻求一些这方面的帮助。

该Pandoc文档渺茫上关于通过成批文件的可执行的细节,并根据它看起来像Pandoc本身的脚本不能够同时分析比单个文件的更多的。 下面的脚本工作得很好,在Mac OS X,但只处理在本地目录中的文件和输出在同一个地方的结果。

find . -name \*.md -type f -exec pandoc -o {}.txt {} \;

我用下面的代码来获取结果我所期待的东西:

find . -name \*.html -type f -exec pandoc -o {}.markdown {} \;

这个简单的脚本,安装在Mac OS X 10.7.4使用Pandoc运行转换在我运行它在以降价目录中的所有匹配的文件,并在同一目录下保存它们。 举例来说,如果我有一个名为apps.html文件,它会转换该文件在同一目录作为源文件apps.html.markdown。

虽然我很高兴的是,它使转换,而且速度快,我需要它来处理位于一个目录下的所有文件,并把降价的版本在一组进行编辑镜像目录。 最终,这些目录在Github上库。 一个分支是进行编辑,而另一支是生产/出版。 此外,这个简单的脚本是保留原来的扩展和追加新的扩展它。 如果我再转换回,它会降价扩展后添加HTML扩展,文件大小也只是成长和壮大。

从技术上讲,我需要做的是能够分析一个分支目录,并同步其与生产企业之一,那么当一切都变了,删除和新内容被验证是正确的,我可以运行提交到发布更改。 它看起来像查找命令可以处理这一切,但我不知道对如何正确配置它,甚至阅读的Mac OS X和Ubuntu手册页之后。

任何智慧的赞美之词将深表感激。

TC

Answer 1:

创建下面Makefile

TXTDIR=sources
HTMLS=$(wildcard *.html)
MDS=$(patsubst %.html,$(TXTDIR)/%.markdown, $(HTMLS))

.PHONY : all

all : $(MDS)

$(TXTDIR) :
    mkdir $(TXTDIR)

$(TXTDIR)/%.markdown : %.html $(TXTDIR)
    pandoc -f html -t markdown -s $< -o $@

(注:缩进的行必须以TAB开始 - 这可能不是在上面来通过,由于降价通常剔除的标签。)

然后你只需要键入“制作”,它会与在工作目录中的.html扩展名的每个文件运行pandoc,生产在“源”减价版本。 这种方法比使用“查找”的优点是,它只会在自上次运行已更改的文件运行pandoc。



Answer 2:

只是为了记录:这是我如何实现一堆HTML文件到他们的降价等价的转换:

for file in $(ls *.html); do pandoc -f html -t markdown "${file}" -o "${file%html}md"; done

当你看看从-o参数脚本代码,你会看到它使用字符串操作,以删除与MD文件结尾现有的HTML。



文章来源: Recursive directory parsing with Pandoc on Mac