skrift 0.1.0a5__tar.gz → 0.1.0a6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. {skrift-0.1.0a5 → skrift-0.1.0a6}/PKG-INFO +1 -1
  2. {skrift-0.1.0a5 → skrift-0.1.0a6}/pyproject.toml +1 -1
  3. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/asgi.py +13 -6
  4. {skrift-0.1.0a5 → skrift-0.1.0a6}/.gitignore +0 -0
  5. {skrift-0.1.0a5 → skrift-0.1.0a6}/README.md +0 -0
  6. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/__init__.py +0 -0
  7. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/__main__.py +0 -0
  8. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/admin/__init__.py +0 -0
  9. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/admin/controller.py +0 -0
  10. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/admin/navigation.py +0 -0
  11. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/alembic/env.py +0 -0
  12. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/alembic/script.py.mako +0 -0
  13. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/alembic/versions/20260120_210154_09b0364dbb7b_initial_schema.py +0 -0
  14. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/alembic/versions/20260122_152744_0b7c927d2591_add_roles_and_permissions.py +0 -0
  15. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/alembic/versions/20260122_172836_cdf734a5b847_add_sa_orm_sentinel_column.py +0 -0
  16. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/alembic/versions/20260122_175637_a9c55348eae7_remove_page_type_column.py +0 -0
  17. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/alembic/versions/20260122_200000_add_settings_table.py +0 -0
  18. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/alembic/versions/20260129_add_oauth_accounts.py +0 -0
  19. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/alembic.ini +0 -0
  20. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/auth/__init__.py +0 -0
  21. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/auth/guards.py +0 -0
  22. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/auth/roles.py +0 -0
  23. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/auth/services.py +0 -0
  24. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/cli.py +0 -0
  25. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/config.py +0 -0
  26. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/controllers/__init__.py +0 -0
  27. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/controllers/auth.py +0 -0
  28. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/controllers/web.py +0 -0
  29. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/db/__init__.py +0 -0
  30. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/db/base.py +0 -0
  31. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/db/models/__init__.py +0 -0
  32. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/db/models/oauth_account.py +0 -0
  33. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/db/models/page.py +0 -0
  34. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/db/models/role.py +0 -0
  35. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/db/models/setting.py +0 -0
  36. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/db/models/user.py +0 -0
  37. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/db/services/__init__.py +0 -0
  38. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/db/services/page_service.py +0 -0
  39. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/db/services/setting_service.py +0 -0
  40. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/lib/__init__.py +0 -0
  41. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/lib/exceptions.py +0 -0
  42. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/lib/template.py +0 -0
  43. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/setup/__init__.py +0 -0
  44. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/setup/config_writer.py +0 -0
  45. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/setup/controller.py +0 -0
  46. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/setup/middleware.py +0 -0
  47. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/setup/providers.py +0 -0
  48. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/setup/state.py +0 -0
  49. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/static/css/style.css +0 -0
  50. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/admin/admin.html +0 -0
  51. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/admin/base.html +0 -0
  52. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/admin/pages/edit.html +0 -0
  53. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/admin/pages/list.html +0 -0
  54. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/admin/settings/site.html +0 -0
  55. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/admin/users/list.html +0 -0
  56. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/admin/users/roles.html +0 -0
  57. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/auth/dummy_login.html +0 -0
  58. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/auth/login.html +0 -0
  59. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/base.html +0 -0
  60. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/error-404.html +0 -0
  61. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/error-500.html +0 -0
  62. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/error.html +0 -0
  63. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/index.html +0 -0
  64. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/page.html +0 -0
  65. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/setup/admin.html +0 -0
  66. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/setup/auth.html +0 -0
  67. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/setup/base.html +0 -0
  68. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/setup/complete.html +0 -0
  69. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/setup/configuring.html +0 -0
  70. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/setup/database.html +0 -0
  71. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/setup/restart.html +0 -0
  72. {skrift-0.1.0a5 → skrift-0.1.0a6}/skrift/templates/setup/site.html +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skrift
3
- Version: 0.1.0a5
3
+ Version: 0.1.0a6
4
4
  Summary: A lightweight async Python CMS for crafting modern websites
5
5
  Requires-Python: >=3.13
6
6
  Requires-Dist: advanced-alchemy>=0.26.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "skrift"
3
- version = "0.1.0a5"
3
+ version = "0.1.0a6"
4
4
  description = "A lightweight async Python CMS for crafting modern websites"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"
@@ -10,6 +10,7 @@ The application uses a dispatcher architecture:
10
10
  import asyncio
11
11
  import hashlib
12
12
  import importlib
13
+ import os
13
14
  from datetime import datetime
14
15
  from pathlib import Path
15
16
 
@@ -309,9 +310,11 @@ def create_app() -> Litestar:
309
310
  )
310
311
 
311
312
  # Template configuration
313
+ # Search working directory first for user overrides, then package directory
314
+ working_dir_templates = Path(os.getcwd()) / "templates"
312
315
  template_dir = Path(__file__).parent / "templates"
313
316
  template_config = TemplateConfig(
314
- directory=template_dir,
317
+ directory=[working_dir_templates, template_dir],
315
318
  engine=JinjaTemplateEngine,
316
319
  engine_callback=lambda engine: engine.engine.globals.update({
317
320
  "now": datetime.now,
@@ -322,10 +325,11 @@ def create_app() -> Litestar:
322
325
  }),
323
326
  )
324
327
 
325
- # Static files
328
+ # Static files - working directory first for user overrides, then package directory
329
+ working_dir_static = Path(os.getcwd()) / "static"
326
330
  static_files_router = create_static_files_router(
327
331
  path="/static",
328
- directories=[Path(__file__).parent / "static"],
332
+ directories=[working_dir_static, Path(__file__).parent / "static"],
329
333
  )
330
334
 
331
335
  from skrift.auth import sync_roles_to_database
@@ -381,9 +385,11 @@ def create_setup_app() -> Litestar:
381
385
  )
382
386
 
383
387
  # Template configuration
388
+ # Search working directory first for user overrides, then package directory
389
+ working_dir_templates = Path(os.getcwd()) / "templates"
384
390
  template_dir = Path(__file__).parent / "templates"
385
391
  template_config = TemplateConfig(
386
- directory=template_dir,
392
+ directory=[working_dir_templates, template_dir],
387
393
  engine=JinjaTemplateEngine,
388
394
  engine_callback=lambda engine: engine.engine.globals.update({
389
395
  "now": datetime.now,
@@ -394,10 +400,11 @@ def create_setup_app() -> Litestar:
394
400
  }),
395
401
  )
396
402
 
397
- # Static files
403
+ # Static files - working directory first for user overrides, then package directory
404
+ working_dir_static = Path(os.getcwd()) / "static"
398
405
  static_files_router = create_static_files_router(
399
406
  path="/static",
400
- directories=[Path(__file__).parent / "static"],
407
+ directories=[working_dir_static, Path(__file__).parent / "static"],
401
408
  )
402
409
 
403
410
  # Import controllers
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes