UNPKG

@paroicms/public-menu-plugin

Version:

Public menu plugin for ParoiCMS

27 lines (26 loc) 1.33 kB
import { escapeHtml, makeStylesheetLinkAsyncTag, } from "@paroicms/public-server-lib"; import { esmDirName, extractPackageNameAndVersionSync } from "@paroicms/script-lib"; import { dirname, join } from "node:path"; const projectDir = dirname(esmDirName(import.meta.url)); const packageDir = dirname(projectDir); const { version } = extractPackageNameAndVersionSync(packageDir); const plugin = { version, async siteInit(service) { service.setPublicAssetsDirectory(join(packageDir, "frontend", "dist")); service.registerHeadTags(({ html }) => { const withMobileMenu = html.includes(`data-effect="paMobileMenu"`); if (html.includes("data-activate-menu-items") || withMobileMenu) { const tags = [ makeStylesheetLinkAsyncTag(`${service.pluginAssetsUrl}/public-menu-plugin.css`), `<script type="module" src="${escapeHtml(`${service.pluginAssetsUrl}/public-menu-plugin.mjs`)}" async></script>`, ]; if (withMobileMenu) { tags.push(`<style>@media(max-width:992px){[data-mobile-menu-action="move"]{display:none}}@media(min-width:992px){[data-mobile-menu]{display:none}}</style>`); } return tags; } }); }, }; export default plugin;