diff options
Diffstat (limited to '')
| -rw-r--r-- | packages/pagefind/lektor_pagefind.py | 44 |
1 files changed, 44 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) |
