@@ -123,6 +123,12 @@ extension MarkdownCommand {
123123 @Argument ( help: " Input file (default: standard input) " )
124124 var inputFilePath : String ?
125125
126+ @Option ( help: " Additional Commonmark extensions to enable " )
127+ var `extension` : [ String ] = [ ]
128+
129+ @Flag < Bool > ( help: " Don't enable the default Commonmark extensions ( \( ConvertOptions . defaultCommonmarkExtensions. joined ( separator: " , " ) ) ) " )
130+ var noDefaultExtensions : Bool = false
131+
126132 /// Search for the an executable with a given base name.
127133 func findExecutable( named name: String ) throws -> String ? {
128134 let which = Process ( )
@@ -196,12 +202,19 @@ extension MarkdownCommand {
196202 if parseSymbolLinks {
197203 parseOptions. insert ( . parseSymbolLinks)
198204 }
205+ var commonmarkExts = noDefaultExtensions ? [ ] : ConvertOptions . defaultCommonmarkExtensions
206+ commonmarkExts. append ( contentsOf: `extension`)
207+ let convertOptions = ConvertOptions . init (
208+ parseOptions: parseOptions,
209+ commonmarkOptions: ConvertOptions . defaultCommonmarkOptions,
210+ extensions: commonmarkExts
211+ )
199212 let source : String
200213 let document : Document
201214 if let inputFilePath = inputFilePath {
202- ( source, document) = try MarkdownCommand . parseFile ( at: inputFilePath, options: parseOptions )
215+ ( source, document) = try MarkdownCommand . parseFile ( at: inputFilePath, options: convertOptions )
203216 } else {
204- ( source, document) = try MarkdownCommand . parseStandardInput ( options: parseOptions )
217+ ( source, document) = try MarkdownCommand . parseStandardInput ( options: convertOptions )
205218 }
206219
207220 guard let emphasisMarker = MarkupFormatter . Options. EmphasisMarker ( argument: emphasisMarker) else {
0 commit comments