diff --git a/index.js b/index.js index 0a09301..5fc0a9b 100644 --- a/index.js +++ b/index.js @@ -30,15 +30,22 @@ function parserExampleElement(elements, element, block, filename) { } function parserExampleElements(elements, element, block, filename) { - if ( element.name !== 'apiexample' ) { return elements; } - elements.pop(); - const values = elementParser.parse(element.content, element.source); - if (values && schemas[values.schema]) { - app.log.debug('apiexample.path',values.path); - const data = fs.readFileSync( path.join(path.dirname(filename), values.path), 'utf8').toString(); - element = schemas[values.schema](data, values.element, values.title); + if ( element.name !== 'apiexample' ) { + return elements; + } + + const values = elementParser.parse(element.content, element.source); + if (!values) { + return elements } + + app.log.debug('apiexample.path', values.path); + const data = fs.readFileSync(path.join(path.dirname(filename), values.path), 'utf8').toString(); + + element = schemas[values.schema](data, values.element, values.title); + elements.pop() elements.push(element); + return elements; } diff --git a/parser/api_example.js b/parser/api_example.js index a337633..a8a24ea 100644 --- a/parser/api_example.js +++ b/parser/api_example.js @@ -7,7 +7,7 @@ function parse(content) { return null; // @apiExample {json=relative_path} additional_argument - var parseRegExp = /^\{(.+?)=(.+?)\}\s*(?:\s+(.+?))?\s(.+?)$/g; + var parseRegExp = /^\{\s*(json|jsonschema|xml)\s*=(.+?)\}\s*(?:\s+(.+?))?\s(.+?)$/g; var matches = parseRegExp.exec(content); if ( ! matches)