@paroicms/public-menu-plugin
Version:
Public menu plugin for ParoiCMS
25 lines (24 loc) • 1.2 kB
JavaScript
import { strVal } from "@paroi/data-formatters-lib";
import { escapeHtml, makeStylesheetLinkAsyncTag, resolveModuleDirectory, } from "@paroicms/public-server-lib";
import { readFileSync } from "node:fs";
import { dirname, join } from "node:path";
const projectDir = resolveModuleDirectory(import.meta.url, { parent: true });
const packageDir = dirname(projectDir);
const version = strVal(JSON.parse(readFileSync(join(packageDir, "package.json"), "utf-8")).version);
const plugin = {
version,
slug: "public-menu",
async siteInit(service) {
service.setPublicAssetsDirectory(join(packageDir, "public-front", "dist"));
service.registerHeadTags(({ html }) => {
if (html.includes(`data-effect="paMobileMenu`)) {
return [
makeStylesheetLinkAsyncTag(`${service.pluginAssetsUrl}/public-front-plugin.css`),
`<script type="module" src="${escapeHtml(`${service.pluginAssetsUrl}/public-front-plugin.mjs`)}" async></script>`,
`<style>@media(max-width:992px){[data-mobile-menu-action="move"]{display:none}}</style>`,
];
}
});
},
};
export default plugin;