@knowcode/doc-builder 1.9.26 → 1.9.28

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 (93) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +17 -0
  3. package/assets/css/notion-style.css +76 -0
  4. package/assets/js/main.js +45 -1
  5. package/cli.js +9 -0
  6. package/doc-builder.config.js +1 -1
  7. package/doc-builder.config.js.backup.1755031374829 +126 -0
  8. package/html/11.png +0 -0
  9. package/html/README.html +6 -4
  10. package/html/Screenshot 2025-08-12 at 21.35.07.png +0 -0
  11. package/html/about-doc-builder.html +6 -4
  12. package/html/css/notion-style.css +76 -0
  13. package/html/documentation-index.html +6 -4
  14. package/html/guides/authentication-default-change.html +6 -4
  15. package/html/guides/authentication-guide.html +6 -4
  16. package/html/guides/claude-workflow-guide.html +6 -4
  17. package/html/guides/configuration-guide.html +6 -4
  18. package/html/guides/documentation-standards.html +6 -4
  19. package/html/guides/html-embedding-guide.html +6 -4
  20. package/html/guides/image-modal-guide.html +6 -4
  21. package/html/guides/phosphor-icons-guide.html +6 -4
  22. package/html/guides/private-directory-authentication-troubleshooting.html +6 -4
  23. package/html/guides/private-directory-authentication.html +6 -4
  24. package/html/guides/public-site-deployment.html +6 -4
  25. package/html/guides/search-engine-verification-guide.html +6 -4
  26. package/html/guides/seo-guide.html +6 -4
  27. package/html/guides/seo-optimization-guide.html +6 -4
  28. package/html/guides/supabase-authentication-complete-guide.html +6 -4
  29. package/html/guides/troubleshooting-guide.html +6 -4
  30. package/html/guides/windows-setup-guide.html +6 -4
  31. package/html/image-modal-test.html +6 -4
  32. package/html/index.html +6 -4
  33. package/html/js/main.js +45 -1
  34. package/html/private/cache-control-anti-pattern.html +6 -4
  35. package/html/private/launch/README.html +6 -4
  36. package/html/private/launch/auth-cleanup-summary.html +6 -4
  37. package/html/private/launch/bubble-plugin-specification.html +6 -4
  38. package/html/private/launch/go-to-market-strategy.html +6 -4
  39. package/html/private/launch/launch-announcements.html +6 -4
  40. package/html/private/launch/vercel-deployment-auth-setup.html +6 -4
  41. package/html/private/next-steps-walkthrough.html +6 -4
  42. package/html/private/supabase-auth-implementation-completed.html +6 -4
  43. package/html/private/supabase-auth-implementation-plan.html +6 -4
  44. package/html/private/supabase-auth-integration-plan.html +6 -4
  45. package/html/private/supabase-auth-setup-guide.html +6 -4
  46. package/html/private/test-private-doc.html +6 -4
  47. package/html/private/user-management-tooling.html +6 -4
  48. package/html/prompts/beautiful-documentation-design.html +6 -4
  49. package/html/prompts/markdown-document-standards.html +6 -4
  50. package/html/prompts/project-rename-strategy-sasha-publish.html +6 -4
  51. package/html/sitemap.xml +59 -59
  52. package/html/test-questions/how-does-it-work%3F.html +6 -4
  53. package/html/test-questions/step-1%3A%20getting-started.html +6 -4
  54. package/html/test-questions/what-is-the-purpose.html +6 -4
  55. package/html/vercel-cli-setup-guide.html +6 -4
  56. package/html/vercel-first-time-setup-guide.html +6 -4
  57. package/html-static/11.png +0 -0
  58. package/html-static/README.html +4 -25
  59. package/html-static/Screenshot 2025-08-12 at 21.35.07.png +0 -0
  60. package/html-static/about-doc-builder.html +4 -25
  61. package/html-static/css/notion-style.css +76 -0
  62. package/html-static/documentation-index.html +4 -25
  63. package/html-static/guides/authentication-default-change.html +4 -25
  64. package/html-static/guides/authentication-guide.html +4 -25
  65. package/html-static/guides/claude-workflow-guide.html +4 -25
  66. package/html-static/guides/configuration-guide.html +4 -25
  67. package/html-static/guides/documentation-standards.html +4 -25
  68. package/html-static/guides/html-embedding-guide.html +4 -25
  69. package/html-static/guides/image-modal-guide.html +4 -25
  70. package/html-static/guides/phosphor-icons-guide.html +4 -25
  71. package/html-static/guides/private-directory-authentication-troubleshooting.html +4 -25
  72. package/html-static/guides/private-directory-authentication.html +4 -25
  73. package/html-static/guides/public-site-deployment.html +4 -25
  74. package/html-static/guides/search-engine-verification-guide.html +4 -25
  75. package/html-static/guides/seo-guide.html +4 -25
  76. package/html-static/guides/seo-optimization-guide.html +4 -25
  77. package/html-static/guides/supabase-authentication-complete-guide.html +4 -25
  78. package/html-static/guides/troubleshooting-guide.html +4 -25
  79. package/html-static/guides/windows-setup-guide.html +4 -25
  80. package/html-static/image-modal-test.html +4 -25
  81. package/html-static/index.html +4 -25
  82. package/html-static/js/main.js +45 -1
  83. package/html-static/prompts/beautiful-documentation-design.html +4 -25
  84. package/html-static/prompts/markdown-document-standards.html +4 -25
  85. package/html-static/prompts/project-rename-strategy-sasha-publish.html +4 -25
  86. package/html-static/sitemap.xml +32 -32
  87. package/html-static/test-questions/how-does-it-work%3F.html +4 -25
  88. package/html-static/test-questions/step-1%3A%20getting-started.html +4 -25
  89. package/html-static/test-questions/what-is-the-purpose.html +4 -25
  90. package/html-static/vercel-cli-setup-guide.html +4 -25
  91. package/html-static/vercel-first-time-setup-guide.html +4 -25
  92. package/lib/core-builder.js +10 -1
  93. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,25 @@ All notable changes to @knowcode/doc-builder will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.9.26] - 2025-08-10
9
+
10
+ ### Added
11
+ - **Non-Printable Character Handling** - Automatically detects and skips files with non-printable ASCII characters (0x00-0x1F, 0x7F-0x9F) in their names
12
+ - **Safe File Processing** - Prevents YAML parsing errors and build failures caused by malformed filenames
13
+ - **Clear User Feedback** - Displays warning messages with sanitized filenames when problematic files are encountered
14
+ - **Cross-Platform Compatibility** - Handles files with special characters from different operating systems
15
+
16
+ ### Fixed
17
+ - **Build Failures** - Resolved "stream contains non-printable characters" YAML parsing errors during deployment
18
+ - **File Scanning Issues** - Fixed crashes when encountering files with control characters or corrupted metadata
19
+ - **Deployment Errors** - Eliminated deployment failures caused by problematic filenames in source directories
20
+
21
+ ### Technical
22
+ - Added `hasNonPrintableChars()` function to detect problematic filenames
23
+ - Added `sanitizeFilename()` function for safe display of problematic names
24
+ - Updated all file scanning functions (`getAllMarkdownFiles`, `getAllAttachmentFiles`, `findHtmlFiles`)
25
+ - Enhanced `fs.readdir` and `fs.readdirSync` operations with safety checks
26
+
8
27
  ## [1.9.18] - 2025-08-02
9
28
 
10
29
  ### Added
package/README.md CHANGED
@@ -310,6 +310,23 @@ doc-builder automatically copies attachment files (Excel, PDF, images, etc.) to
310
310
 
311
311
  To disable attachment copying, use the `--no-attachments` flag with build or deploy commands.
312
312
 
313
+ ### 🛡️ File Safety & Non-Printable Character Handling
314
+
315
+ doc-builder v1.9.26+ automatically handles files with non-printable characters in their names to prevent build failures:
316
+
317
+ - **Automatic Detection**: Files with non-printable ASCII characters (0x00-0x1F, 0x7F-0x9F) are automatically detected
318
+ - **Safe Processing**: Problematic files are skipped during scanning with a warning message
319
+ - **Clear Feedback**: You'll see messages like: `⚠️ Skipping file with non-printable characters: [sanitized name]`
320
+ - **Prevents Errors**: Eliminates YAML parsing errors and build failures caused by malformed filenames
321
+
322
+ **Common scenarios this fixes**:
323
+ - Files copied from certain operating systems with special characters
324
+ - Documents exported from applications that add invisible control characters
325
+ - Files with corruption in their metadata
326
+ - Cross-platform compatibility issues
327
+
328
+ This ensures your documentation builds successfully even when your source directory contains files with problematic names.
329
+
313
330
  ## 📋 Commands Overview
314
331
 
315
332
  <table>
@@ -534,6 +534,12 @@ pre code {
534
534
  overflow: hidden;
535
535
  }
536
536
 
537
+ /* Static build main wrapper - adjust for no header and smaller breadcrumb */
538
+ .breadcrumbs-static ~ .main-wrapper {
539
+ height: calc(100vh - 28px);
540
+ margin-top: 28px;
541
+ }
542
+
537
543
  .main-wrapper.banner-visible {
538
544
  height: calc(100vh - var(--header-height) - var(--breadcrumb-height) - 3.5rem);
539
545
  margin-top: calc(var(--header-height) + var(--breadcrumb-height) + 3.5rem);
@@ -990,6 +996,76 @@ tr:hover {
990
996
  gap: var(--space-2);
991
997
  }
992
998
 
999
+ /* Static build breadcrumbs - no header so top is 0 */
1000
+ .breadcrumbs-static {
1001
+ top: 0 !important;
1002
+ height: auto !important;
1003
+ min-height: 28px !important;
1004
+ padding: 0.15rem var(--space-6) !important;
1005
+ }
1006
+
1007
+ /* Breadcrumbs content wrapper for static builds */
1008
+ .breadcrumbs-content {
1009
+ display: flex;
1010
+ justify-content: space-between;
1011
+ align-items: center;
1012
+ width: 100%;
1013
+ }
1014
+
1015
+ .breadcrumbs-left {
1016
+ display: flex;
1017
+ align-items: center;
1018
+ gap: 0;
1019
+ }
1020
+
1021
+ .breadcrumbs-right {
1022
+ display: flex;
1023
+ align-items: center;
1024
+ gap: var(--space-3);
1025
+ }
1026
+
1027
+ /* Timestamp in breadcrumbs */
1028
+ .breadcrumb-date {
1029
+ color: var(--color-text-tertiary);
1030
+ font-size: var(--text-xs);
1031
+ white-space: nowrap;
1032
+ }
1033
+
1034
+ /* PDF button in breadcrumbs */
1035
+ .breadcrumb-pdf-btn {
1036
+ background: none;
1037
+ border: none;
1038
+ color: var(--color-text-secondary);
1039
+ cursor: pointer;
1040
+ padding: var(--space-1) var(--space-2);
1041
+ border-radius: var(--radius-md);
1042
+ transition: all 0.2s;
1043
+ font-size: 1rem;
1044
+ }
1045
+
1046
+ .breadcrumb-pdf-btn:hover {
1047
+ background: var(--color-bg-tertiary);
1048
+ color: var(--color-text-primary);
1049
+ }
1050
+
1051
+ /* Minimal breadcrumbs for homepage - even more compact */
1052
+ .breadcrumbs-minimal.breadcrumbs-static {
1053
+ height: auto !important;
1054
+ min-height: 24px !important;
1055
+ padding: 0.1rem var(--space-6) !important;
1056
+ }
1057
+
1058
+ /* Homepage breadcrumbs content - right-aligned only */
1059
+ .breadcrumbs-homepage {
1060
+ justify-content: flex-end !important;
1061
+ }
1062
+
1063
+ /* Adjust main wrapper for minimal breadcrumbs */
1064
+ .breadcrumbs-minimal.breadcrumbs-static ~ .main-wrapper {
1065
+ height: calc(100vh - 24px);
1066
+ margin-top: 24px;
1067
+ }
1068
+
993
1069
  .breadcrumbs.banner-visible {
994
1070
  top: calc(var(--header-height) + 3.5rem);
995
1071
  }
package/assets/js/main.js CHANGED
@@ -1468,6 +1468,11 @@ function generateBreadcrumbs() {
1468
1468
  const breadcrumbContainer = document.getElementById('breadcrumbs');
1469
1469
  if (!breadcrumbContainer) return;
1470
1470
 
1471
+ // Check if this is a static build (has data attributes)
1472
+ const isStaticBuild = breadcrumbContainer.classList.contains('breadcrumbs-static');
1473
+ const buildDate = breadcrumbContainer.getAttribute('data-build-date');
1474
+ const docBuilderVersion = breadcrumbContainer.getAttribute('data-doc-builder-version');
1475
+
1471
1476
  // Decode the URL to handle special characters and spaces
1472
1477
  const currentPath = decodeURIComponent(window.location.pathname);
1473
1478
  let pathSegments = currentPath.split('/').filter(segment => segment !== '');
@@ -1561,7 +1566,46 @@ function generateBreadcrumbs() {
1561
1566
  }
1562
1567
  }).join('<i class="fas fa-chevron-right breadcrumb-separator"></i>');
1563
1568
 
1564
- breadcrumbContainer.innerHTML = breadcrumbHTML;
1569
+ // For static builds, add timestamp and PDF button to breadcrumbs
1570
+ if (isStaticBuild && buildDate) {
1571
+ // Check if we're on the homepage (only "Home" breadcrumb)
1572
+ const isHomePage = pathSegments.length === 0 ||
1573
+ (pathSegments.length === 1 && (pathSegments[0] === 'index' || pathSegments[0] === 'README'));
1574
+
1575
+ if (isHomePage) {
1576
+ // On homepage, just show the timestamp and PDF button in a compact bar
1577
+ const wrapperHTML = `
1578
+ <div class="breadcrumbs-content breadcrumbs-homepage">
1579
+ <div class="breadcrumbs-right">
1580
+ <span class="breadcrumb-date" title="Built with doc-builder v${docBuilderVersion || ''}">Last updated: ${buildDate}</span>
1581
+ <button class="breadcrumb-pdf-btn" onclick="exportToPDF()" title="Export to PDF" aria-label="Export to PDF">
1582
+ <i class="fas fa-file-pdf"></i>
1583
+ </button>
1584
+ </div>
1585
+ </div>
1586
+ `;
1587
+ breadcrumbContainer.innerHTML = wrapperHTML;
1588
+ breadcrumbContainer.classList.add('breadcrumbs-minimal');
1589
+ } else {
1590
+ // Create a wrapper div for layout with breadcrumbs
1591
+ const wrapperHTML = `
1592
+ <div class="breadcrumbs-content">
1593
+ <div class="breadcrumbs-left">
1594
+ ${breadcrumbHTML}
1595
+ </div>
1596
+ <div class="breadcrumbs-right">
1597
+ <span class="breadcrumb-date" title="Built with doc-builder v${docBuilderVersion || ''}">Last updated: ${buildDate}</span>
1598
+ <button class="breadcrumb-pdf-btn" onclick="exportToPDF()" title="Export to PDF" aria-label="Export to PDF">
1599
+ <i class="fas fa-file-pdf"></i>
1600
+ </button>
1601
+ </div>
1602
+ </div>
1603
+ `;
1604
+ breadcrumbContainer.innerHTML = wrapperHTML;
1605
+ }
1606
+ } else {
1607
+ breadcrumbContainer.innerHTML = breadcrumbHTML;
1608
+ }
1565
1609
  }
1566
1610
 
1567
1611
  // Initialize tooltip positioning for navigation items
package/cli.js CHANGED
@@ -36,6 +36,7 @@ ${chalk.yellow('What it does:')}
36
36
  • Deploys to Vercel with one command (zero configuration)
37
37
  • ${chalk.green.bold('NEW:')} Shows help by default, use 'deploy' to publish (v1.3.0+)
38
38
  • Optional authentication to protect private documentation
39
+ • Handles files with non-printable characters safely (v1.9.26+)
39
40
 
40
41
  ${chalk.yellow('Requirements:')}
41
42
  • Node.js 14+ installed
@@ -87,6 +88,10 @@ ${chalk.yellow('Examples:')}
87
88
  ${chalk.gray('$')} doc-builder build --no-auth ${chalk.gray('# Build public site without authentication')}
88
89
  ${chalk.gray('$')} doc-builder build --no-static ${chalk.gray('# Skip static output generation')}
89
90
  ${chalk.gray('$')} doc-builder build --static-dir public ${chalk.gray('# Use custom static output directory')}
91
+
92
+ ${chalk.yellow('File Safety:')}
93
+ Files with non-printable characters in their names are automatically skipped
94
+ to prevent build failures. You'll see warnings for any problematic files.
90
95
  `)
91
96
  .action(async (options) => {
92
97
  const spinner = ora('Building documentation...').start();
@@ -628,6 +633,10 @@ ${chalk.yellow('Examples:')}
628
633
  ${chalk.gray('$')} doc-builder deploy --no-prod ${chalk.gray('# Deploy preview only')}
629
634
  ${chalk.gray('$')} doc-builder deploy --no-auth ${chalk.gray('# Deploy public site without authentication')}
630
635
 
636
+ ${chalk.yellow('File Safety:')}
637
+ Files with non-printable characters are automatically skipped during deployment
638
+ to prevent YAML parsing errors. You'll see warnings for any problematic files.
639
+
631
640
  ${chalk.yellow('First-time Vercel Setup:')}
632
641
 
633
642
  ${chalk.cyan('1. Install Vercel CLI:')}
@@ -1,5 +1,5 @@
1
1
  module.exports = {
2
- "configVersion": "1.9.23",
2
+ "configVersion": "1.9.27",
3
3
  "docsDir": "docs",
4
4
  "outputDir": "html",
5
5
  "siteName": "@knowcode/doc-builder",
@@ -0,0 +1,126 @@
1
+ module.exports = {
2
+ "configVersion": "1.9.23",
3
+ "docsDir": "docs",
4
+ "outputDir": "html",
5
+ "siteName": "@knowcode/doc-builder",
6
+ "siteDescription": "Beautiful documentation with the least effort possible",
7
+ "favicon": "✨",
8
+ "features": {
9
+ "authentication": false,
10
+ "changelog": true,
11
+ "mermaid": true,
12
+ "mermaidEnhanced": true,
13
+ "tooltips": true,
14
+ "search": false,
15
+ "darkMode": true,
16
+ "phosphorIcons": true,
17
+ "phosphorWeight": "regular",
18
+ "phosphorSize": "1.2em",
19
+ "normalizeTitle": true,
20
+ "showPdfDownload": true,
21
+ "menuDefaultOpen": false,
22
+ "attachments": true,
23
+ "dynamicNavIcons": true,
24
+ "subtleColors": true,
25
+ "privateDirectoryAuth": false,
26
+ "banner": false,
27
+ "staticOutput": true
28
+ },
29
+ "staticOutputDir": "html-static",
30
+ "auth": {
31
+ "supabaseUrl": "https://xcihhnfcitjrwbynxmka.supabase.co",
32
+ "supabaseAnonKey": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InhjaWhobmZjaXRqcndieW54bWthIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTM0Mzc2MzcsImV4cCI6MjA2OTAxMzYzN30.zvWp3JFIR8fBIiwuFF5gqOR_Kxb42baZS5fsBz60XOY"
33
+ },
34
+ "changelog": {
35
+ "daysBack": 14,
36
+ "enabled": true
37
+ },
38
+ "banner": {
39
+ "enabled": false,
40
+ "text": "This documentation is a preview version - some content may be incomplete",
41
+ "icon": "fas fa-exclamation-triangle",
42
+ "type": "warning",
43
+ "dismissible": true
44
+ },
45
+ "folderOrder": [],
46
+ "folderDescriptions": {},
47
+ "folderIcons": {},
48
+ "deployment": {
49
+ "platform": "vercel",
50
+ "outputDirectory": "html"
51
+ },
52
+ "seo": {
53
+ "enabled": true,
54
+ "siteUrl": "https://doc-builder-delta.vercel.app",
55
+ "author": "Lindsay Smith",
56
+ "twitterHandle": "@planbbackups",
57
+ "language": "en-US",
58
+ "keywords": [
59
+ "documentation",
60
+ "markdown",
61
+ "static site generator",
62
+ "vercel",
63
+ "notion-style"
64
+ ],
65
+ "titleTemplate": "{pageTitle} | {siteName}",
66
+ "autoKeywords": true,
67
+ "keywordLimit": 7,
68
+ "descriptionFallback": "smart",
69
+ "organization": {
70
+ "name": "Knowcode Ltd",
71
+ "url": "https://knowcode.tech",
72
+ "logo": ""
73
+ },
74
+ "ogImage": "/og-default.png",
75
+ "generateSitemap": true,
76
+ "generateRobotsTxt": true,
77
+ "customMetaTags": [
78
+ {
79
+ "name": "google-site-verification",
80
+ "content": "FtzcDTf5BQ9K5EfnGazQkgU2U4FiN3ITzM7gHwqUAqQ"
81
+ },
82
+ {
83
+ "name": "msvalidate.01",
84
+ "content": "B2D8C4C12C530D47AA962B24CAA09630"
85
+ }
86
+ ]
87
+ },
88
+ "attachmentTypes": [
89
+ ".pdf",
90
+ ".doc",
91
+ ".docx",
92
+ ".xls",
93
+ ".xlsx",
94
+ ".csv",
95
+ ".ppt",
96
+ ".pptx",
97
+ ".txt",
98
+ ".rtf",
99
+ ".html",
100
+ ".htm",
101
+ ".zip",
102
+ ".tar",
103
+ ".gz",
104
+ ".7z",
105
+ ".rar",
106
+ ".png",
107
+ ".jpg",
108
+ ".jpeg",
109
+ ".gif",
110
+ ".svg",
111
+ ".webp",
112
+ ".ico",
113
+ ".bmp",
114
+ ".json",
115
+ ".xml",
116
+ ".yaml",
117
+ ".yml",
118
+ ".toml",
119
+ ".mp4",
120
+ ".mp3",
121
+ ".wav",
122
+ ".avi",
123
+ ".mov"
124
+ ],
125
+ "productionUrl": "https://doc-builder-delta.vercel.app"
126
+ };
package/html/11.png ADDED
Binary file
package/html/README.html CHANGED
@@ -101,8 +101,8 @@
101
101
  "name": "Knowcode Ltd",
102
102
  "url": "https://knowcode.tech"
103
103
  },
104
- "datePublished": "2025-08-07T14:41:11.030Z",
105
- "dateModified": "2025-08-07T14:41:11.030Z",
104
+ "datePublished": "2025-08-12T20:49:06.534Z",
105
+ "dateModified": "2025-08-12T20:49:06.534Z",
106
106
  "mainEntityOfPage": {
107
107
  "@type": "WebPage",
108
108
  "@id": "https://doc-builder-delta.vercel.app/README.html"
@@ -128,6 +128,7 @@
128
128
  </script>
129
129
  </head>
130
130
  <body>
131
+
131
132
  <!-- Header -->
132
133
  <header class="header">
133
134
  <div class="header-content">
@@ -135,7 +136,7 @@
135
136
 
136
137
  <div class="header-actions">
137
138
  <div class="deployment-info">
138
- <span class="deployment-date" title="Built with doc-builder v1.9.23">Last updated: Aug 7, 2025, 02:41 PM UTC</span>
139
+ <span class="deployment-date" title="Built with doc-builder v1.9.27">Last updated: Aug 12, 2025, 08:49 PM UTC</span>
139
140
  </div>
140
141
 
141
142
 
@@ -157,8 +158,9 @@
157
158
 
158
159
 
159
160
 
161
+
160
162
  <!-- Breadcrumbs -->
161
- <nav class="breadcrumbs" id="breadcrumbs">
163
+ <nav class="breadcrumbs " id="breadcrumbs" >
162
164
  <!-- Breadcrumbs will be generated by JavaScript -->
163
165
  </nav>
164
166
 
@@ -101,8 +101,8 @@
101
101
  "name": "Knowcode Ltd",
102
102
  "url": "https://knowcode.tech"
103
103
  },
104
- "datePublished": "2025-08-07T14:41:11.041Z",
105
- "dateModified": "2025-08-07T14:41:11.041Z",
104
+ "datePublished": "2025-08-12T20:49:06.547Z",
105
+ "dateModified": "2025-08-12T20:49:06.547Z",
106
106
  "mainEntityOfPage": {
107
107
  "@type": "WebPage",
108
108
  "@id": "https://doc-builder-delta.vercel.app/about-doc-builder.html"
@@ -128,6 +128,7 @@
128
128
  </script>
129
129
  </head>
130
130
  <body>
131
+
131
132
  <!-- Header -->
132
133
  <header class="header">
133
134
  <div class="header-content">
@@ -135,7 +136,7 @@
135
136
 
136
137
  <div class="header-actions">
137
138
  <div class="deployment-info">
138
- <span class="deployment-date" title="Built with doc-builder v1.9.23">Last updated: Aug 7, 2025, 02:41 PM UTC</span>
139
+ <span class="deployment-date" title="Built with doc-builder v1.9.27">Last updated: Aug 12, 2025, 08:49 PM UTC</span>
139
140
  </div>
140
141
 
141
142
 
@@ -157,8 +158,9 @@
157
158
 
158
159
 
159
160
 
161
+
160
162
  <!-- Breadcrumbs -->
161
- <nav class="breadcrumbs" id="breadcrumbs">
163
+ <nav class="breadcrumbs " id="breadcrumbs" >
162
164
  <!-- Breadcrumbs will be generated by JavaScript -->
163
165
  </nav>
164
166
 
@@ -534,6 +534,12 @@ pre code {
534
534
  overflow: hidden;
535
535
  }
536
536
 
537
+ /* Static build main wrapper - adjust for no header and smaller breadcrumb */
538
+ .breadcrumbs-static ~ .main-wrapper {
539
+ height: calc(100vh - 28px);
540
+ margin-top: 28px;
541
+ }
542
+
537
543
  .main-wrapper.banner-visible {
538
544
  height: calc(100vh - var(--header-height) - var(--breadcrumb-height) - 3.5rem);
539
545
  margin-top: calc(var(--header-height) + var(--breadcrumb-height) + 3.5rem);
@@ -990,6 +996,76 @@ tr:hover {
990
996
  gap: var(--space-2);
991
997
  }
992
998
 
999
+ /* Static build breadcrumbs - no header so top is 0 */
1000
+ .breadcrumbs-static {
1001
+ top: 0 !important;
1002
+ height: auto !important;
1003
+ min-height: 28px !important;
1004
+ padding: 0.15rem var(--space-6) !important;
1005
+ }
1006
+
1007
+ /* Breadcrumbs content wrapper for static builds */
1008
+ .breadcrumbs-content {
1009
+ display: flex;
1010
+ justify-content: space-between;
1011
+ align-items: center;
1012
+ width: 100%;
1013
+ }
1014
+
1015
+ .breadcrumbs-left {
1016
+ display: flex;
1017
+ align-items: center;
1018
+ gap: 0;
1019
+ }
1020
+
1021
+ .breadcrumbs-right {
1022
+ display: flex;
1023
+ align-items: center;
1024
+ gap: var(--space-3);
1025
+ }
1026
+
1027
+ /* Timestamp in breadcrumbs */
1028
+ .breadcrumb-date {
1029
+ color: var(--color-text-tertiary);
1030
+ font-size: var(--text-xs);
1031
+ white-space: nowrap;
1032
+ }
1033
+
1034
+ /* PDF button in breadcrumbs */
1035
+ .breadcrumb-pdf-btn {
1036
+ background: none;
1037
+ border: none;
1038
+ color: var(--color-text-secondary);
1039
+ cursor: pointer;
1040
+ padding: var(--space-1) var(--space-2);
1041
+ border-radius: var(--radius-md);
1042
+ transition: all 0.2s;
1043
+ font-size: 1rem;
1044
+ }
1045
+
1046
+ .breadcrumb-pdf-btn:hover {
1047
+ background: var(--color-bg-tertiary);
1048
+ color: var(--color-text-primary);
1049
+ }
1050
+
1051
+ /* Minimal breadcrumbs for homepage - even more compact */
1052
+ .breadcrumbs-minimal.breadcrumbs-static {
1053
+ height: auto !important;
1054
+ min-height: 24px !important;
1055
+ padding: 0.1rem var(--space-6) !important;
1056
+ }
1057
+
1058
+ /* Homepage breadcrumbs content - right-aligned only */
1059
+ .breadcrumbs-homepage {
1060
+ justify-content: flex-end !important;
1061
+ }
1062
+
1063
+ /* Adjust main wrapper for minimal breadcrumbs */
1064
+ .breadcrumbs-minimal.breadcrumbs-static ~ .main-wrapper {
1065
+ height: calc(100vh - 24px);
1066
+ margin-top: 24px;
1067
+ }
1068
+
993
1069
  .breadcrumbs.banner-visible {
994
1070
  top: calc(var(--header-height) + 3.5rem);
995
1071
  }
@@ -101,8 +101,8 @@
101
101
  "name": "Knowcode Ltd",
102
102
  "url": "https://knowcode.tech"
103
103
  },
104
- "datePublished": "2025-08-07T14:41:11.044Z",
105
- "dateModified": "2025-08-07T14:41:11.044Z",
104
+ "datePublished": "2025-08-12T20:49:06.551Z",
105
+ "dateModified": "2025-08-12T20:49:06.551Z",
106
106
  "mainEntityOfPage": {
107
107
  "@type": "WebPage",
108
108
  "@id": "https://doc-builder-delta.vercel.app/documentation-index.html"
@@ -128,6 +128,7 @@
128
128
  </script>
129
129
  </head>
130
130
  <body>
131
+
131
132
  <!-- Header -->
132
133
  <header class="header">
133
134
  <div class="header-content">
@@ -135,7 +136,7 @@
135
136
 
136
137
  <div class="header-actions">
137
138
  <div class="deployment-info">
138
- <span class="deployment-date" title="Built with doc-builder v1.9.23">Last updated: Aug 7, 2025, 02:41 PM UTC</span>
139
+ <span class="deployment-date" title="Built with doc-builder v1.9.27">Last updated: Aug 12, 2025, 08:49 PM UTC</span>
139
140
  </div>
140
141
 
141
142
 
@@ -157,8 +158,9 @@
157
158
 
158
159
 
159
160
 
161
+
160
162
  <!-- Breadcrumbs -->
161
- <nav class="breadcrumbs" id="breadcrumbs">
163
+ <nav class="breadcrumbs " id="breadcrumbs" >
162
164
  <!-- Breadcrumbs will be generated by JavaScript -->
163
165
  </nav>
164
166
 
@@ -101,8 +101,8 @@
101
101
  "name": "Knowcode Ltd",
102
102
  "url": "https://knowcode.tech"
103
103
  },
104
- "datePublished": "2025-08-07T14:41:11.048Z",
105
- "dateModified": "2025-08-07T14:41:11.048Z",
104
+ "datePublished": "2025-08-12T20:49:06.556Z",
105
+ "dateModified": "2025-08-12T20:49:06.556Z",
106
106
  "mainEntityOfPage": {
107
107
  "@type": "WebPage",
108
108
  "@id": "https://doc-builder-delta.vercel.app/guides/authentication-default-change.html"
@@ -134,6 +134,7 @@
134
134
  </script>
135
135
  </head>
136
136
  <body>
137
+
137
138
  <!-- Header -->
138
139
  <header class="header">
139
140
  <div class="header-content">
@@ -141,7 +142,7 @@
141
142
 
142
143
  <div class="header-actions">
143
144
  <div class="deployment-info">
144
- <span class="deployment-date" title="Built with doc-builder v1.9.23">Last updated: Aug 7, 2025, 02:41 PM UTC</span>
145
+ <span class="deployment-date" title="Built with doc-builder v1.9.27">Last updated: Aug 12, 2025, 08:49 PM UTC</span>
145
146
  </div>
146
147
 
147
148
 
@@ -163,8 +164,9 @@
163
164
 
164
165
 
165
166
 
167
+
166
168
  <!-- Breadcrumbs -->
167
- <nav class="breadcrumbs" id="breadcrumbs">
169
+ <nav class="breadcrumbs " id="breadcrumbs" >
168
170
  <!-- Breadcrumbs will be generated by JavaScript -->
169
171
  </nav>
170
172
 
@@ -101,8 +101,8 @@
101
101
  "name": "Knowcode Ltd",
102
102
  "url": "https://knowcode.tech"
103
103
  },
104
- "datePublished": "2025-08-07T14:41:11.051Z",
105
- "dateModified": "2025-08-07T14:41:11.051Z",
104
+ "datePublished": "2025-08-12T20:49:06.560Z",
105
+ "dateModified": "2025-08-12T20:49:06.560Z",
106
106
  "mainEntityOfPage": {
107
107
  "@type": "WebPage",
108
108
  "@id": "https://doc-builder-delta.vercel.app/guides/authentication-guide.html"
@@ -134,6 +134,7 @@
134
134
  </script>
135
135
  </head>
136
136
  <body>
137
+
137
138
  <!-- Header -->
138
139
  <header class="header">
139
140
  <div class="header-content">
@@ -141,7 +142,7 @@
141
142
 
142
143
  <div class="header-actions">
143
144
  <div class="deployment-info">
144
- <span class="deployment-date" title="Built with doc-builder v1.9.23">Last updated: Aug 7, 2025, 02:41 PM UTC</span>
145
+ <span class="deployment-date" title="Built with doc-builder v1.9.27">Last updated: Aug 12, 2025, 08:49 PM UTC</span>
145
146
  </div>
146
147
 
147
148
 
@@ -163,8 +164,9 @@
163
164
 
164
165
 
165
166
 
167
+
166
168
  <!-- Breadcrumbs -->
167
- <nav class="breadcrumbs" id="breadcrumbs">
169
+ <nav class="breadcrumbs " id="breadcrumbs" >
168
170
  <!-- Breadcrumbs will be generated by JavaScript -->
169
171
  </nav>
170
172