OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
HASH      9e9decc8e43a
DATE      2025-05-21
SUBJECT   neovim: simplify language configuration
FILES     22 CHANGED
HASH      9e9decc8e43a
DATE      2025-05-21
SUBJECT   neovim: simplify language
          configuration
FILES     22 CHANGED
 

diff --git a/flake.lock b/flake.lock
index e92d3ce..33effdc 100644
--- a/flake.lock
+++ b/flake.lock
@@ -407,11 +407,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1747439237,
-        "narHash": "sha256-5rCGrnkglKKj4cav1U3HC+SIUNJh08pqOK4spQv9RjA=",
+        "lastModified": 1747793476,
+        "narHash": "sha256-2qAOSixSrbb9l6MI+SI4zGineOzDcc2dgOOFK9Dx+IY=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "ae755329092c87369b9e9a1510a8cf1ce2b1c708",
+        "rev": "2468b2d35512d093aeb04972a1d8c20a0735793f",
         "type": "github"
       },
       "original": {

diff --git a/flake.lock b/flake.lock
index e92d3ce..33effdc 100644
--- a/flake.lock
+++ b/flake.lock
@@ -407,11 +407,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1747439237,
-        "narHash": "sha256-5rCGrnkglKKj4cav
1U3HC+SIUNJh08pqOK4spQv9RjA=",
+        "lastModified": 1747793476,
+        "narHash": "sha256-2qAOSixSrbb9l6MI
+SI4zGineOzDcc2dgOOFK9Dx+IY=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "ae755329092c87369b9e9a1510a
8cf1ce2b1c708",
+        "rev": "2468b2d35512d093aeb04972a1d
8c20a0735793f",
         "type": "github"
       },
       "original": {
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/default.nix b/outputs/pkgs/ook-vi
m/config/plugins/default.nix
index 6c6970f..7395b84 100644
--- a/outputs/pkgs/ook-vim/config/plugins/default.nix
+++ b/outputs/pkgs/ook-vim/config/plugins/default.nix
@@ -8,9 +8,11 @@
     ./projects.nix
     ./utility.nix
     ./ui.nix
-    ./languages
     ./statusline.nix
     ./snippets.nix
     ./notes.nix
+    ./lsp.nix
+    ./treesitter.nix
+    ./languages.nix
   ];
 }

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/default.nix b/outputs/pkgs/ook-vim/conf
ig/plugins/default.nix
index 6c6970f..7395b84 100644
--- a/outputs/pkgs/ook-vim/config/plugins/de
fault.nix
+++ b/outputs/pkgs/ook-vim/config/plugins/de
fault.nix
@@ -8,9 +8,11 @@
     ./projects.nix
     ./utility.nix
     ./ui.nix
-    ./languages
     ./statusline.nix
     ./snippets.nix
     ./notes.nix
+    ./lsp.nix
+    ./treesitter.nix
+    ./languages.nix
   ];
 }
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/languages.nix b/outputs/pkgs/ook-
vim/config/plugins/languages.nix
new file mode 100644
index 0000000..99bbf36
--- /dev/null
+++ b/outputs/pkgs/ook-vim/config/plugins/languages.nix
@@ -0,0 +1,103 @@
+{
+  vim.languages = {
+    astro = {
+      enable = true;
+      extraDiagnostics.enable = true;
+      format.enable = true;
+      lsp.enable = true;
+      treesitter.enable = true;
+    };
+
+    svelte = {
+      enable = true;
+      extraDiagnostics.enable = true;
+      format.enable = true;
+      lsp.enable = true;
+      treesitter.enable = true;
+    };
+
+    markdown = {
+      enable = true;
+      vale.enable = false;
+      ltex.enable = false;
+      extensions = {
+        render-markdown-nvim = {
+          enable = true;
+          setupOpts = {
+            heading = {
+              width = "block";
+              left_pad = 3;
+              right_pad = 4;
+            };
+          };
+        };
+      };
+    };
+
+    html = {
+      enable = true;
+      treesitter = {
+        enable = true;
+        autotagHtml = true;
+      };
+    };
+
+    css = {
+      enable = true;
+      format.enable = true;
+      treesitter.enable = true;
+      lsp.enable = true;
+    };
+
+    bash = {
+      enable = true;
+      format.enable = true;
+      extraDiagnostics.enable = true;
+      treesitter.enable = true;
+      lsp.enable = true;
+    };
+
+    lua = {
+      enable = true;
+      extraDiagnostics.enable = true;
+      lsp = {
+        enable = true;
+        lazydev.enable = false;
+      };
+      treesitter.enable = true;
+      format.enable = true;
+    };
+
+    nix = {
+      enable = true;
+      extraDiagnostics.enable = true;
+      format = {
+        enable = true;
+        type = "alejandra";
+      };
+      lsp = {
+        enable = true;
+        server = "nil";
+      };
+      treesitter.enable = true;
+    };
+
+    ts = {
+      enable = true;
+      extraDiagnostics.enable = true;
+      treesitter.enable = true;
+      lsp.enable = true;
+      format.enable = true;
+      extensions = {
+        ts-error-translator.enable = true;
+      };
+    };
+    go = {
+      enable = true;
+      treesitter.enable = true;
+      format.enable = true;
+      lsp.enable = true;
+      dap.enable = true;
+    };
+  };
+}

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/languages.nix b/outputs/pkgs/ook-vim/co
nfig/plugins/languages.nix
new file mode 100644
index 0000000..99bbf36
--- /dev/null
+++ b/outputs/pkgs/ook-vim/config/plugins/la
nguages.nix
@@ -0,0 +1,103 @@
+{
+  vim.languages = {
+    astro = {
+      enable = true;
+      extraDiagnostics.enable = true;
+      format.enable = true;
+      lsp.enable = true;
+      treesitter.enable = true;
+    };
+
+    svelte = {
+      enable = true;
+      extraDiagnostics.enable = true;
+      format.enable = true;
+      lsp.enable = true;
+      treesitter.enable = true;
+    };
+
+    markdown = {
+      enable = true;
+      vale.enable = false;
+      ltex.enable = false;
+      extensions = {
+        render-markdown-nvim = {
+          enable = true;
+          setupOpts = {
+            heading = {
+              width = "block";
+              left_pad = 3;
+              right_pad = 4;
+            };
+          };
+        };
+      };
+    };
+
+    html = {
+      enable = true;
+      treesitter = {
+        enable = true;
+        autotagHtml = true;
+      };
+    };
+
+    css = {
+      enable = true;
+      format.enable = true;
+      treesitter.enable = true;
+      lsp.enable = true;
+    };
+
+    bash = {
+      enable = true;
+      format.enable = true;
+      extraDiagnostics.enable = true;
+      treesitter.enable = true;
+      lsp.enable = true;
+    };
+
+    lua = {
+      enable = true;
+      extraDiagnostics.enable = true;
+      lsp = {
+        enable = true;
+        lazydev.enable = false;
+      };
+      treesitter.enable = true;
+      format.enable = true;
+    };
+
+    nix = {
+      enable = true;
+      extraDiagnostics.enable = true;
+      format = {
+        enable = true;
+        type = "alejandra";
+      };
+      lsp = {
+        enable = true;
+        server = "nil";
+      };
+      treesitter.enable = true;
+    };
+
+    ts = {
+      enable = true;
+      extraDiagnostics.enable = true;
+      treesitter.enable = true;
+      lsp.enable = true;
+      format.enable = true;
+      extensions = {
+        ts-error-translator.enable = true;
+      };
+    };
+    go = {
+      enable = true;
+      treesitter.enable = true;
+      format.enable = true;
+      lsp.enable = true;
+      dap.enable = true;
+    };
+  };
+}
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/languages/bash.nix b/outputs/pkgs
/ook-vim/config/plugins/languages/bash.nix
deleted file mode 100644
index bf157aa..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/languages/bash.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  vim.languages.bash = {
-    enable = true;
-  };
-}

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/languages/bash.nix b/outputs/pkgs/ook-v
im/config/plugins/languages/bash.nix
deleted file mode 100644
index bf157aa..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/la
nguages/bash.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  vim.languages.bash = {
-    enable = true;
-  };
-}
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/languages/css.nix b/outputs/pkgs/
ook-vim/config/plugins/languages/css.nix
deleted file mode 100644
index 4fc2a28..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/languages/css.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  vim.languages.css = {
-    enable = true;
-    format.enable = true;
-  };
-}

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/languages/css.nix b/outputs/pkgs/ook-vi
m/config/plugins/languages/css.nix
deleted file mode 100644
index 4fc2a28..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/la
nguages/css.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  vim.languages.css = {
-    enable = true;
-    format.enable = true;
-  };
-}
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/languages/default.nix b/outputs/p
kgs/ook-vim/config/plugins/languages/default.nix
deleted file mode 100644
index 20099c1..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/languages/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  imports = [
-    ./nix.nix
-    ./lsp.nix
-    ./bash.nix
-    ./treesitter.nix
-    ./html.nix
-    ./ts.nix
-    ./go.nix
-    ./lua.nix
-    ./markdown.nix
-  ];
-
-  vim.languages = {
-    enableTreesitter = true;
-    enableFormat = true;
-    enableExtraDiagnostics = true;
-
-    typst.enable = true;
-  };
-}

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/languages/default.nix b/outputs/pkgs/oo
k-vim/config/plugins/languages/default.nix
deleted file mode 100644
index 20099c1..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/la
nguages/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  imports = [
-    ./nix.nix
-    ./lsp.nix
-    ./bash.nix
-    ./treesitter.nix
-    ./html.nix
-    ./ts.nix
-    ./go.nix
-    ./lua.nix
-    ./markdown.nix
-  ];
-
-  vim.languages = {
-    enableTreesitter = true;
-    enableFormat = true;
-    enableExtraDiagnostics = true;
-
-    typst.enable = true;
-  };
-}
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/languages/go.nix b/outputs/pkgs/o
ok-vim/config/plugins/languages/go.nix
deleted file mode 100644
index e208103..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/languages/go.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  vim.languages.go = {
-    enable = true;
-  };
-}

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/languages/go.nix b/outputs/pkgs/ook-vim
/config/plugins/languages/go.nix
deleted file mode 100644
index e208103..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/la
nguages/go.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  vim.languages.go = {
-    enable = true;
-  };
-}
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/languages/html.nix b/outputs/pkgs
/ook-vim/config/plugins/languages/html.nix
deleted file mode 100644
index 35dad9b..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/languages/html.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  vim.languages.html = {
-    enable = true;
-  };
-}

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/languages/html.nix b/outputs/pkgs/ook-v
im/config/plugins/languages/html.nix
deleted file mode 100644
index 35dad9b..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/la
nguages/html.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  vim.languages.html = {
-    enable = true;
-  };
-}
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/languages/lua.nix b/outputs/pkgs/
ook-vim/config/plugins/languages/lua.nix
deleted file mode 100644
index c294207..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/languages/lua.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  vim.languages.lua = {
-    enable = true;
-  };
-}

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/languages/lua.nix b/outputs/pkgs/ook-vi
m/config/plugins/languages/lua.nix
deleted file mode 100644
index c294207..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/la
nguages/lua.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  vim.languages.lua = {
-    enable = true;
-  };
-}
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/languages/markdown.nix b/outputs/
pkgs/ook-vim/config/plugins/languages/markdown.nix
deleted file mode 100644
index df7b1e1..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/languages/markdown.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  vim = {
-    languages.markdown = {
-      enable = true;
-      vale.enable = false;
-      ltex.enable = false;
-      extensions = {
-        render-markdown-nvim = {
-          enable = true;
-          setupOpts = {
-            heading = {
-              width = "block";
-              left_pad = 3;
-              right_pad = 4;
-            };
-          };
-        };
-      };
-    };
-  };
-}

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/languages/markdown.nix b/outputs/pkgs/o
ok-vim/config/plugins/languages/markdown.nix
deleted file mode 100644
index df7b1e1..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/la
nguages/markdown.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  vim = {
-    languages.markdown = {
-      enable = true;
-      vale.enable = false;
-      ltex.enable = false;
-      extensions = {
-        render-markdown-nvim = {
-          enable = true;
-          setupOpts = {
-            heading = {
-              width = "block";
-              left_pad = 3;
-              right_pad = 4;
-            };
-          };
-        };
-      };
-    };
-  };
-}
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/languages/nix.nix b/outputs/pkgs/
ook-vim/config/plugins/languages/nix.nix
deleted file mode 100644
index e5ca2b1..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/languages/nix.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  vim.languages.nix = {
-    enable = true;
-  };
-}

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/languages/nix.nix b/outputs/pkgs/ook-vi
m/config/plugins/languages/nix.nix
deleted file mode 100644
index e5ca2b1..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/la
nguages/nix.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  vim.languages.nix = {
-    enable = true;
-  };
-}
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/languages/ts.nix b/outputs/pkgs/o
ok-vim/config/plugins/languages/ts.nix
deleted file mode 100644
index 45e775f..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/languages/ts.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  vim.languages.ts = {
-    enable = true;
-  };
-}

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/languages/ts.nix b/outputs/pkgs/ook-vim
/config/plugins/languages/ts.nix
deleted file mode 100644
index 45e775f..0000000
--- a/outputs/pkgs/ook-vim/config/plugins/la
nguages/ts.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  vim.languages.ts = {
-    enable = true;
-  };
-}
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/languages/lsp.nix b/outputs/pkgs/
ook-vim/config/plugins/lsp.nix
similarity index 81%
rename from outputs/pkgs/ook-vim/config/plugins/languages/lsp.nix
rename to outputs/pkgs/ook-vim/config/plugins/lsp.nix
index c38909f..2c8d9c2 100644
--- a/outputs/pkgs/ook-vim/config/plugins/languages/lsp.nix
+++ b/outputs/pkgs/ook-vim/config/plugins/lsp.nix
@@ -3,7 +3,7 @@
     enable = true;
     formatOnSave = true;
     lspkind.enable = true;
-    trouble = {enable = true;};
+    trouble.enable = true;
     null-ls = {
       enable = true;
     };

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/languages/lsp.nix b/outputs/pkgs/ook-vi
m/config/plugins/lsp.nix
similarity index 81%
rename from outputs/pkgs/ook-vim/config/plug
ins/languages/lsp.nix
rename to outputs/pkgs/ook-vim/config/plugin
s/lsp.nix
index c38909f..2c8d9c2 100644
--- a/outputs/pkgs/ook-vim/config/plugins/la
nguages/lsp.nix
+++ b/outputs/pkgs/ook-vim/config/plugins/ls
p.nix
@@ -3,7 +3,7 @@
     enable = true;
     formatOnSave = true;
     lspkind.enable = true;
-    trouble = {enable = true;};
+    trouble.enable = true;
     null-ls = {
       enable = true;
     };
 

diff --git a/outputs/pkgs/ook-vim/config/plugins/languages/treesitter.nix b/output
s/pkgs/ook-vim/config/plugins/treesitter.nix
similarity index 54%
rename from outputs/pkgs/ook-vim/config/plugins/languages/treesitter.nix
rename to outputs/pkgs/ook-vim/config/plugins/treesitter.nix
index 89c601c..84ceddc 100644
--- a/outputs/pkgs/ook-vim/config/plugins/languages/treesitter.nix
+++ b/outputs/pkgs/ook-vim/config/plugins/treesitter.nix
@@ -2,11 +2,18 @@
   vim.treesitter = {
     enable = true;
     fold = true;
+    addDefaultGrammars = true;
+    autotagHtml = true;
     grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
       kdl
       regex
       fish
       yaml
+      typescript
+      qmljs
     ];
+    highlight.enable = true;
+    indent.enable = true;
+    context.enable = true;
   };
 }

diff --git a/outputs/pkgs/ook-vim/config/plu
gins/languages/treesitter.nix b/outputs/pkgs
/ook-vim/config/plugins/treesitter.nix
similarity index 54%
rename from outputs/pkgs/ook-vim/config/plug
ins/languages/treesitter.nix
rename to outputs/pkgs/ook-vim/config/plugin
s/treesitter.nix
index 89c601c..84ceddc 100644
--- a/outputs/pkgs/ook-vim/config/plugins/la
nguages/treesitter.nix
+++ b/outputs/pkgs/ook-vim/config/plugins/tr
eesitter.nix
@@ -2,11 +2,18 @@
   vim.treesitter = {
     enable = true;
     fold = true;
+    addDefaultGrammars = true;
+    autotagHtml = true;
     grammars = with pkgs.vimPlugins.nvim-tr
eesitter.builtGrammars; [
       kdl
       regex
       fish
       yaml
+      typescript
+      qmljs
     ];
+    highlight.enable = true;
+    indent.enable = true;
+    context.enable = true;
   };
 }
 

diff --git a/outputs/pkgs/website/src/content/notes/nix/chapter1/primative-data-ty
pes.md b/outputs/pkgs/website/src/content/notes/nix/chapter1/primative-data-types.
md
index a5946fe..e803252 100644
--- a/outputs/pkgs/website/src/content/notes/nix/chapter1/primative-data-types.md
+++ b/outputs/pkgs/website/src/content/notes/nix/chapter1/primative-data-types.md
@@ -1,6 +1,6 @@
 +++
 title = "Primitive Data Types"
-template = "notebook/note.html"
+template = "notebook/page.html"
 +++
 
 ## References:

diff --git a/outputs/pkgs/website/src/conten
t/notes/nix/chapter1/primative-data-types.md
 b/outputs/pkgs/website/src/content/notes/ni
x/chapter1/primative-data-types.md
index a5946fe..e803252 100644
--- a/outputs/pkgs/website/src/content/notes
/nix/chapter1/primative-data-types.md
+++ b/outputs/pkgs/website/src/content/notes
/nix/chapter1/primative-data-types.md
@@ -1,6 +1,6 @@
 +++
 title = "Primitive Data Types"
-template = "notebook/note.html"
+template = "notebook/page.html"
 +++
 
 ## References:
 

diff --git a/outputs/pkgs/website/src/content/paper/_index.md b/outputs/pkgs/websi
te/src/content/paper/_index.md
new file mode 100644
index 0000000..37c5a21
--- /dev/null
+++ b/outputs/pkgs/website/src/content/paper/_index.md
@@ -0,0 +1,5 @@
++++
+title = "ooknet"
+description = "ooknet is a personal website, a monorepo, a place to store my note
s; all powered by nix."
+template = "paper.html"
++++

diff --git a/outputs/pkgs/website/src/conten
t/paper/_index.md b/outputs/pkgs/website/src
/content/paper/_index.md
new file mode 100644
index 0000000..37c5a21
--- /dev/null
+++ b/outputs/pkgs/website/src/content/paper
/_index.md
@@ -0,0 +1,5 @@
++++
+title = "ooknet"
+description = "ooknet is a personal website
, a monorepo, a place to store my notes; all
 powered by nix."
+template = "paper.html"
++++
 

diff --git a/outputs/pkgs/website/src/sass/pages/_home.scss b/outputs/pkgs/website
/src/sass/pages/_home.scss
index d740a9d..b974f8d 100644
--- a/outputs/pkgs/website/src/sass/pages/_home.scss
+++ b/outputs/pkgs/website/src/sass/pages/_home.scss
@@ -3,7 +3,7 @@ html {
   scroll-padding-top: $navbar-height;
 }
 .home {
-  margin: 50px;
+  margin: 0px;
   display: flex;
   flex-wrap: wrap;
   align-content: center;
@@ -20,60 +20,112 @@ html {
 }
 .notebook {
   display: flex;
-  flex-direction: column;
-  width: 100vw;
-  margin-top: $navbar-height;
-  min-height: 100vh;
-  padding: 12px;
-
-  .sidebar {
-    width: 100%;
-    display: none;
-    flex-shrink: 0;
-    height: auto;
-  }
+  flex-direction: column; // Stacks .notebook__main-area and .sidebar vertically
+  width: 100%; // Or 100vw if you want full viewport width strictly
+  min-height: 100vh; // Ensures it tries to fill viewport height
+  margin-top: $navbar-height; // Top margin for the whole notebook
+  padding: 0px; // Padding for the whole notebook (children are inside this)
+  box-sizing: border-box; // Good practice with padding and width: 100%
+}
 
-  .content {
-    width: 100%;
-    flex-grow: 1;
-    overflow-y: auto;
-  }
+// Wrapper for binder edge and main content, sits inside .notebook
+.notebook__main-area {
+  display: flex;
+  flex-direction: row;   // Lays out .binder-edge and .content side-by-side
+  flex-grow: 1;          // This area takes up available vertical space within .n
otebook
+  width: 100%;           // Takes full width available within .notebook's padding
+  // min-height: 0;      // Sometimes helpful for nested flex containers to preve
nt them from expanding parent
+}
 
-  &--menu-toggled .sidebar {
-    display: block;
-  }
+// The binder edge itself
+.binder-edge {
+  width: 50px;
+  flex-shrink: 0; // Prevents it from shrinking
+  background-color: var(--clr-mantle);
+  border-right: 1px dashed var(--clr-text);
+
+  --hole-diameter: 10px;
+  --hole-radius: calc(var(--hole-diameter) / 2);
+  --hole-border-width: 1px; // Keep this as the INTENDED border width
+  --hole-full-radius: calc(var(--hole-radius) + var(--hole-border-width));
+
+  // NEW: Define a tiny unit for smoothing, can be less than 1px for subtle effec
t
+  --smooth-unit: 0.3px; // Or 1px, experiment with this value
+
+  --hole-bg-color: var(--clr-mantle);
+  --hole-border-color: var(--clr-text);
+  --hole-spacing: 50px;
+  --hole-offset-top: 40px;
+
+  background-image: radial-gradient(
+    circle at center,
+    var(--hole-bg-color) 0,                                                     /
/ Start of hole fill
+    var(--hole-bg-color) var(--hole-radius),                                    /
/ End of hole fill (sharp stop)
+
+    // Transition from hole-fill to hole-border
+    var(--hole-border-color) calc(var(--hole-radius) + var(--smooth-unit)),      
// Start of hole border, slightly offset
+
+    var(--hole-border-color) var(--hole-full-radius),                           /
/ End of hole border (sharp stop)
+
+    // Transition from hole-border to transparent
+    transparent calc(var(--hole-full-radius) + var(--smooth-unit))              /
/ Start of transparency, slightly offset
+  );
+
+  background-repeat: repeat-y;
+  // The background-size should still be based on the *visual* size you want
+  background-size: 100% var(--hole-spacing);
+  background-position: 50% var(--hole-offset-top);
+
+  // CRITICAL: Ensure image-rendering is not pixelated
+}  
+
+// Main content area, sits next to binder-edge
+// Targets .content when it's a direct child of .notebook__main-area
+.notebook__main-area > .content {
+  flex-grow: 1;     // Takes up remaining horizontal space
+  overflow-y: auto; // Allows content to scroll vertically if it overflows
+  min-width: 0;     // Important for flex items to prevent issues with long conte
nt
+  padding: 20px;    // Inner padding for the text content block (adjust as needed
)
+                    // This is separate from .notebook's overall padding
 }
 
+// Sidebar styles (assuming sidebar is a direct child of .notebook)
+.notebook .sidebar {
+  width: 100%; // Or a fixed width like 250px if it's a vertical sidebar
+  display: none; // Hidden by default
+  flex-shrink: 0;
+  // height: auto; // Not usually needed if content determines height
+}
+
+// Toggle sidebar visibility (if .notebook--menu-toggled is on the .notebook div)
+.notebook--menu-toggled .sidebar {
+  display: block;
+}
+
+// --- Responsive Adjustments ---
 @media (min-width: 800px) {
   .notebook {
-    overflow: hidden;
-    .sidebar {
-      position: fixed;
-      display: flex;
-      top: calc($navbar-height + 10px);
-      left: 10px;
-      align-self: start;
-      height: calc(100vh - 70px);
-      width: $sidebar-width;
-      overflow-y: auto;
-    }
+    // overflow: hidden; // Only if you specifically need to clip content at .not
ebook level
 
-    .content {
-      flex: 1;
-      margin-left: calc($sidebar-width + 10px);
-      padding: $spacer 10%;
-      max-width: calc(100% - $sidebar-width);
-      align-items: center;
+    // Adjust .content padding on larger screens
+    // Original selector: .notebook .content
+    // New more specific selector:
+    .notebook__main-area > .content {
+      padding: $spacer 10%; // Your desired padding for larger screens
     }
 
-    &--menu-toggled {
-      .content {
-        margin-left: 0;
-        max-width: 100%;
-        padding: 10px 10%;
+    // Styles for when menu is toggled on larger screens
+    &--menu-toggled { // This means .notebook.notebook--menu-toggled
+      // Original selector: .notebook--menu-toggled .content
+      .notebook__main-area > .content {
+        margin-left: 0; // Adjust if sidebar normally pushes content
+        max-width: 100%; // Ensure it can take full width
+        padding: 10px 10%; // Specific padding for this state
       }
+
+      // Original selector: .notebook--menu-toggled .sidebar
       .sidebar {
-        display: none;
+        display: none; // Hide sidebar if that's the intent on large screens when
 toggled
       }
     }
   }

diff --git a/outputs/pkgs/website/src/sass/p
ages/_home.scss b/outputs/pkgs/website/src/s
ass/pages/_home.scss
index d740a9d..b974f8d 100644
--- a/outputs/pkgs/website/src/sass/pages/_h
ome.scss
+++ b/outputs/pkgs/website/src/sass/pages/_h
ome.scss
@@ -3,7 +3,7 @@ html {
   scroll-padding-top: $navbar-height;
 }
 .home {
-  margin: 50px;
+  margin: 0px;
   display: flex;
   flex-wrap: wrap;
   align-content: center;
@@ -20,60 +20,112 @@ html {
 }
 .notebook {
   display: flex;
-  flex-direction: column;
-  width: 100vw;
-  margin-top: $navbar-height;
-  min-height: 100vh;
-  padding: 12px;
-
-  .sidebar {
-    width: 100%;
-    display: none;
-    flex-shrink: 0;
-    height: auto;
-  }
+  flex-direction: column; // Stacks .notebo
ok__main-area and .sidebar vertically
+  width: 100%; // Or 100vw if you want full
 viewport width strictly
+  min-height: 100vh; // Ensures it tries to
 fill viewport height
+  margin-top: $navbar-height; // Top margin
 for the whole notebook
+  padding: 0px; // Padding for the whole no
tebook (children are inside this)
+  box-sizing: border-box; // Good practice 
with padding and width: 100%
+}
 
-  .content {
-    width: 100%;
-    flex-grow: 1;
-    overflow-y: auto;
-  }
+// Wrapper for binder edge and main content
, sits inside .notebook
+.notebook__main-area {
+  display: flex;
+  flex-direction: row;   // Lays out .binde
r-edge and .content side-by-side
+  flex-grow: 1;          // This area takes
 up available vertical space within .noteboo
k
+  width: 100%;           // Takes full widt
h available within .notebook's padding
+  // min-height: 0;      // Sometimes helpf
ul for nested flex containers to prevent the
m from expanding parent
+}
 
-  &--menu-toggled .sidebar {
-    display: block;
-  }
+// The binder edge itself
+.binder-edge {
+  width: 50px;
+  flex-shrink: 0; // Prevents it from shrin
king
+  background-color: var(--clr-mantle);
+  border-right: 1px dashed var(--clr-text);
+
+  --hole-diameter: 10px;
+  --hole-radius: calc(var(--hole-diameter) 
/ 2);
+  --hole-border-width: 1px; // Keep this as
 the INTENDED border width
+  --hole-full-radius: calc(var(--hole-radiu
s) + var(--hole-border-width));
+
+  // NEW: Define a tiny unit for smoothing,
 can be less than 1px for subtle effect
+  --smooth-unit: 0.3px; // Or 1px, experime
nt with this value
+
+  --hole-bg-color: var(--clr-mantle);
+  --hole-border-color: var(--clr-text);
+  --hole-spacing: 50px;
+  --hole-offset-top: 40px;
+
+  background-image: radial-gradient(
+    circle at center,
+    var(--hole-bg-color) 0,                
                                     // Star
t of hole fill
+    var(--hole-bg-color) var(--hole-radius)
,                                    // End 
of hole fill (sharp stop)
+
+    // Transition from hole-fill to hole-bo
rder
+    var(--hole-border-color) calc(var(--hol
e-radius) + var(--smooth-unit)),      // Sta
rt of hole border, slightly offset
+
+    var(--hole-border-color) var(--hole-ful
l-radius),                           // End 
of hole border (sharp stop)
+
+    // Transition from hole-border to trans
parent
+    transparent calc(var(--hole-full-radius
) + var(--smooth-unit))              // Star
t of transparency, slightly offset
+  );
+
+  background-repeat: repeat-y;
+  // The background-size should still be ba
sed on the *visual* size you want
+  background-size: 100% var(--hole-spacing)
;
+  background-position: 50% var(--hole-offse
t-top);
+
+  // CRITICAL: Ensure image-rendering is no
t pixelated
+}  
+
+// Main content area, sits next to binder-e
dge
+// Targets .content when it's a direct chil
d of .notebook__main-area
+.notebook__main-area > .content {
+  flex-grow: 1;     // Takes up remaining h
orizontal space
+  overflow-y: auto; // Allows content to sc
roll vertically if it overflows
+  min-width: 0;     // Important for flex i
tems to prevent issues with long content
+  padding: 20px;    // Inner padding for th
e text content block (adjust as needed)
+                    // This is separate fro
m .notebook's overall padding
 }
 
+// Sidebar styles (assuming sidebar is a di
rect child of .notebook)
+.notebook .sidebar {
+  width: 100%; // Or a fixed width like 250
px if it's a vertical sidebar
+  display: none; // Hidden by default
+  flex-shrink: 0;
+  // height: auto; // Not usually needed if
 content determines height
+}
+
+// Toggle sidebar visibility (if .notebook-
-menu-toggled is on the .notebook div)
+.notebook--menu-toggled .sidebar {
+  display: block;
+}
+
+// --- Responsive Adjustments ---
 @media (min-width: 800px) {
   .notebook {
-    overflow: hidden;
-    .sidebar {
-      position: fixed;
-      display: flex;
-      top: calc($navbar-height + 10px);
-      left: 10px;
-      align-self: start;
-      height: calc(100vh - 70px);
-      width: $sidebar-width;
-      overflow-y: auto;
-    }
+    // overflow: hidden; // Only if you spe
cifically need to clip content at .notebook 
level
 
-    .content {
-      flex: 1;
-      margin-left: calc($sidebar-width + 10
px);
-      padding: $spacer 10%;
-      max-width: calc(100% - $sidebar-width
);
-      align-items: center;
+    // Adjust .content padding on larger sc
reens
+    // Original selector: .notebook .conten
t
+    // New more specific selector:
+    .notebook__main-area > .content {
+      padding: $spacer 10%; // Your desired
 padding for larger screens
     }
 
-    &--menu-toggled {
-      .content {
-        margin-left: 0;
-        max-width: 100%;
-        padding: 10px 10%;
+    // Styles for when menu is toggled on l
arger screens
+    &--menu-toggled { // This means .notebo
ok.notebook--menu-toggled
+      // Original selector: .notebook--menu
-toggled .content
+      .notebook__main-area > .content {
+        margin-left: 0; // Adjust if sideba
r normally pushes content
+        max-width: 100%; // Ensure it can t
ake full width
+        padding: 10px 10%; // Specific padd
ing for this state
       }
+
+      // Original selector: .notebook--menu
-toggled .sidebar
       .sidebar {
-        display: none;
+        display: none; // Hide sidebar if t
hat's the intent on large screens when toggl
ed
       }
     }
   }
 

diff --git a/outputs/pkgs/website/src/sass/pages/_notebook.scss b/outputs/pkgs/web
site/src/sass/pages/_notebook.scss
index b1dce21..ae8c2bd 100644
--- a/outputs/pkgs/website/src/sass/pages/_notebook.scss
+++ b/outputs/pkgs/website/src/sass/pages/_notebook.scss
@@ -2,63 +2,4 @@
 html {
   scroll-padding-top: $navbar-height;
 }
-.notebook {
-  display: flex;
-  flex-direction: column;
-  width: 100vw;
-  margin-top: $navbar-height;
-  min-height: 100vh;
-  padding: 12px;
 
-  .sidebar {
-    width: 100%;
-    display: none;
-    flex-shrink: 0;
-    height: auto;
-  }
-
-  .content {
-    width: 100%;
-    flex-grow: 1;
-    overflow-y: auto;
-  }
-
-  &--menu-toggled .sidebar {
-    display: block;
-  }
-}
-
-@media (min-width: 800px) {
-  .notebook {
-    overflow: hidden;
-    .sidebar {
-      position: fixed;
-      display: flex;
-      top: calc($navbar-height + 10px);
-      left: 10px;
-      align-self: start;
-      height: calc(100vh - 70px);
-      width: $sidebar-width;
-      overflow-y: auto;
-    }
-
-    .content {
-      flex: 1;
-      margin-left: calc($sidebar-width + 10px);
-      padding: $spacer 10%;
-      max-width: calc(100% - $sidebar-width);
-      align-items: center;
-    }
-
-    &--menu-toggled {
-      .content {
-        margin-left: 0;
-        max-width: 100%;
-        padding: 10px 10%;
-      }
-      .sidebar {
-        display: none;
-      }
-    }
-  }
-}

diff --git a/outputs/pkgs/website/src/sass/p
ages/_notebook.scss b/outputs/pkgs/website/s
rc/sass/pages/_notebook.scss
index b1dce21..ae8c2bd 100644
--- a/outputs/pkgs/website/src/sass/pages/_n
otebook.scss
+++ b/outputs/pkgs/website/src/sass/pages/_n
otebook.scss
@@ -2,63 +2,4 @@
 html {
   scroll-padding-top: $navbar-height;
 }
-.notebook {
-  display: flex;
-  flex-direction: column;
-  width: 100vw;
-  margin-top: $navbar-height;
-  min-height: 100vh;
-  padding: 12px;
 
-  .sidebar {
-    width: 100%;
-    display: none;
-    flex-shrink: 0;
-    height: auto;
-  }
-
-  .content {
-    width: 100%;
-    flex-grow: 1;
-    overflow-y: auto;
-  }
-
-  &--menu-toggled .sidebar {
-    display: block;
-  }
-}
-
-@media (min-width: 800px) {
-  .notebook {
-    overflow: hidden;
-    .sidebar {
-      position: fixed;
-      display: flex;
-      top: calc($navbar-height + 10px);
-      left: 10px;
-      align-self: start;
-      height: calc(100vh - 70px);
-      width: $sidebar-width;
-      overflow-y: auto;
-    }
-
-    .content {
-      flex: 1;
-      margin-left: calc($sidebar-width + 10
px);
-      padding: $spacer 10%;
-      max-width: calc(100% - $sidebar-width
);
-      align-items: center;
-    }
-
-    &--menu-toggled {
-      .content {
-        margin-left: 0;
-        max-width: 100%;
-        padding: 10px 10%;
-      }
-      .sidebar {
-        display: none;
-      }
-    }
-  }
-}
 

diff --git a/outputs/pkgs/website/src/sass/utilities/_screen-width.scss b/outputs/
pkgs/website/src/sass/utilities/_screen-width.scss
index 051d231..e69de29 100644
--- a/outputs/pkgs/website/src/sass/utilities/_screen-width.scss
+++ b/outputs/pkgs/website/src/sass/utilities/_screen-width.scss
@@ -1,13 +0,0 @@
-@mixin min-screen($min-width: $body-width) {
-  @media screen and (min-width: $min-width) {
-    @content;
-  }
-}
-
-@mixin max-screen($max-width: $body-width) {
-  @media screen and (max-width: $max-width) {
-    @content;
-  }
-}
-
-$sidebar-width: 300px;

diff --git a/outputs/pkgs/website/src/sass/u
tilities/_screen-width.scss b/outputs/pkgs/w
ebsite/src/sass/utilities/_screen-width.scss
index 051d231..e69de29 100644
--- a/outputs/pkgs/website/src/sass/utilitie
s/_screen-width.scss
+++ b/outputs/pkgs/website/src/sass/utilitie
s/_screen-width.scss
@@ -1,13 +0,0 @@
-@mixin min-screen($min-width: $body-width) 
{
-  @media screen and (min-width: $min-width)
 {
-    @content;
-  }
-}
-
-@mixin max-screen($max-width: $body-width) 
{
-  @media screen and (max-width: $max-width)
 {
-    @content;
-  }
-}
-
-$sidebar-width: 300px;
 

diff --git a/outputs/pkgs/website/src/templates/notebook/page.html b/outputs/pkgs/
website/src/templates/notebook/page.html
new file mode 100644
index 0000000..f310e38
--- /dev/null
+++ b/outputs/pkgs/website/src/templates/notebook/page.html
@@ -0,0 +1,14 @@
+{% extends "base.html" %} 
+{% block notebook %}
+<div class="notebook">
+  <div class="notebook__main-area">
+    <div class="binder-edge"></div>
+    <main class="content">
+      {% block content %}
+      <h1 class="content__title">{{ page.title | safe }}</h1>
+      {{ page.content | safe }} {% endblock content %}
+    </main>
+  </div>
+</div>
+{% endblock notebook %}
+

diff --git a/outputs/pkgs/website/src/templa
tes/notebook/page.html b/outputs/pkgs/websit
e/src/templates/notebook/page.html
new file mode 100644
index 0000000..f310e38
--- /dev/null
+++ b/outputs/pkgs/website/src/templates/not
ebook/page.html
@@ -0,0 +1,14 @@
+{% extends "base.html" %} 
+{% block notebook %}
+<div class="notebook">
+  <div class="notebook__main-area">
+    <div class="binder-edge"></div>
+    <main class="content">
+      {% block content %}
+      <h1 class="content__title">{{ page.ti
tle | safe }}</h1>
+      {{ page.content | safe }} {% endblock
 content %}
+    </main>
+  </div>
+</div>
+{% endblock notebook %}
+
 

diff --git a/outputs/pkgs/website/src/templates/paper-test.html b/outputs/pkgs/web
site/src/templates/paper-test.html
new file mode 100644
index 0000000..c330c1f
--- /dev/null
+++ b/outputs/pkgs/website/src/templates/paper-test.html
@@ -0,0 +1,44 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    {%- include "partials/head.html" %}
+  </head>
+
+  {% block body %} {% set page_class="home" %} {% endblock body %}
+  <body class="{{ page_class }}">
+    <header class="navbar-wrapper">
+      <nav class="navbar">
+        <div>{% block navbar_extras %} <a class="navbar__link"href="{{ config.bas
e_url }}"> ooknet </a>{% endblock navbar_extras %}</div>
+      <!--<ul class="navbar__tab">-->
+      <!--  <li class="navbar__tab-item">-->
+      <!--    <a class="navbar__link navbar__link--home" href="{{ config.base_url
 }}"-->
+      <!--      >home</a-->
+      <!--    >-->
+      <!--  </li>-->
+        <!--<li class="navbar__tab-item">-->
+        <!--  <a-->
+        <!--    class="navbar__link navbar__link--notes"-->
+        <!--    href="{{ get_url(path='notes') }}"-->
+        <!--    >notes</a-->
+        <!--  >-->
+        <!--</li>-->
+        <!--<li class="navbar__tab-item">-->
+        <!--  <a class="navbar__link navbar__link--contact" href="#">contact</a>-
->
+        <!--</li>-->
+      <!--</ul>-->
+      <label class="switch">
+        <input class="switch__input" type="checkbox" name="theme-switch" />
+        <span class="icon icon--medium icon__moon switch__icon"></span>
+        <span class="icon icon--medium icon__sun switch__icon"></span>
+      </label>
+    </nav>
+  </header>
+    {% block home %} {% endblock home %}
+    {% block notebook %}{% endblock notebook %}
+    {% block js_body %}
+    {% block extrajs %} {% endblock extrajs %}
+      <script type="text/javascript" src="{{ get_url(path="theme_switch.js") | sa
fe }}"></script>
+      <script type="text/javascript" src="{{ get_url(path="callouts.js") | safe }
}"></script>
+    {% endblock js_body %}
+  </body>
+</html>

diff --git a/outputs/pkgs/website/src/templa
tes/paper-test.html b/outputs/pkgs/website/s
rc/templates/paper-test.html
new file mode 100644
index 0000000..c330c1f
--- /dev/null
+++ b/outputs/pkgs/website/src/templates/pap
er-test.html
@@ -0,0 +1,44 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    {%- include "partials/head.html" %}
+  </head>
+
+  {% block body %} {% set page_class="home"
 %} {% endblock body %}
+  <body class="{{ page_class }}">
+    <header class="navbar-wrapper">
+      <nav class="navbar">
+        <div>{% block navbar_extras %} <a c
lass="navbar__link"href="{{ config.base_url 
}}"> ooknet </a>{% endblock navbar_extras %}
</div>
+      <!--<ul class="navbar__tab">-->
+      <!--  <li class="navbar__tab-item">--
>
+      <!--    <a class="navbar__link navbar
__link--home" href="{{ config.base_url }}"--
>
+      <!--      >home</a-->
+      <!--    >-->
+      <!--  </li>-->
+        <!--<li class="navbar__tab-item">--
>
+        <!--  <a-->
+        <!--    class="navbar__link navbar_
_link--notes"-->
+        <!--    href="{{ get_url(path='note
s') }}"-->
+        <!--    >notes</a-->
+        <!--  >-->
+        <!--</li>-->
+        <!--<li class="navbar__tab-item">--
>
+        <!--  <a class="navbar__link navbar
__link--contact" href="#">contact</a>-->
+        <!--</li>-->
+      <!--</ul>-->
+      <label class="switch">
+        <input class="switch__input" type="
checkbox" name="theme-switch" />
+        <span class="icon icon--medium icon
__moon switch__icon"></span>
+        <span class="icon icon--medium icon
__sun switch__icon"></span>
+      </label>
+    </nav>
+  </header>
+    {% block home %} {% endblock home %}
+    {% block notebook %}{% endblock noteboo
k %}
+    {% block js_body %}
+    {% block extrajs %} {% endblock extrajs
 %}
+      <script type="text/javascript" src="{
{ get_url(path="theme_switch.js") | safe }}"
></script>
+      <script type="text/javascript" src="{
{ get_url(path="callouts.js") | safe }}"></s
cript>
+    {% endblock js_body %}
+  </body>
+</html>
 

diff --git a/outputs/pkgs/website/src/templates/paper.html b/outputs/pkgs/website/
src/templates/paper.html
new file mode 100644
index 0000000..9181592
--- /dev/null
+++ b/outputs/pkgs/website/src/templates/paper.html
@@ -0,0 +1,10 @@
+{% extends "paper-test.html" %}
+{% block home %}
+<section>
+</section>
+
+<pre class="home--ascii">
+</pre>
+
+<div class="home-content"> {{ section.content | safe }} </div>
+{% endblock home %}

diff --git a/outputs/pkgs/website/src/templa
tes/paper.html b/outputs/pkgs/website/src/te
mplates/paper.html
new file mode 100644
index 0000000..9181592
--- /dev/null
+++ b/outputs/pkgs/website/src/templates/pap
er.html
@@ -0,0 +1,10 @@
+{% extends "paper-test.html" %}
+{% block home %}
+<section>
+</section>
+
+<pre class="home--ascii">
+</pre>
+
+<div class="home-content"> {{ section.conte
nt | safe }} </div>
+{% endblock home %}
 
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET