50 lines
4.9 KiB
JavaScript
50 lines
4.9 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.register = exports.RInclude = void 0;
|
|
const liquid_1 = require("../liquidjs/liquid");
|
|
const block_mode_1 = require("../liquidjs/context/block-mode");
|
|
const render_1 = require("../liquidjs/builtin/tags/render");
|
|
const tag_1 = require("../../liquidjs/template/tag/tag");
|
|
class RInclude extends tag_1.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 liquid_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, liquid_1.assert)(filepath, () => `illegal file path "${filepath}"`);
|
|
const saved = ctx.saveRegister('blocks', 'blockMode');
|
|
ctx.setRegister('blocks', {});
|
|
ctx.setRegister('blockMode', block_mode_1.default.OUTPUT);
|
|
const scope = (yield hash.render(ctx));
|
|
if (withVar)
|
|
scope[filepath] = yield (0, liquid_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.RInclude = RInclude;
|
|
const register = (liquid) => {
|
|
};
|
|
exports.register = register;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmluY2x1ZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGx1Z2lucy9yaW5jbHVkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBeUg7QUFFekgsK0RBQXNEO0FBR3RELDREQUErRTtBQUMvRSx5REFBcUQ7QUFHckQsTUFBYSxRQUFTLFNBQVEsU0FBRztJQUcvQixZQUFZLEtBQWUsRUFBRSxZQUE2QixFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ3hGLEtBQUssQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ2xDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUE7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUEsc0JBQWEsRUFBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUM1RCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtRQUVoQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUMxQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO1lBQzlCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtZQUNyQixJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFBO2FBQ3JDOztnQkFBTSxTQUFTLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQTtTQUMzQjs7WUFBTSxTQUFTLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQTtRQUUxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksYUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBQ0QsQ0FBRSxNQUFNLENBQUMsR0FBWSxFQUFFLE9BQWdCO1FBQ3JDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQTtRQUN0QyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQzNCLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFBLHVCQUFjLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBVyxDQUFBO1FBQzVFLElBQUEsZUFBTSxFQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsUUFBUSxHQUFHLENBQUMsQ0FBQTtRQUV6RCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUNyRCxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUM3QixHQUFHLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxvQkFBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzlDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFVLENBQUE7UUFDL0MsSUFBSSxPQUFPO1lBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sSUFBQSxrQkFBUyxFQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUM1RCxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFlLENBQUE7UUFDekcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdELE1BQU0sUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ3ZELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUNULEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDNUIsQ0FBQztDQUNGO0FBckNELDRCQXFDQztBQUVNLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7QUFFM0MsQ0FBQyxDQUFBO0FBRlksUUFBQSxRQUFRLFlBRXBCIn0=
|