manual: CI check with nitunit
[nit.git] / lib / markdown / nitmd.nit
index 3570513..34e8d93 100644 (file)
 module nitmd
 
 import markdown
+import decorators
+import man
 
-if args.length != 1 then
-       print "usage: nitmd <file.md>"
-       exit 0
+import config
+
+var opt_to = new OptionString("Specify output format (html, md, man)", "-t", "--to")
+
+var usage = new Buffer
+usage.append "Usage: nitmd [-t format] <file.md>\n"
+usage.append "Translate Markdown documents to other formats."
+
+var config = new Config
+config.add_option(opt_to)
+config.tool_description = usage.write_to_string
+
+config.parse_options(args)
+if config.args.length != 1 then
+       config.usage
+       exit 1
 end
 
-var file = args.first
+var file = config.args.first
 if not file.file_exists then
        print "'{file}' not found"
-       exit 0
+       exit 1
 end
 
 var ifs = new FileReader.open(file)
@@ -33,4 +48,15 @@ var md = ifs.read_all
 ifs.close
 
 var processor = new MarkdownProcessor
+var to = opt_to.value
+if to == null or to == "html" then
+       # Noop
+else if to == "md" then
+       processor.decorator = new MdDecorator
+else if to == "man" then
+       processor.decorator = new ManDecorator
+else
+       print "Unknown output format: {to}"
+       exit 1
+end
 print processor.process(md)