@@ -123,6 +123,12 @@ extension MarkdownCommand {
123
123
@Argument ( help: " Input file (default: standard input) " )
124
124
var inputFilePath : String ?
125
125
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
+
126
132
/// Search for the an executable with a given base name.
127
133
func findExecutable( named name: String ) throws -> String ? {
128
134
let which = Process ( )
@@ -196,12 +202,19 @@ extension MarkdownCommand {
196
202
if parseSymbolLinks {
197
203
parseOptions. insert ( . parseSymbolLinks)
198
204
}
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
+ )
199
212
let source : String
200
213
let document : Document
201
214
if let inputFilePath = inputFilePath {
202
- ( source, document) = try MarkdownCommand . parseFile ( at: inputFilePath, options: parseOptions )
215
+ ( source, document) = try MarkdownCommand . parseFile ( at: inputFilePath, options: convertOptions )
203
216
} else {
204
- ( source, document) = try MarkdownCommand . parseStandardInput ( options: parseOptions )
217
+ ( source, document) = try MarkdownCommand . parseStandardInput ( options: convertOptions )
205
218
}
206
219
207
220
guard let emphasisMarker = MarkupFormatter . Options. EmphasisMarker ( argument: emphasisMarker) else {
0 commit comments