mono/packages/osrl/plugins/rinclude.js
2025-12-30 16:33:03 +01:00

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=