
protocol CommandProcessor {

    static var commandType: CommandType { get }

    var results: PageGenerationResults { get }

    init(content: Content, results: PageGenerationResults, language: ContentLanguage)

    func process(_ arguments: [String], markdown: Substring) -> String
}

extension CommandProcessor {

    func invalid(_ markdown: Substring) {
        results.invalid(command: Self.commandType, markdown)
    }
}
