All*_*len 5 pandoc docker github-actions
我想设置一个 github 操作,当它被推送到 master 时,它会在 repo 上从 pandoc FAQ运行这个命令。我们的目标是使用 pandoc docker 容器将我们 repo 中的所有 md 文件从 md 转换为另一种格式。
这是我到目前为止的地方。在第一个示例中,我没有声明入口点,并且收到错误“/usr/local/bin/docker-entrypoint.sh: exec: line 11: for: not found”。
name: Advanced Usage
on:
push:
branches:
- master
jobs:
convert_via_pandoc:
runs-on: ubuntu-18.04
steps:
- name: convert md to rtf
uses: docker://pandoc/latex:2.9
with:
args: |
for f in *.md; do pandoc "$f" -s -o "${f%.md}.rtf"; done
Run Code Online (Sandbox Code Playgroud)
在第二个例子中我们声明entrypoint: /bin/sh,结果是错误“/bin/sh: can't open 'for': No such file or directory”
name: Advanced Usage
on:
push:
branches:
- master
jobs:
convert_via_pandoc:
runs-on: ubuntu-18.04
steps:
- name: convert md to rtf
uses: docker://pandoc/latex:2.9
with:
entrypoint: /bin/sh
args: |
for f in *.md; do pandoc "$f" -s -o "${f%.md}.rtf"; done
Run Code Online (Sandbox Code Playgroud)
我对 git 操作完全是个菜鸟,而不是技术人员,所以我猜这对 SO 社区来说是一个简单的想法。只是尝试一些简单的工作流程自动化。感谢任何明确的初学者反馈。谢谢 - 艾伦
我需要对 md 文件进行递归转换以制作可下载包,因此这个答案超出了 OP 的目标。
此 github 操作将:
mkdir output)for d in */; do mkdir output/$d; done)find ./ -iname '*.md' -type f) 并执行 pandoc 命令 ( -exec sh -c 'pandoc ${0} -o output/${0%.md}.docx' {} \;)请注意,从在终端中运行的内容转换为作为 github 操作的一部分正确转换为单个 docker 命令的内容时,必须小心使用双引号和单引号。
jobs:
convert_via_pandoc:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: convert md to docx
uses: docker://pandoc/latex:2.9
with:
entrypoint: /bin/sh
args: -c "mkdir output;for d in */; do mkdir output/$d; done;find ./ -iname '*.md' -type f -exec sh -c 'pandoc ${0} -o output/${0%.md}.docx' {} \;"
- uses: actions/upload-artifact@master
with:
name: output
path: output
Run Code Online (Sandbox Code Playgroud)
该解决方案是使用 @anemyte 的信息和这篇关于递归转换的 SO 帖子开发的
name: Generate Word docs
on: push
jobs:
convert_via_pandoc:
runs-on: ubuntu-20.04
container:
image: docker://pandoc/latex:2.9
options: --entrypoint=sh
steps:
- uses: actions/checkout@v2
- name: prepare output directories
run: |
for d in */; do
mkdir -p output/$d
done
- name: convert md to docx
run: |
find ./ -iname '*.md' -type f -exec sh -c 'pandoc ${0} -o output/${0%.md}.docx' {} \;
- uses: actions/upload-artifact@master
with:
name: output
path: output
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
496 次 |
| 最近记录: |