如何通过命令行参数从markdown输入文件生成html文件



根据下面的代码部分,我想通过命令行参数从给定的.md文件生成.html格式的输出

#main.py
import os, argparse,
import configparser, webbrowser
parser = argparse.ArgumentParser() 
parser.add_argument('--display', dest='display',action='store_true', help='displays the md file',default=None)
parser.add_argument('--inputmarkdown',type=argparse.FileType("r"),help='Provide the markdown file location')
parser.add_argument('--outputmarkdown', type = str, default = "./Output",help='Provide the output display file location')
args = parser.parse_args()
if args.display:
subprocess.run(["pandoc", "--toc", "--standalone","--mathjax", "-t", "html", "--simple_tables", "args.inputmarkdown", "-o", "args.outputmarkdown", "--metadata", "pagetitle=test display"])
url = "file://(args.outputmarkdown)"
webbrowser.open(url,new=1,autoraise=True)

使用以下命令行参数

python3 main.py --display --inputmarkdown file/path/firsttest.md --outputmarkdown /file/path/test/firsttest.html

以上内容不执行任务,我只打开了带有文件的网络浏览器:///有人能提出问题在哪里吗?

问题可能出在url字符串上。您没有设置它的格式。并且子流程调用中的变量是带引号的。

试试这个

import os, argparse,
import webbrowser
parser = argparse.ArgumentParser() 
parser.add_argument('--display', dest='display', action='store_true', help='displays the md file', default=None)
parser.add_argument('--inputmarkdown', help='Provide the markdown file location')
parser.add_argument('--outputmarkdown', default="./Output", help='Provide the output display file location')
parser.add_argument('--pagetitle', dest='pagetitle', default='test display')
args = parser.parse_args()
if args.display:
subprocess.run(["pandoc", "--toc", "--standalone", "--mathjax", "-t", "html", "--simple_tables", args.inputmarkdown, "-o", args.outputmarkdown, "--metadata", f"pagetitle={args.pagetitle}"])
url = f"file://{args.outputmarkdown}"
webbrowser.open(url,new=1,autoraise=True)

最新更新