diff options
Diffstat (limited to '')
| -rw-r--r-- | packages/pagefind/lektor_pagefind.py | 44 | ||||
| -rw-r--r-- | packages/pagefind/setup.py | 13 |
2 files changed, 57 insertions, 0 deletions
diff --git a/packages/pagefind/lektor_pagefind.py b/packages/pagefind/lektor_pagefind.py new file mode 100644 index 0000000..17627fc --- /dev/null +++ b/packages/pagefind/lektor_pagefind.py @@ -0,0 +1,44 @@ +from __future__ import annotations + +import subprocess +from pathlib import Path +from typing import Any + +from lektor.pluginsystem import Plugin + +COMPONENT_UI_FILES = ( + "pagefind-component-ui.css", + "pagefind-component-ui.js", +) + + +class PagefindPlugin(Plugin): + name = "Pagefind" + description = "Generate the Pagefind search index." + + def on_after_prune( + self, + builder: Any, + all: bool, + **extra: Any, + ) -> None: + if all: + return + + site_path = Path(builder.destination_path) + + subprocess.run( + [ + "npx", + "pagefind", + "--site", + str(site_path), + ], + cwd=self.env.root_path, + check=True, + ) + + pagefind_path = site_path / "pagefind" + + for filename in COMPONENT_UI_FILES: + (pagefind_path / filename).unlink(missing_ok=True) diff --git a/packages/pagefind/setup.py b/packages/pagefind/setup.py new file mode 100644 index 0000000..066d872 --- /dev/null +++ b/packages/pagefind/setup.py @@ -0,0 +1,13 @@ +from setuptools import setup + +setup( + name="lektor-pagefind", + version="0.1.0", + py_modules=["lektor_pagefind"], + entry_points={ + "lektor.plugins": [ + "pagefind = lektor_pagefind:PagefindPlugin", + ] + }, + install_requires=[], +) |
