如何将字符串变量作为pandoc的--template选项值传入?
可行方法说明
pandoc的--template选项默认只接受文件路径或内置模板名称(比如html5),无法直接传入字符串变量作为模板内容——直接执行你写的命令会导致pandoc把变量里的HTML代码当作文件名去查找,进而报错。不过可以通过以下两种方式实现需求:
方法一:使用进程替换(适用于bash/zsh等支持的shell)
利用shell的进程替换特性,将变量内容通过临时文件描述符传递给pandoc:
pandoc input.md -s --template=<(echo "$my_custom_html5_template") -o output.htm
注意给变量加上双引号,避免空格、换行或特殊字符被shell错误解析。
方法二:创建临时文件(通用所有shell)
如果你的shell不支持进程替换,可先将变量内容写入临时文件,再用文件路径作为--template参数:
# 创建临时文件 temp_file=$(mktemp) # 将模板内容写入临时文件 echo "$my_custom_html5_template" > "$temp_file" # 执行pandoc转换 pandoc input.md -s --template="$temp_file" -o output.htm # 清理临时文件 rm "$temp_file"
内容的提问来源于stack exchange,提问作者user22996855
相关产品推荐
相关产品推荐

