UNPKG

@paroicms/server

Version:
160 lines 6.23 kB
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