46 lines
4.6 KiB
JavaScript
46 lines
4.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const liquidjs_1 = require("../liquidjs");
|
|
const context_1 = require("../../liquidjs/context");
|
|
const render_1 = require("../../liquidjs/tags/render");
|
|
const liquidjs_2 = require("../../liquidjs");
|
|
class RInclude extends liquidjs_2.Tag {
|
|
constructor(token, remainTokens, liquid, parser) {
|
|
super(token, remainTokens, liquid);
|
|
const { tokenizer } = token;
|
|
this['file'] = (0, render_1.parseFilePath)(tokenizer, this.liquid, parser);
|
|
this['currentFile'] = token.file;
|
|
const begin = tokenizer.p;
|
|
const withStr = tokenizer.readIdentifier();
|
|
if (withStr.content === 'with') {
|
|
tokenizer.skipBlank();
|
|
if (tokenizer.peek() !== ':') {
|
|
this.withVar = tokenizer.readValue();
|
|
}
|
|
else
|
|
tokenizer.p = begin;
|
|
}
|
|
else
|
|
tokenizer.p = begin;
|
|
this.hash = new liquidjs_1.Hash(tokenizer.remaining(), this.liquid.options.jekyllInclude);
|
|
}
|
|
*render(ctx, emitter) {
|
|
const { liquid, hash, withVar } = this;
|
|
const { renderer } = liquid;
|
|
const filepath = (yield (0, render_1.renderFilePath)(this['file'], ctx, liquid));
|
|
(0, liquidjs_1.assert)(filepath, () => `illegal file path "${filepath}"`);
|
|
const saved = ctx.saveRegister('blocks', 'blockMode');
|
|
ctx.setRegister('blocks', {});
|
|
ctx.setRegister('blockMode', context_1.BlockMode.OUTPUT);
|
|
const scope = (yield hash.render(ctx));
|
|
if (withVar)
|
|
scope[filepath] = yield (0, liquidjs_1.evalToken)(withVar, ctx);
|
|
const templates = (yield liquid._parsePartialFile(filepath, ctx.sync, this['currentFile']));
|
|
ctx.push(ctx.opts.jekyllInclude ? { include: scope } : scope);
|
|
yield renderer.renderTemplates(templates, ctx, emitter);
|
|
ctx.pop();
|
|
ctx.restoreRegister(saved);
|
|
}
|
|
}
|
|
exports.default = RInclude;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wbHVnaW5zL2luY2x1ZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQ0FBa0o7QUFDbEosb0RBQXlEO0FBRXpELHVEQUEwRTtBQUMxRSw2Q0FBK0Q7QUFFL0QsTUFBcUIsUUFBUyxTQUFRLGNBQUc7SUFHdkMsWUFBYSxLQUFlLEVBQUUsWUFBNkIsRUFBRSxNQUFjLEVBQUUsTUFBYztRQUN6RixLQUFLLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUNsQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFBO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFBLHNCQUFhLEVBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDNUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUE7UUFFaEMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQTtRQUN6QixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDMUMsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQy9CLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtZQUNyQixJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUE7WUFDdEMsQ0FBQzs7Z0JBQU0sU0FBUyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUE7UUFDNUIsQ0FBQzs7WUFBTSxTQUFTLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQTtRQUUxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBQ0QsQ0FBRSxNQUFNLENBQUUsR0FBWSxFQUFFLE9BQWdCO1FBQ3RDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQTtRQUN0QyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQzNCLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFBLHVCQUFjLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBVyxDQUFBO1FBQzVFLElBQUEsaUJBQU0sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsc0JBQXNCLFFBQVEsR0FBRyxDQUFDLENBQUE7UUFFekQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDckQsR0FBRyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDN0IsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsbUJBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM5QyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBVSxDQUFBO1FBQy9DLElBQUksT0FBTztZQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLElBQUEsb0JBQVMsRUFBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDNUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBZSxDQUFBO1FBQ3pHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM3RCxNQUFNLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUN2RCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDVCxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzVCLENBQUM7Q0FDRjtBQXJDRCwyQkFxQ0MifQ==
|