@paroicms/server
Version:
The ParoiCMS server
160 lines • 6.23 kB
JavaScript
import { cmsVersion } from "../../context.js";
import { extractRenderingContext } from "../../liquidjs-tools/liquidjs-utils.js";
import { formatDateLiquidFilter } from "../../rendered-site/liquidjs-filters/format-date.js";
import { formatNumberLiquidFilter } from "../../rendered-site/liquidjs-filters/format-number.js";
import { injectHeadTagsLiquidFilter, stylesheetLinkAsyncTagLiquidFilter, } from "../../rendered-site/liquidjs-filters/head-tags-filter.js";
import { infoLiquidFilter } from "../../rendered-site/liquidjs-filters/info-filter.js";
import { injectMenuItemsData } from "../../rendered-site/liquidjs-filters/inject-menu-items-data.js";
import { makeExcerptLiquidFilter } from "../../rendered-site/liquidjs-filters/make-excerpt.js";
import { deprecatedObfuscateLiquidFilter, obfuscateLiquidFilter, } from "../../rendered-site/liquidjs-filters/obfuscate.js";
import { injectOpenGraphTagsLiquidFilter } from "../../rendered-site/liquidjs-filters/open-graph-filter.js";
import { pluginAssetUrlLiquidFilter } from "../../rendered-site/liquidjs-filters/plugin-asset-url-filter.js";
import { translateLiquidFilter } from "../../rendered-site/liquidjs-filters/translate-filter.js";
import { createCoreHooks } from "./core-hooks.js";
export function createCorePlugin() {
return {
pluginName: "_core-plugin",
slug: "core",
staticConfiguration: {
platform: true,
configuration: {},
},
plugin: {
version: cmsVersion,
},
initData: {
liquidFilters: createCoreLiquidFilters(),
liquidTags: [],
headTagsHandlers: [],
liquidRootDirectories: [],
siteSchemaLibraryDirectories: [],
hooks: createCoreHooks(),
renderingHooks: [],
},
};
}
function createCoreLiquidFilters() {
return [
...createTranslationFilters(),
...createTextProcessingFilters(),
...createObfuscationFilters(),
...createHtmlGenerationFilters(),
...createAssetFilters(),
];
}
function createTranslationFilters() {
return [
{
filterName: "t",
handler: async (_service, value, { ctx, args }) => {
const renderingContext = extractRenderingContext(ctx);
return translateLiquidFilter(value, { renderingContext, args });
},
},
{
filterName: "translate",
handler: async (service, value, { ctx, args }) => {
service.pluginService.logger.warn("'translate' filter is deprecated, use 't' instead");
const renderingContext = extractRenderingContext(ctx);
return translateLiquidFilter(value, { renderingContext, args });
},
},
];
}
function createTextProcessingFilters() {
return [
{
filterName: "formatNumber",
handler: async (_service, value, { ctx }) => {
const renderingContext = extractRenderingContext(ctx);
return formatNumberLiquidFilter(value, { renderingContext });
},
},
{
filterName: "makeExcerpt",
handler: async (_service, value, { args }) => {
return makeExcerptLiquidFilter(value, { args });
},
},
{
filterName: "formatDate",
handler: async (_service, value, { ctx, args }) => {
const renderingContext = extractRenderingContext(ctx);
return formatDateLiquidFilter(value, { renderingContext, args });
},
},
];
}
function createObfuscationFilters() {
return [
{
filterName: "obfuscate",
handler: async (_service, value, { ctx, args }) => {
const renderingContext = extractRenderingContext(ctx);
return obfuscateLiquidFilter(value, { renderingContext, args });
},
options: { raw: true },
},
{
filterName: "obfuscateAsLink",
handler: async (_service, value, { ctx }) => {
const renderingContext = extractRenderingContext(ctx);
return deprecatedObfuscateLiquidFilter(value, { renderingContext });
},
options: { raw: true },
},
];
}
function createHtmlGenerationFilters() {
return [
{
filterName: "openGraphTags",
handler: async (_service, value, { ctx }) => {
const renderingContext = extractRenderingContext(ctx);
return await injectOpenGraphTagsLiquidFilter(value, { renderingContext });
},
options: { raw: true },
},
{
filterName: "info",
handler: async (_service, value) => {
return infoLiquidFilter(value);
},
options: { raw: true },
},
{
filterName: "activateMenuItemsData",
handler: async (_service, value, { ctx }) => {
const renderingContext = extractRenderingContext(ctx);
return await injectMenuItemsData(value, { renderingContext });
},
},
{
filterName: "headTags",
handler: async (_service, value, { ctx }) => {
const renderingContext = extractRenderingContext(ctx);
return await injectHeadTagsLiquidFilter(value, { renderingContext });
},
options: { raw: true },
},
];
}
function createAssetFilters() {
return [
{
filterName: "pluginAssetUrl",
handler: async (_service, value, { ctx, args }) => {
const renderingContext = extractRenderingContext(ctx);
return await pluginAssetUrlLiquidFilter(value, { renderingContext, args });
},
},
{
filterName: "stylesheetLinkAsyncTag",
handler: async (_service, value) => {
return stylesheetLinkAsyncTagLiquidFilter(value);
},
options: { raw: true },
},
];
}
//# sourceMappingURL=create-core-plugin.js.map