osr-mono/packages/osrl/plugins/include.js
2025-01-29 17:48:22 +01:00

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==