From dd866218be0c752e0b598f9ff4deeb8ee22af1e2 Mon Sep 17 00:00:00 2001 From: Prateek Bhatnagar Date: Tue, 27 Sep 2016 13:00:27 +0530 Subject: [PATCH] closes #1998 --- lib/server/index.js | 6 ++++-- test/importedtag/imported-tag.tag | 3 +++ test/specs/server/node.js | 5 +++++ test/tag/import-tag.tag | 5 +++++ 4 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 test/importedtag/imported-tag.tag create mode 100644 test/tag/import-tag.tag diff --git a/lib/server/index.js b/lib/server/index.js index 877f43f51b..30a0e53435 100644 --- a/lib/server/index.js +++ b/lib/server/index.js @@ -12,9 +12,11 @@ riot.parsers = compiler.parsers // allow to require('some.tag') require.extensions['.tag'] = function(module, filename) { var src = riot.compile(require('fs').readFileSync(filename, 'utf8')) + var preTag = src.substring(0, src.indexOf('riot.tag')) + var tagDefinitaion = src.substring(src.indexOf('riot.tag')) module._compile( - 'var riot = require(process.env.RIOT || "riot/riot.js");module.exports =' + src - , filename) + 'var riot = require(process.env.RIOT || "riot/riot.js");' + preTag + ';module.exports =' + tagDefinitaion + , filename) } // simple-dom helper diff --git a/test/importedtag/imported-tag.tag b/test/importedtag/imported-tag.tag new file mode 100644 index 0000000000..0692dd2cae --- /dev/null +++ b/test/importedtag/imported-tag.tag @@ -0,0 +1,3 @@ + + I am imported + \ No newline at end of file diff --git a/test/specs/server/node.js b/test/specs/server/node.js index 11f9806f49..c28cc8c67a 100644 --- a/test/specs/server/node.js +++ b/test/specs/server/node.js @@ -121,4 +121,9 @@ describe('Node/io.js', function() { expect($('textarea[name="txta2"]').val()).to.be('') }) + it('render subsequent tags, when required from parent tag', function() { + var tag = riot.render('import-tag') + expect(tag).to.be('I am imported') + }) + }) diff --git a/test/tag/import-tag.tag b/test/tag/import-tag.tag new file mode 100644 index 0000000000..1edb0bbbda --- /dev/null +++ b/test/tag/import-tag.tag @@ -0,0 +1,5 @@ +var importedTag = require('../importedtag/imported-tag.tag'); + + + + \ No newline at end of file