bloggy 0.1.40__py3-none-any.whl → 0.1.43__py3-none-any.whl

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.
bloggy/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "0.1.40"
1
+ __version__ = "0.1.43"
2
2
 
3
3
  from .core import app, rt, get_root_folder, get_blog_title
4
4
 
bloggy/core.py CHANGED
@@ -803,6 +803,15 @@ hdrs = (
803
803
  .dark *::-webkit-scrollbar-thumb { background-color: rgb(71 85 105); }
804
804
  .dark *::-webkit-scrollbar-thumb:hover { background-color: rgb(100 116 139); }
805
805
  .dark * { scrollbar-color: rgb(71 85 105) transparent; }
806
+
807
+ /* Sidebar active link highlight */
808
+ .sidebar-highlight {
809
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.35);
810
+ transition: box-shadow 10s ease, background-color 10s ease;
811
+ }
812
+ .sidebar-highlight.fade-out {
813
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0);
814
+ }
806
815
 
807
816
  /* Tabs styles */
808
817
  .tabs-container {
@@ -1093,14 +1102,17 @@ def collapsible_sidebar(icon, title, items_list, is_open=False, data_sidebar=Non
1093
1102
  """Reusable collapsible sidebar component with sticky header"""
1094
1103
  # Build the summary content
1095
1104
  summary_content = [
1096
- UkIcon(icon, cls="w-5 h-5 mr-2"),
1097
- Span(title, cls="flex-1")
1105
+ Span(
1106
+ UkIcon(icon, cls="w-5 h-5 block"),
1107
+ cls="flex items-center justify-center w-5 h-5 shrink-0 leading-none"
1108
+ ),
1109
+ Span(title, cls="flex-1 leading-none")
1098
1110
  ]
1099
1111
 
1100
1112
  # Sidebar styling configuration
1101
- common_frost_style = "bg-white/10 dark:bg-slate-950/70 backdrop-blur-lg border border-slate-900/20 dark:border-slate-700/20 shadow-lg"
1102
- summary_classes = f"flex items-center font-semibold cursor-pointer py-2 px-3 hover:bg-slate-100/80 dark:hover:bg-slate-800/80 rounded-lg select-none list-none {common_frost_style} min-h-[56px]"
1103
- content_classes = f"p-3 {common_frost_style} rounded-lg border border-black dark:border-black overflow-y-auto max-h-[calc(100vh-18rem)]"
1113
+ common_frost_style = "bg-white/20 dark:bg-slate-950/70 backdrop-blur-lg border border-slate-900/10 dark:border-slate-700/25 ring-1 ring-white/20 dark:ring-slate-900/30 shadow-[0_24px_60px_-40px_rgba(15,23,42,0.45)] dark:shadow-[0_28px_70px_-45px_rgba(2,6,23,0.85)]"
1114
+ summary_classes = f"flex items-center gap-2 font-semibold cursor-pointer py-2.5 px-3 hover:bg-slate-100/80 dark:hover:bg-slate-800/80 rounded-lg select-none list-none {common_frost_style} min-h-[56px]"
1115
+ content_classes = f"p-3 {common_frost_style} rounded-lg overflow-y-auto max-h-[calc(100vh-18rem)]"
1104
1116
 
1105
1117
  return Details(
1106
1118
  Summary(*summary_content, cls=summary_classes, style="margin: 0 0 0.5rem 0;"),
bloggy/main.py CHANGED
@@ -89,8 +89,20 @@ def cli():
89
89
  print(f"Serving at: http://{host}:{port}")
90
90
  if host == '0.0.0.0':
91
91
  print(f"Server accessible from network at: http://<your-ip>:{port}")
92
+
93
+ # Configure reload to watch markdown files in the blog directory
94
+ reload_kwargs = {}
95
+ if reload:
96
+ blog_root = config.get_root_folder()
97
+ reload_kwargs = {
98
+ "reload": True,
99
+ "reload_dirs": [str(blog_root)],
100
+ "reload_includes": ["*.md"]
101
+ }
102
+ else:
103
+ reload_kwargs = {"reload": False}
92
104
 
93
- uvicorn.run("bloggy.main:app", host=host, port=port, reload=reload)
105
+ uvicorn.run("bloggy.main:app", host=host, port=port, **reload_kwargs)
94
106
 
95
107
  if __name__ == "__main__":
96
108
  cli()
bloggy/static/scripts.js CHANGED
@@ -375,10 +375,16 @@ function revealInSidebar(rootElement = document) {
375
375
  }
376
376
 
377
377
  // Highlight the active link temporarily
378
- activeLink.classList.add('ring-2', 'ring-blue-500', 'ring-offset-2');
379
- setTimeout(() => {
380
- activeLink.classList.remove('ring-2', 'ring-blue-500', 'ring-offset-2');
381
- }, 1500);
378
+ activeLink.classList.remove('fade-out');
379
+ activeLink.classList.add('sidebar-highlight');
380
+ requestAnimationFrame(() => {
381
+ setTimeout(() => {
382
+ activeLink.classList.add('fade-out');
383
+ setTimeout(() => {
384
+ activeLink.classList.remove('sidebar-highlight', 'fade-out');
385
+ }, 10000);
386
+ }, 1000);
387
+ });
382
388
  }
383
389
  }
384
390
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bloggy
3
- Version: 0.1.40
3
+ Version: 0.1.43
4
4
  Summary: A lightweight, elegant blogging platform built with FastHTML
5
5
  Home-page: https://github.com/yeshwanth/bloggy
6
6
  Author: Yeshwanth
@@ -0,0 +1,13 @@
1
+ bloggy/__init__.py,sha256=6pQNm4uY2gQkgU6DBO3az63QzYGdKQc-EyvV5WNi7uA,159
2
+ bloggy/build.py,sha256=fnRpaDURYCM_8naCeX8yce-ZkHmNIw_jQ2KspiOYWFQ,23671
3
+ bloggy/config.py,sha256=6NhHD45KnMJiKXcpdSbZgSBq8W3sFik5HAEuqC3y8vo,4229
4
+ bloggy/core.py,sha256=2PArRMllSPhNKPYZ0K-F0N1WCc4aJwHZlGD5qO38Imc,71432
5
+ bloggy/main.py,sha256=p7XJKR4kVnaXxYn_xQMdNczULMjM0KX_OQL1nC59JSI,4063
6
+ bloggy/static/scripts.js,sha256=GUN4oaMJyTCbFp__grmyPsJC85MDB-Ov0nlqOUc4I28,22089
7
+ bloggy/static/sidenote.css,sha256=11XFyPV90fL4rzXfGHgjgOegBvKDqp-d3IWgiOwRVQI,1046
8
+ bloggy-0.1.43.dist-info/licenses/LICENSE,sha256=xV8xoN4VOL0uw9X8RSs2IMuD_Ss_a9yAbtGNeBWZwnw,11337
9
+ bloggy-0.1.43.dist-info/METADATA,sha256=vAb81ii4fdYT6RT3MznMylC16cD5WRRt0LMl3qZTPmg,36734
10
+ bloggy-0.1.43.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
11
+ bloggy-0.1.43.dist-info/entry_points.txt,sha256=CNKjPiT6yMMEPbeyHXsiN0xHMwBqSo-kO3J5ClISDW4,43
12
+ bloggy-0.1.43.dist-info/top_level.txt,sha256=YjR92iFE4BhzWG-Hg2l55N0xUNv5207y-daHjWja1aI,7
13
+ bloggy-0.1.43.dist-info/RECORD,,
@@ -1,13 +0,0 @@
1
- bloggy/__init__.py,sha256=1FQ-FM_xw3ELuejf_b-fZEvfOjs9n67BEc5jrFQOViU,159
2
- bloggy/build.py,sha256=fnRpaDURYCM_8naCeX8yce-ZkHmNIw_jQ2KspiOYWFQ,23671
3
- bloggy/config.py,sha256=6NhHD45KnMJiKXcpdSbZgSBq8W3sFik5HAEuqC3y8vo,4229
4
- bloggy/core.py,sha256=-oISboMzgCYwwsEpbSDkSrt-d67LsipssbrDv27NKWU,70886
5
- bloggy/main.py,sha256=lvmuyehxyNEHDJPSng442nddvTcok_lavgOAvhvlPN8,3703
6
- bloggy/static/scripts.js,sha256=4GQjB_llaK79buiM71Tu-eNd1yJNwr_gb8mJSIB1aDo,21892
7
- bloggy/static/sidenote.css,sha256=11XFyPV90fL4rzXfGHgjgOegBvKDqp-d3IWgiOwRVQI,1046
8
- bloggy-0.1.40.dist-info/licenses/LICENSE,sha256=xV8xoN4VOL0uw9X8RSs2IMuD_Ss_a9yAbtGNeBWZwnw,11337
9
- bloggy-0.1.40.dist-info/METADATA,sha256=EgGwdrhz5om3FrLXaoIQ4Cxu-haOsJiKkYfnp1z_qnI,36734
10
- bloggy-0.1.40.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
11
- bloggy-0.1.40.dist-info/entry_points.txt,sha256=CNKjPiT6yMMEPbeyHXsiN0xHMwBqSo-kO3J5ClISDW4,43
12
- bloggy-0.1.40.dist-info/top_level.txt,sha256=YjR92iFE4BhzWG-Hg2l55N0xUNv5207y-daHjWja1aI,7
13
- bloggy-0.1.40.dist-info/RECORD,,