@knowcode/doc-builder 1.9.29 → 1.9.31

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 (197) hide show
  1. package/assets/js/main.js +7 -0
  2. package/lib/core-builder.js +18 -1
  3. package/package.json +12 -2
  4. package/.claude/settings.local.json +0 -56
  5. package/CACHE-BUSTING-GUIDE.md +0 -82
  6. package/CLAUDE.md +0 -86
  7. package/CONTRIBUTING.md +0 -148
  8. package/GITHUB_SETUP.md +0 -203
  9. package/RELEASE-NOTES-1.7.5.md +0 -64
  10. package/Screenshot 2025-07-22 at 19.51.21.png +0 -0
  11. package/Screenshot 2025-07-26 at 17.06.49.png +0 -0
  12. package/add-user-clive.sql +0 -35
  13. package/add-user-lindsay-fixed.sql +0 -85
  14. package/add-user-lindsay.sql +0 -68
  15. package/add-user-pmorgan.sql +0 -35
  16. package/add-user-robbie.sql +0 -35
  17. package/add-wru-users.sql +0 -105
  18. package/debug-login.sql +0 -30
  19. package/doc-builder.config.js +0 -126
  20. package/doc-builder.config.js.backup.1753793768283 +0 -47
  21. package/doc-builder.config.js.backup.1753803964423 +0 -114
  22. package/doc-builder.config.js.backup.1753945707032 +0 -115
  23. package/doc-builder.config.js.backup.1754059241330 +0 -115
  24. package/doc-builder.config.js.backup.1754119567787 +0 -123
  25. package/doc-builder.config.js.backup.1754120048862 +0 -124
  26. package/doc-builder.config.js.backup.1754120529913 +0 -124
  27. package/doc-builder.config.js.backup.1754218469785 +0 -124
  28. package/doc-builder.config.js.backup.1754384764054 +0 -124
  29. package/doc-builder.config.js.backup.1754567425847 +0 -124
  30. package/doc-builder.config.js.backup.1754568137859 +0 -126
  31. package/doc-builder.config.js.backup.1754569388252 +0 -126
  32. package/doc-builder.config.js.backup.1754576694123 +0 -126
  33. package/doc-builder.config.js.backup.1755031374829 +0 -126
  34. package/doc-builder.config.js.backup.1755034500990 +0 -126
  35. package/grant-access.sql +0 -15
  36. package/html/11.png +0 -0
  37. package/html/404.html +0 -115
  38. package/html/README.html +0 -522
  39. package/html/Screenshot 2025-08-12 at 21.35.07.png +0 -0
  40. package/html/about-doc-builder.html +0 -491
  41. package/html/auth.js +0 -157
  42. package/html/claude-workflow-guide.html +0 -525
  43. package/html/css/notion-style.css +0 -2502
  44. package/html/documentation-index.html +0 -471
  45. package/html/guides/authentication-default-change.html +0 -370
  46. package/html/guides/authentication-guide.html +0 -509
  47. package/html/guides/cache-control-anti-pattern.html +0 -361
  48. package/html/guides/claude-workflow-guide.html +0 -1074
  49. package/html/guides/configuration-guide.html +0 -472
  50. package/html/guides/document-standards.html +0 -518
  51. package/html/guides/documentation-standards.html +0 -694
  52. package/html/guides/html-embedding-guide.html +0 -461
  53. package/html/guides/image-modal-guide.html +0 -515
  54. package/html/guides/next-steps-walkthrough.html +0 -638
  55. package/html/guides/phosphor-icons-guide.html +0 -584
  56. package/html/guides/private-directory-authentication-troubleshooting.html +0 -555
  57. package/html/guides/private-directory-authentication.html +0 -541
  58. package/html/guides/public-site-deployment.html +0 -431
  59. package/html/guides/search-engine-verification-guide.html +0 -542
  60. package/html/guides/seo-guide.html +0 -661
  61. package/html/guides/seo-optimization-guide.html +0 -887
  62. package/html/guides/supabase-auth-implementation-plan.html +0 -543
  63. package/html/guides/supabase-auth-integration-plan.html +0 -671
  64. package/html/guides/supabase-auth-setup-guide.html +0 -498
  65. package/html/guides/supabase-authentication-complete-guide.html +0 -866
  66. package/html/guides/troubleshooting-guide.html +0 -633
  67. package/html/guides/vercel-deployment-auth-setup.html +0 -337
  68. package/html/guides/windows-setup-guide.html +0 -859
  69. package/html/image-modal-test.html +0 -318
  70. package/html/index.html +0 -522
  71. package/html/js/auth.js +0 -157
  72. package/html/js/main.js +0 -1747
  73. package/html/launch/README.html +0 -297
  74. package/html/launch/bubble-plugin-specification.html +0 -933
  75. package/html/launch/go-to-market-strategy.html +0 -663
  76. package/html/launch/launch-announcements.html +0 -593
  77. package/html/login.html +0 -102
  78. package/html/logout.html +0 -18
  79. package/html/private/cache-control-anti-pattern.html +0 -429
  80. package/html/private/launch/README.html +0 -371
  81. package/html/private/launch/auth-cleanup-summary.html +0 -361
  82. package/html/private/launch/bubble-plugin-specification.html +0 -1007
  83. package/html/private/launch/go-to-market-strategy.html +0 -737
  84. package/html/private/launch/launch-announcements.html +0 -667
  85. package/html/private/launch/vercel-deployment-auth-setup.html +0 -417
  86. package/html/private/next-steps-walkthrough.html +0 -679
  87. package/html/private/supabase-auth-implementation-completed.html +0 -454
  88. package/html/private/supabase-auth-implementation-plan.html +0 -594
  89. package/html/private/supabase-auth-integration-plan.html +0 -704
  90. package/html/private/supabase-auth-setup-guide.html +0 -555
  91. package/html/private/test-private-doc.html +0 -302
  92. package/html/private/user-management-tooling.html +0 -601
  93. package/html/prompts/Screenshot 2025-08-02 at 08.49.55.png +0 -0
  94. package/html/prompts/beautiful-documentation-design.html +0 -784
  95. package/html/prompts/markdown-document-standards.html +0 -422
  96. package/html/prompts/project-rename-strategy-sasha-publish.html +0 -530
  97. package/html/robots.txt +0 -9
  98. package/html/sitemap.xml +0 -357
  99. package/html/test-questions/how-does-it-work%3F.html +0 -294
  100. package/html/test-questions/step-1%3A%20getting-started.html +0 -289
  101. package/html/test-questions/what-is-the-purpose.html +0 -293
  102. package/html/test-status.html +0 -281
  103. package/html/vercel-cli-setup-guide.html +0 -495
  104. package/html/vercel-first-time-setup-guide.html +0 -454
  105. package/html/vercel.json +0 -29
  106. package/html-static/11.png +0 -0
  107. package/html-static/404.html +0 -115
  108. package/html-static/README.html +0 -599
  109. package/html-static/Screenshot 2025-08-12 at 21.35.07.png +0 -0
  110. package/html-static/about-doc-builder.html +0 -568
  111. package/html-static/css/notion-style.css +0 -2502
  112. package/html-static/documentation-index.html +0 -548
  113. package/html-static/guides/authentication-default-change.html +0 -447
  114. package/html-static/guides/authentication-guide.html +0 -586
  115. package/html-static/guides/claude-workflow-guide.html +0 -1151
  116. package/html-static/guides/configuration-guide.html +0 -549
  117. package/html-static/guides/documentation-standards.html +0 -771
  118. package/html-static/guides/html-embedding-guide.html +0 -538
  119. package/html-static/guides/image-modal-guide.html +0 -592
  120. package/html-static/guides/phosphor-icons-guide.html +0 -661
  121. package/html-static/guides/private-directory-authentication-troubleshooting.html +0 -632
  122. package/html-static/guides/private-directory-authentication.html +0 -618
  123. package/html-static/guides/public-site-deployment.html +0 -508
  124. package/html-static/guides/search-engine-verification-guide.html +0 -619
  125. package/html-static/guides/seo-guide.html +0 -738
  126. package/html-static/guides/seo-optimization-guide.html +0 -964
  127. package/html-static/guides/supabase-authentication-complete-guide.html +0 -943
  128. package/html-static/guides/troubleshooting-guide.html +0 -710
  129. package/html-static/guides/windows-setup-guide.html +0 -936
  130. package/html-static/image-modal-test.html +0 -395
  131. package/html-static/index.html +0 -599
  132. package/html-static/js/main.js +0 -1747
  133. package/html-static/prompts/Screenshot 2025-08-02 at 08.49.55.png +0 -0
  134. package/html-static/prompts/beautiful-documentation-design.html +0 -861
  135. package/html-static/prompts/markdown-document-standards.html +0 -499
  136. package/html-static/prompts/project-rename-strategy-sasha-publish.html +0 -607
  137. package/html-static/robots.txt +0 -5
  138. package/html-static/sitemap.xml +0 -195
  139. package/html-static/test-questions/how-does-it-work%3F.html +0 -371
  140. package/html-static/test-questions/step-1%3A%20getting-started.html +0 -366
  141. package/html-static/test-questions/what-is-the-purpose.html +0 -370
  142. package/html-static/vercel-cli-setup-guide.html +0 -572
  143. package/html-static/vercel-first-time-setup-guide.html +0 -531
  144. package/manage-users.sql +0 -191
  145. package/migrate-to-domain-auth.sql +0 -47
  146. package/package/CACHE-BUSTING-GUIDE.md +0 -82
  147. package/package/CHANGELOG.md +0 -902
  148. package/package/README.md +0 -248
  149. package/package/assets/css/notion-style.css +0 -2211
  150. package/package/assets/js/auth.js +0 -67
  151. package/package/assets/js/main.js +0 -1565
  152. package/package/cli.js +0 -764
  153. package/package/index.js +0 -38
  154. package/package/knowcode-doc-builder-1.3.15.tgz +0 -0
  155. package/package/lib/builder.js +0 -32
  156. package/package/lib/config.js +0 -278
  157. package/package/lib/core-builder.js +0 -957
  158. package/package/lib/deploy.js +0 -497
  159. package/package/lib/dev-server.js +0 -96
  160. package/package/package.json +0 -34
  161. package/package/scripts/npx-runner.js +0 -27
  162. package/package/scripts/setup.js +0 -56
  163. package/package/test-cache-bust.sh +0 -43
  164. package/public-config.js +0 -22
  165. package/public-html/404.html +0 -115
  166. package/public-html/README.html +0 -149
  167. package/public-html/css/notion-style.css +0 -2036
  168. package/public-html/index.html +0 -149
  169. package/public-html/js/auth.js +0 -67
  170. package/public-html/js/main.js +0 -1485
  171. package/quick-test-commands.md +0 -40
  172. package/recordings/Screenshot 2025-07-24 at 18.22.01.png +0 -0
  173. package/recordings/mh-ls-22jul.txt +0 -2305
  174. package/screenshot.png +0 -0
  175. package/scripts/Screenshot 2025-07-23 at 15.39.41.png +0 -0
  176. package/setup-database-v2.sql +0 -53
  177. package/setup-database.sql +0 -41
  178. package/test-auth-config.js +0 -17
  179. package/test-cache-bust.sh +0 -43
  180. package/test-docs/README.md +0 -39
  181. package/test-html/404.html +0 -115
  182. package/test-html/README.html +0 -172
  183. package/test-html/auth.js +0 -97
  184. package/test-html/css/notion-style.css +0 -2036
  185. package/test-html/index.html +0 -172
  186. package/test-html/js/auth.js +0 -97
  187. package/test-html/js/main.js +0 -1485
  188. package/test-html/login.html +0 -102
  189. package/test-html/logout.html +0 -18
  190. package/update-domain.sql +0 -9
  191. package/user-access-view.sql +0 -49
  192. package/user-management/README.md +0 -301
  193. package/user-management/add-users.sh +0 -776
  194. package/user-management/create-user.js +0 -65
  195. package/user-management/users.txt +0 -15
  196. package/view-all-users.sql +0 -40
  197. package/wru-auth-config.js +0 -17
@@ -1,618 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <meta name="description" content="The @knowcode/doc-builder provides flexible authentication options to protect your documentation. You can either protect specific documents using a `private`...">
7
- <title>Private Directory Authentication Guide</title>
8
-
9
- <meta name="generator" content="@knowcode/doc-builder by Knowcode Ltd">
10
- <meta name="author" content="Lindsay Smith">
11
- <meta name="keywords" content="documentation, markdown, static site generator, vercel, notion-style, private, authentication">
12
- <meta name="robots" content="index, follow">
13
- <link rel="canonical" href="https://doc-builder-delta.vercel.app/guides/private-directory-authentication.html">
14
-
15
- <!-- Open Graph / Facebook -->
16
- <meta property="og:type" content="article">
17
- <meta property="og:url" content="https://doc-builder-delta.vercel.app/guides/private-directory-authentication.html">
18
- <meta property="og:title" content="Private Directory Authentication Guide">
19
- <meta property="og:description" content="The @knowcode/doc-builder provides flexible authentication options to protect your documentation. You can either protect specific documents using a `private`...">
20
- <meta property="og:image" content="https://doc-builder-delta.vercel.app/og-default.png">
21
- <meta property="og:site_name" content="@knowcode/doc-builder">
22
- <meta property="og:locale" content="en_US">
23
-
24
- <!-- Twitter Card -->
25
- <meta name="twitter:card" content="summary_large_image">
26
- <meta name="twitter:site" content="@planbbackups">
27
- <meta name="twitter:creator" content="@planbbackups">
28
- <meta name="twitter:title" content="Private Directory Authentication Guide">
29
- <meta name="twitter:description" content="The @knowcode/doc-builder provides flexible authentication options to protect your documentation. You can either protect specific documents using a `private`...">
30
- <meta name="twitter:image" content="https://doc-builder-delta.vercel.app/og-default.png">
31
-
32
- <!-- Custom Meta Tags -->
33
- <meta name="google-site-verification" content="FtzcDTf5BQ9K5EfnGazQkgU2U4FiN3ITzM7gHwqUAqQ">
34
- <meta name="msvalidate.01" content="B2D8C4C12C530D47AA962B24CAA09630">
35
-
36
- <!-- Fonts -->
37
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
38
-
39
- <!-- Icons -->
40
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
41
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@phosphor-icons/web@2.1.1/src/regular/style.css">
42
-
43
- <!-- Mermaid -->
44
- <script src="https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js"></script>
45
-
46
- <!-- Styles -->
47
- <link rel="stylesheet" href="../css/notion-style.css">
48
-
49
-
50
- <!-- Blue theme and white background overrides for static output -->
51
- <style>
52
- /* Override green colors with blue */
53
- :root {
54
- --primary: #2563eb;
55
- --primary-dark: #1d4ed8;
56
- --primary-light: #dbeafe;
57
- --accent: #3b82f6;
58
- --color-accent-green: #2563eb;
59
- --color-accent-emerald: #3b82f6;
60
-
61
- /* White backgrounds for cleaner appearance */
62
- --color-bg-secondary: #FFFFFF;
63
- --color-bg-tertiary: #FAFAFA;
64
- --color-bg-hover: #F8F9FA;
65
- }
66
-
67
- /* Override green status colors with blue variants */
68
- .nav-item.active {
69
- background-color: #dbeafe !important;
70
- color: #1d4ed8 !important;
71
- }
72
-
73
- .nav-item:hover {
74
- background-color: #eff6ff !important;
75
- }
76
-
77
- /* Override complete/success icons to blue */
78
- .ph-check-circle[style*="color: #059669"] {
79
- color: #2563eb !important;
80
- }
81
-
82
- /* Override README/home icon color */
83
- .ph-house[style*="color: #059669"] {
84
- color: #2563eb !important;
85
- }
86
-
87
- /* Override links */
88
- a {
89
- color: #2563eb;
90
- }
91
-
92
- a:hover {
93
- color: #1d4ed8;
94
- }
95
-
96
- /* Override buttons and interactive elements */
97
- .theme-toggle:hover,
98
- .menu-toggle:hover {
99
- background-color: #dbeafe;
100
- color: #1d4ed8;
101
- }
102
-
103
- /* Override nav title hover */
104
- .nav-title:hover {
105
- background-color: #eff6ff;
106
- }
107
-
108
- /* White backgrounds for sidebar and navigation */
109
- body:not(.dark-mode) .sidebar {
110
- background: #FFFFFF !important;
111
- background-color: #FFFFFF !important;
112
- border-right: 1px solid #E5E7EB !important;
113
- }
114
-
115
- body:not(.dark-mode) .nav-section {
116
- background: #FFFFFF !important;
117
- background-color: #FFFFFF !important;
118
- }
119
-
120
- body:not(.dark-mode) .nav-content {
121
- background: #FFFFFF !important;
122
- background-color: #FFFFFF !important;
123
- }
124
-
125
- body:not(.dark-mode) .navigation {
126
- background: #FFFFFF !important;
127
- background-color: #FFFFFF !important;
128
- }
129
-
130
- /* Subtle separation for nav sections */
131
- body:not(.dark-mode) .nav-section + .nav-section {
132
- border-top: 1px solid #F3F4F6;
133
- }
134
-
135
- /* Adjust hover states for white backgrounds */
136
- body:not(.dark-mode) .nav-item:hover {
137
- background-color: #F8F9FA !important;
138
- }
139
-
140
- body:not(.dark-mode) .nav-title.collapsible:hover {
141
- background-color: #F8F9FA !important;
142
- }
143
-
144
- /* Header stays white (already is) but ensure consistency */
145
- body:not(.dark-mode) .header {
146
- background: #FFFFFF !important;
147
- background-color: #FFFFFF !important;
148
- border-bottom: 1px solid #E5E7EB !important;
149
- }
150
-
151
- /* Ensure search box looks good on white */
152
- body:not(.dark-mode) .filter-input,
153
- body:not(.dark-mode) .sidebar-search {
154
- background: #F8F9FA !important;
155
- background-color: #F8F9FA !important;
156
- border: 1px solid #E5E7EB !important;
157
- }
158
-
159
- body:not(.dark-mode) .filter-input:focus,
160
- body:not(.dark-mode) .sidebar-search:focus {
161
- background: #FFFFFF !important;
162
- background-color: #FFFFFF !important;
163
- border-color: #2563eb !important;
164
- }
165
-
166
- /* Override breadcrumbs */
167
- .breadcrumbs a {
168
- color: #2563eb;
169
- }
170
-
171
- .breadcrumbs a:hover {
172
- color: #1d4ed8;
173
- background-color: #dbeafe;
174
- }
175
-
176
- /* Override filter icon */
177
- .filter-icon {
178
- color: #2563eb;
179
- }
180
-
181
- /* Override deployment info on hover */
182
- .deployment-date:hover {
183
- color: #2563eb;
184
- }
185
-
186
- /* Dark mode adjustments */
187
- body.dark-mode {
188
- --primary: #3b82f6;
189
- --primary-dark: #2563eb;
190
- --primary-light: #1e3a8a;
191
- --accent: #60a5fa;
192
- }
193
-
194
- body.dark-mode .nav-item.active {
195
- background-color: rgba(59, 130, 246, 0.1) !important;
196
- color: #60a5fa !important;
197
- }
198
-
199
- body.dark-mode .nav-item:hover {
200
- background-color: rgba(59, 130, 246, 0.05) !important;
201
- }
202
-
203
- body.dark-mode a {
204
- color: #60a5fa;
205
- }
206
-
207
- body.dark-mode a:hover {
208
- color: #93bbfc;
209
- }
210
- </style>
211
-
212
-
213
-
214
-
215
- <!-- Favicon -->
216
- <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>✨</text></svg>">
217
-
218
- <script type="application/ld+json">
219
- {
220
- "@context": "https://schema.org",
221
- "@type": "TechArticle",
222
- "headline": "Private Directory Authentication Guide",
223
- "description": "The @knowcode/doc-builder provides flexible authentication options to protect your documentation. You can either protect specific documents using a `private`...",
224
- "author": {
225
- "@type": "Person",
226
- "name": "Lindsay Smith"
227
- },
228
- "publisher": {
229
- "@type": "Organization",
230
- "name": "Knowcode Ltd",
231
- "url": "https://knowcode.tech"
232
- },
233
- "datePublished": "2025-08-12T21:35:01.282Z",
234
- "dateModified": "2025-08-12T21:35:01.282Z",
235
- "mainEntityOfPage": {
236
- "@type": "WebPage",
237
- "@id": "https://doc-builder-delta.vercel.app/guides/private-directory-authentication.html"
238
- },
239
- "breadcrumb": {
240
- "@type": "BreadcrumbList",
241
- "itemListElement": [
242
- {
243
- "@type": "ListItem",
244
- "position": 1,
245
- "name": "@knowcode/doc-builder",
246
- "item": "https://doc-builder-delta.vercel.app"
247
- },
248
- {
249
- "@type": "ListItem",
250
- "position": 2,
251
- "name": "Guides",
252
- "item": "https://doc-builder-delta.vercel.app/guides/"
253
- },
254
- {
255
- "@type": "ListItem",
256
- "position": 3,
257
- "name": "Private Directory Authentication",
258
- "item": "https://doc-builder-delta.vercel.app/guides/private-directory-authentication.html"
259
- }
260
- ]
261
- }
262
- }
263
- </script>
264
- </head>
265
- <body>
266
-
267
-
268
-
269
-
270
- <!-- Breadcrumbs -->
271
- <nav class="breadcrumbs breadcrumbs-static" id="breadcrumbs" data-build-date="Aug 12, 2025, 09:35 PM UTC" data-doc-builder-version="1.9.28">
272
- <!-- Breadcrumbs will be generated by JavaScript -->
273
- </nav>
274
-
275
- <!-- Main Content -->
276
- <div class="main-wrapper">
277
- <!-- Sidebar -->
278
- <aside class="sidebar">
279
- <div class="sidebar-header">
280
- <div class="filter-box">
281
- <input type="text" placeholder="Search menu..." class="filter-input" id="nav-filter">
282
- <i class="fas fa-search filter-icon"></i>
283
- </div>
284
- </div>
285
- <nav class="navigation">
286
-
287
- <div class="nav-section" data-level="0">
288
- <a class="nav-title toggle-all-nav expanded" href="#" id="nav-toggle-all" title="Collapse/Expand All">
289
- <i class="ph ph-caret-down" id="toggle-all-icon"></i> Documentation
290
- </a>
291
- <div class="nav-content">
292
- <a href="README.html" class="nav-item" data-tooltip="@knowcode/doc-builder."><i class="ph ph-file-text"></i> Overview</a>
293
- <a href="about-doc-builder.html" class="nav-item" data-tooltip="About @knowcode/doc-builder."><i class="ph ph-check-circle" style="color: #2563eb;"></i> About Doc Builder</a>
294
- <a href="documentation-index.html" class="nav-item" data-tooltip="This directory contains additional documentation for the @knowcode/doc-builder project, organized by topic and purpose."><i class="ph ph-pencil-simple" style="color: #d97706;"></i> Documentation Index</a>
295
- <a href="image-modal-test.html" class="nav-item" data-tooltip="This document tests the new image modal functionality in doc-builder."><i class="ph ph-file-text"></i> Image Modal Test</a>
296
- <a href="vercel-cli-setup-guide.html" class="nav-item" data-tooltip="This guide provides comprehensive instructions for installing the Vercel CLI across different operating systems."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Vercel Cli Setup Guide</a>
297
- <a href="vercel-first-time-setup-guide.html" class="nav-item" data-tooltip="This guide walks you through the Vercel deployment process when using ."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Vercel First Time Setup Guide</a></div></div>
298
- <div class="nav-section" data-level="1">
299
- <a class="nav-title collapsible expanded" href="#" data-target="nav-guides-1" >
300
- <i class="ph ph-caret-right collapse-icon"></i><i class="ph ph-book"></i> Guides
301
- </a>
302
- <div class="nav-content" id="nav-guides-1">
303
- <a href="guides/authentication-default-change.html" class="nav-item" data-tooltip="Starting from version 1.7.4, @knowcode/doc-builder now defaults to no authentication for all documentation sites."><i class="ph ph-file-text"></i> Authentication Default Change</a>
304
- <a href="guides/authentication-guide.html" class="nav-item" data-tooltip="@knowcode/doc-builder supports enterprise-grade authentication through Supabase - a secure, scalable authentication platform."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Authentication Guide</a>
305
- <a href="guides/claude-workflow-guide.html" class="nav-item" data-tooltip="This guide demonstrates an efficient workflow for using Claude Code with a refined CLAUDE.md file to create high-quality documentation and deploy it..."><i class="ph ph-pencil-simple" style="color: #d97706;"></i> Claude Workflow Guide</a>
306
- <a href="guides/configuration-guide.html" class="nav-item" data-tooltip="This guide explains how @knowcode/doc-builder handles configuration files and settings."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Configuration Guide</a>
307
- <a href="guides/documentation-standards.html" class="nav-item" data-tooltip="This document defines the documentation standards and conventions for the @knowcode/doc-builder project."><i class="ph ph-pencil-simple" style="color: #d97706;"></i> Documentation Standards</a>
308
- <a href="guides/html-embedding-guide.html" class="nav-item" data-tooltip="Starting from version 1.9.2, doc-builder treats HTML files ( and ) as attachments that are automatically copied to your output directory during the..."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Html Embedding Guide</a>
309
- <a href="guides/image-modal-guide.html" class="nav-item" data-tooltip="When users click on any image in your generated documentation, it opens in a professional modal overlay with: Full-screen viewing experience Smooth..."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Image Modal Guide</a>
310
- <a href="guides/phosphor-icons-guide.html" class="nav-item" data-tooltip="@knowcode/doc-builder automatically converts Unicode emojis in your markdown files to beautiful Phosphor icons in the generated HTML."><i class="ph ph-pencil-simple" style="color: #d97706;"></i> Phosphor Icons Guide</a>
311
- <a href="guides/private-directory-authentication.html" class="nav-item active" data-tooltip="The @knowcode/doc-builder provides flexible authentication options to protect your documentation."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Private Directory Authentication</a>
312
- <a href="guides/private-directory-authentication-troubleshooting.html" class="nav-item" data-tooltip="Private Directory Authentication Troubleshooting."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Private Directory Authentication Troubleshooting</a>
313
- <a href="guides/public-site-deployment.html" class="nav-item" data-tooltip="The @knowcode/doc-builder now supports deploying public documentation sites without authentication."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Public Site Deployment</a>
314
- <a href="guides/search-engine-verification-guide.html" class="nav-item" data-tooltip="Search engine verification provides access to powerful webmaster tools:."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Search Engine Verification Guide</a>
315
- <a href="guides/seo-guide.html" class="nav-item" data-tooltip="@knowcode/doc-builder includes comprehensive SEO (Search Engine Optimization) features to help your documentation rank better in search results and..."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Seo Guide</a>
316
- <a href="guides/seo-optimization-guide.html" class="nav-item" data-tooltip="Comprehensive guide to optimizing documentation for search engines. Learn SEO best practices, use built-in features, and improve your rankings."><i class="ph ph-check-circle" style="color: #2563eb;"></i> SEO Optimization Guide for @knowcode/doc-builder</a>
317
- <a href="guides/supabase-authentication-complete-guide.html" class="nav-item" data-tooltip="@knowcode/doc-builder includes built-in Supabase authentication that provides enterprise-grade security with zero configuration."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Supabase Authentication Complete Guide</a>
318
- <a href="guides/troubleshooting-guide.html" class="nav-item" data-tooltip="This guide helps you resolve common issues when using @knowcode/doc-builder."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Troubleshooting Guide</a>
319
- <a href="guides/windows-setup-guide.html" class="nav-item" data-tooltip="This guide helps Windows users set up the complete AI-powered documentation workflow using Claude Code, @knowcode/doc-builder, and Vercel."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Windows Setup Guide</a></div></div>
320
- <div class="nav-section" data-level="1">
321
- <a class="nav-title collapsible" href="#" data-target="nav-prompts-1" >
322
- <i class="ph ph-caret-right collapse-icon"></i><i class="ph ph-chat-circle-dots"></i> Prompts
323
- </a>
324
- <div class="nav-content collapsed" id="nav-prompts-1">
325
- <a href="prompts/beautiful-documentation-design.html" class="nav-item" data-tooltip="🎨 Beautiful Documentation Design Guide."><i class="ph ph-check-circle" style="color: #2563eb;"></i> Beautiful Documentation Design</a>
326
- <a href="prompts/markdown-document-standards.html" class="nav-item" data-tooltip="Detailed introduction to the topic..."><i class="ph ph-pencil-simple" style="color: #d97706;"></i> Markdown Document Standards</a>
327
- <a href="prompts/project-rename-strategy-sasha-publish.html" class="nav-item" data-tooltip="This document outlines the comprehensive strategy for renaming the @knowcode/doc-builder project to &quot;sasha-publish&quot;, including all package references,..."><i class="ph ph-x-circle" style="color: #dc2626;"></i> Project Rename Strategy Sasha Publish</a></div></div>
328
- <div class="nav-section" data-level="1">
329
- <a class="nav-title collapsible" href="#" data-target="nav-test-questions-1" >
330
- <i class="ph ph-caret-right collapse-icon"></i><i class="ph ph-folder"></i> Test Questions
331
- </a>
332
- <div class="nav-content collapsed" id="nav-test-questions-1">
333
- <a href="test-questions/how-does-it-work%3F.html" class="nav-item" data-tooltip="This is a test file to verify that question marks work properly in filenames."><i class="ph ph-file-text"></i> How Does It Work?</a>
334
- <a href="test-questions/step-1%3A%20getting-started.html" class="nav-item" data-tooltip="Step 1: Getting Started."><i class="ph ph-file-text"></i> Step 1: Getting Started</a>
335
- <a href="test-questions/what-is-the-purpose.html" class="nav-item" data-tooltip="Understanding the purpose of our documentation system"><i class="ph ph-file-text"></i> What Is The Purpose?</a></div></div>
336
- </nav>
337
- <div class="resize-handle"></div>
338
- </aside>
339
-
340
- <!-- Content Area -->
341
- <main class="content">
342
- <div class="content-inner">
343
- <h1>Private Directory Authentication Guide</h1>
344
- <h2>Overview</h2>
345
- <p>The @knowcode/doc-builder provides flexible authentication options to protect your documentation. You can either protect specific documents using a <code>private</code> directory or secure your entire documentation site.</p>
346
- <h2>Two Authentication Modes</h2>
347
- <h3>1. Private Directory Mode (Mixed Public/Private)</h3>
348
- <p>Create a <code>docs/private/</code> directory to automatically enable authentication for sensitive documents while keeping the rest of your documentation public.</p>
349
- <p><strong>How it works:</strong></p>
350
- <ul>
351
- <li>Documents in <code>private/</code> folder require authentication</li>
352
- <li>Documents outside <code>private/</code> remain publicly accessible</li>
353
- <li>Login button appears in the header</li>
354
- <li>Perfect for documentation with some sensitive content</li>
355
- </ul>
356
- <p><strong>Example structure:</strong></p>
357
- <pre><code>docs/
358
- ├── README.md # ✅ Public - Anyone can access
359
- ├── getting-started.md # ✅ Public - Anyone can access
360
- ├── guides/
361
- │ ├── installation.md # ✅ Public - Anyone can access
362
- │ └── usage.md # ✅ Public - Anyone can access
363
- └── private/
364
- ├── api-keys.md # 🔐 Private - Login required
365
- ├── deployment.md # 🔐 Private - Login required
366
- └── internal/
367
- └── secrets.md # 🔐 Private - Login required
368
- </code></pre>
369
- <h3>2. Full Site Authentication Mode</h3>
370
- <p>Make your entire documentation site private by setting authentication in your configuration file.</p>
371
- <p><strong>How it works:</strong></p>
372
- <ul>
373
- <li>ALL documents require authentication</li>
374
- <li>No public access whatsoever</li>
375
- <li>Login required before viewing any page</li>
376
- <li>Perfect for internal company documentation</li>
377
- </ul>
378
- <p><strong>Configuration:</strong></p>
379
- <pre><code class="language-javascript">// doc-builder.config.js
380
- module.exports = {
381
- features: {
382
- authentication: &#39;supabase&#39; // Entire site requires login
383
- },
384
- // ... other config
385
- };
386
- </code></pre>
387
- <h2>How They Work Together</h2>
388
- <p>If you have <strong>both</strong> a private directory AND set authentication in your config:</p>
389
- <ul>
390
- <li>The private directory <strong>always</strong> triggers authentication (for security)</li>
391
- <li>Setting <code>authentication: &#39;supabase&#39;</code> makes the entire site private</li>
392
- <li>Setting <code>authentication: false</code> is overridden by private directory presence</li>
393
- <li>This ensures private content is never accidentally exposed</li>
394
- </ul>
395
- <h2>User Experience</h2>
396
- <h3>Private Directory Mode</h3>
397
- <p><strong>Unauthenticated users see:</strong></p>
398
- <ul>
399
- <li>Only public documents in navigation</li>
400
- <li>Login button in header</li>
401
- <li>Access to all public content</li>
402
- <li>Redirect to login if trying to access private URLs</li>
403
- </ul>
404
- <p><strong>Authenticated users see:</strong></p>
405
- <ul>
406
- <li>Complete navigation including private folders</li>
407
- <li>Logout button in header </li>
408
- <li>Full access to all documentation</li>
409
- <li>Seamless experience across public and private content</li>
410
- </ul>
411
- <h3>Full Site Mode</h3>
412
- <p><strong>Everyone must:</strong></p>
413
- <ul>
414
- <li>Login before accessing any content</li>
415
- <li>Authenticate to see navigation</li>
416
- <li>Have valid credentials to view any page</li>
417
- </ul>
418
- <h2>Setting Up Supabase Authentication</h2>
419
- <p>Both authentication modes use Supabase for secure user management. Here&#39;s how to configure it:</p>
420
- <h3>1. Credentials Are Automatic! (v1.8.2+)</h3>
421
- <p>No need to configure credentials anymore! The shared Supabase database is automatically configured. Each site gets a unique auto-generated site ID during build.</p>
422
- <p>To override with custom credentials (optional):</p>
423
- <pre><code class="language-javascript">module.exports = {
424
- auth: {
425
- supabaseUrl: &#39;https://your-project.supabase.co&#39;, // Optional override
426
- supabaseAnonKey: &#39;your-anon-key&#39;, // Optional override
427
- siteId: &#39;your-site-id&#39; // Optional custom ID
428
- }
429
- };
430
- </code></pre>
431
- <h3>2. Create Access Control Table</h3>
432
- <p>In your Supabase dashboard, run this SQL (or use setup-database-v2.sql):</p>
433
- <pre><code class="language-sql">CREATE TABLE docbuilder_access (
434
- user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE,
435
- domain TEXT NOT NULL,
436
- created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
437
- PRIMARY KEY (user_id, domain)
438
- );
439
-
440
- -- Create index for performance
441
- CREATE INDEX idx_docbuilder_access_domain ON docbuilder_access(domain);
442
-
443
- -- Enable Row Level Security
444
- ALTER TABLE docbuilder_access ENABLE ROW LEVEL SECURITY;
445
-
446
- -- RLS Policy
447
- CREATE POLICY &quot;Users see own access&quot; ON docbuilder_access
448
- FOR SELECT USING (user_id = auth.uid());
449
- </code></pre>
450
- <h3>3. Grant User Access</h3>
451
- <p>Add authorized users by domain:</p>
452
- <pre><code class="language-sql">-- First, create a user in Supabase Auth
453
- -- Then grant them access to your documentation domain
454
- INSERT INTO docbuilder_access (user_id, domain)
455
- VALUES (&#39;user-uuid-from-auth-users&#39;, &#39;docs.example.com&#39;);
456
-
457
- -- Or grant access to multiple domains
458
- INSERT INTO docbuilder_access (user_id, domain) VALUES
459
- (&#39;user-uuid&#39;, &#39;docs.example.com&#39;),
460
- (&#39;user-uuid&#39;, &#39;staging-docs.example.com&#39;),
461
- (&#39;user-uuid&#39;, &#39;localhost:3000&#39;);
462
- </code></pre>
463
- <h3>Automatic Credential Configuration</h3>
464
- <p>Starting from version 1.8.2, authentication is truly zero-configuration:</p>
465
- <ul>
466
- <li>All doc-builder sites share the same Supabase authentication database</li>
467
- <li>Credentials are built into the package - no manual configuration needed</li>
468
- <li>No site IDs needed - the system uses your domain automatically</li>
469
- <li>Just grant users access to your domain in the database</li>
470
- </ul>
471
- <p><strong>Note</strong>: When you build with a private directory:</p>
472
- <pre><code>🔐 Found private directory - automatically enabling Supabase authentication
473
- Note: Grant users access by adding domain to the docbuilder_access table
474
- </code></pre>
475
- <p><strong>Example</strong>: For a site at <code>docs.example.com</code>, grant access with:</p>
476
- <pre><code class="language-sql">INSERT INTO docbuilder_access (user_id, domain)
477
- VALUES (&#39;user-uuid&#39;, &#39;docs.example.com&#39;);
478
- </code></pre>
479
- <h2>Best Practices</h2>
480
- <h3>Choosing the Right Mode</h3>
481
- <p><strong>Use Private Directory Mode when:</strong></p>
482
- <ul>
483
- <li>Most documentation is public</li>
484
- <li>Only specific sections need protection</li>
485
- <li>You want easy public access to general docs</li>
486
- <li>Examples: Open source projects with private contributor guides</li>
487
- </ul>
488
- <p><strong>Use Full Site Mode when:</strong></p>
489
- <ul>
490
- <li>All content is confidential</li>
491
- <li>Documentation is for internal use only</li>
492
- <li>You need maximum security</li>
493
- <li>Examples: Company handbooks, internal APIs</li>
494
- </ul>
495
- <h3>Organizing Private Content</h3>
496
- <p>Structure your private directory meaningfully:</p>
497
- <pre><code>private/
498
- ├── admin/ # Admin-only documentation
499
- ├── api/ # Internal API docs
500
- ├── deployment/ # Deployment procedures
501
- ├── credentials/ # API keys and secrets
502
- └── team/ # Team processes
503
- </code></pre>
504
- <h3>Security Features</h3>
505
- <ol>
506
- <li><strong>Build-Time Protection</strong>: Private files excluded from public navigation during build</li>
507
- <li><strong>URL Protection</strong>: Direct access to private URLs redirects to login</li>
508
- <li><strong>Session Management</strong>: Supabase handles secure sessions</li>
509
- <li><strong>Access Control</strong>: Fine-grained permissions via database</li>
510
- </ol>
511
- <h3>Migration Strategies</h3>
512
- <p><strong>Moving to Private Directory Mode:</strong></p>
513
- <ol>
514
- <li>Create <code>docs/private/</code> folder</li>
515
- <li>Move sensitive documents into it</li>
516
- <li>Update internal links if needed</li>
517
- <li>Deploy - authentication automatically enabled</li>
518
- </ol>
519
- <p><strong>Moving to Full Site Mode:</strong></p>
520
- <ol>
521
- <li>Add <code>authentication: &#39;supabase&#39;</code> to config</li>
522
- <li>Configure Supabase credentials</li>
523
- <li>Deploy - entire site now requires login</li>
524
- </ol>
525
- <h2>Common Scenarios</h2>
526
- <h3>Example 1: Open Source Project with Private Docs</h3>
527
- <pre><code>docs/
528
- ├── README.md # ✅ Public - Project overview
529
- ├── contributing.md # ✅ Public - How to contribute
530
- ├── api-reference.md # ✅ Public - API documentation
531
- └── private/
532
- ├── deployment.md # 🔐 Private - How to deploy
533
- ├── api-keys.md # 🔐 Private - Production keys
534
- └── maintenance.md # 🔐 Private - Admin procedures
535
- </code></pre>
536
- <p>Perfect for: Open source projects where most docs are public but deployment and admin info is private.</p>
537
- <h3>Example 2: Company Documentation Portal</h3>
538
- <pre><code class="language-javascript">// doc-builder.config.js
539
- module.exports = {
540
- features: {
541
- authentication: &#39;supabase&#39; // Everything requires login
542
- }
543
- };
544
- </code></pre>
545
- <p>Perfect for: Internal company wikis where all content is confidential.</p>
546
- <h3>Example 3: Client Documentation with Mixed Access</h3>
547
- <pre><code>docs/
548
- ├── getting-started.md # ✅ Public - Basic setup
549
- ├── faq.md # ✅ Public - Common questions
550
- ├── changelog.md # ✅ Public - Version history
551
- └── private/
552
- ├── advanced-config.md # 🔐 Private - Advanced setup
553
- ├── troubleshooting.md # 🔐 Private - Debug guides
554
- └── support-contacts.md # 🔐 Private - Direct contacts
555
- </code></pre>
556
- <p>Perfect for: SaaS products where basic docs are public but advanced guides require authentication.</p>
557
- <h2>Quick Reference</h2>
558
- <table>
559
- <thead>
560
- <tr>
561
- <th>Feature</th>
562
- <th>Private Directory Mode</th>
563
- <th>Full Site Mode</th>
564
- </tr>
565
- </thead>
566
- <tbody><tr>
567
- <td><strong>Trigger</strong></td>
568
- <td>Create <code>docs/private/</code> folder</td>
569
- <td>Set <code>authentication: &#39;supabase&#39;</code> in config</td>
570
- </tr>
571
- <tr>
572
- <td><strong>Public Access</strong></td>
573
- <td>Yes, for non-private docs</td>
574
- <td>No, everything requires login</td>
575
- </tr>
576
- <tr>
577
- <td><strong>Use Case</strong></td>
578
- <td>Mixed public/private content</td>
579
- <td>Fully private documentation</td>
580
- </tr>
581
- <tr>
582
- <td><strong>Configuration</strong></td>
583
- <td>Zero config (just create folder)</td>
584
- <td>One line in config file</td>
585
- </tr>
586
- <tr>
587
- <td><strong>Login Button</strong></td>
588
- <td>Shows when private folder exists</td>
589
- <td>Shows when config enabled</td>
590
- </tr>
591
- </tbody></table>
592
- <h2>Summary</h2>
593
- <p>The @knowcode/doc-builder provides two simple ways to protect your documentation:</p>
594
- <ol>
595
- <li><strong>Private Directory</strong>: Just create a <code>private</code> folder for mixed public/private sites</li>
596
- <li><strong>Full Authentication</strong>: Add one line to config for completely private sites</li>
597
- </ol>
598
- <p>Both approaches use the same secure Supabase authentication system, giving you flexibility to choose the right protection level for your documentation needs.</p>
599
-
600
- </div>
601
- </main>
602
- </div>
603
-
604
- <!-- Scripts -->
605
- <script>
606
- // Pass configuration to frontend
607
- window.docBuilderConfig = {
608
- features: {
609
- showPdfDownload: true,
610
- menuDefaultOpen: false,
611
- mermaidEnhanced: true
612
- }
613
- };
614
- </script>
615
- <script src="../js/main.js"></script>
616
-
617
- </body>
618
- </html>