Replace static HTTP server with livereload-based dev server that watches posts/, layout/, and static/ directories for changes, rebuilds the site, and auto-refreshes the browser.
25 lines
595 B
Python
25 lines
595 B
Python
#!/usr/bin/env python3
|
|
"""Development server with live reload."""
|
|
|
|
import subprocess
|
|
import sys
|
|
|
|
from livereload import Server
|
|
|
|
|
|
def rebuild(flag):
|
|
subprocess.run(["uv", "run", "python", "makesite.py", flag])
|
|
|
|
|
|
def main():
|
|
flag = sys.argv[1] if len(sys.argv) > 1 else "--local"
|
|
rebuild(flag)
|
|
server = Server()
|
|
server.watch("posts/**/*.md", lambda: rebuild(flag))
|
|
server.watch("layout/*.html", lambda: rebuild(flag))
|
|
server.watch("static/**/*", lambda: rebuild(flag))
|
|
server.serve(root="_site", port=8000, open_url_delay=1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|