@knowcode/doc-builder 1.5.0 → 1.5.2

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.
@@ -23,7 +23,8 @@
23
23
  "Bash(npm:*)",
24
24
  "Bash(vercel project:*)",
25
25
  "Bash(vercel alias:*)",
26
- "Bash(find:*)"
26
+ "Bash(find:*)",
27
+ "Bash(diff:*)"
27
28
  ],
28
29
  "deny": []
29
30
  }
package/CHANGELOG.md CHANGED
@@ -5,6 +5,61 @@ 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.5.2] - 2025-07-22
9
+
10
+ ### Added
11
+ - Floating menu button for mobile devices that appears when scrolling down
12
+ - Scroll detection to show/hide floating menu button based on scroll position
13
+ - Smooth animations and transitions for floating button appearance
14
+ - Icon changes between hamburger and close based on sidebar state
15
+
16
+ ### Fixed
17
+ - Fixed mobile menu inaccessibility when scrolled down the page
18
+ - Menu toggle button in header was scrolling off-screen, preventing sidebar access
19
+ - Mobile users can now always access the navigation menu regardless of scroll position
20
+
21
+ ### Background
22
+ - Users reported being unable to open the sidebar menu on mobile when scrolled down
23
+ - Implemented floating action button (FAB) pattern common in mobile apps
24
+ - Button appears when user scrolls past the header and disappears when scrolling back up
25
+
26
+ ## [1.5.1] - 2025-07-21
27
+
28
+ ### Added
29
+ - Automatic redirect from .md URLs to their corresponding .html files
30
+ - Client-side JavaScript to intercept clicks on .md links and redirect to .html
31
+ - Custom 404.html page with automatic redirect logic for direct .md URL navigation
32
+ - Enhanced vercel.json generation to include 404 page routing
33
+
34
+ ### Fixed
35
+ - Fixed 404 errors when clicking or navigating to .md links
36
+ - Links like `claude-workflow-guide.md` now automatically redirect to `claude-workflow-guide.html`
37
+
38
+ ### Background
39
+ - Users reported that links to .md files resulted in 404 errors
40
+ - Implemented client-side solution to handle both link clicks and direct navigation
41
+ - Works seamlessly with Vercel's cleanUrls configuration
42
+
43
+ ## [1.5.0] - 2025-07-21
44
+
45
+ ### Added
46
+ - Comprehensive SEO features including meta tags, Open Graph, Twitter Cards
47
+ - JSON-LD structured data for better search engine understanding
48
+ - Automatic sitemap.xml and robots.txt generation
49
+ - Interactive `setup-seo` CLI command to configure SEO settings
50
+ - SEO configuration options in doc-builder.config.js
51
+ - Production URL configuration with `set-production-url` command
52
+ - Support for custom production URLs via config file, CLI command, or deployment flag
53
+
54
+ ### Improved
55
+ - Better deployment URL detection with multiple fallback methods
56
+ - Enhanced meta tag generation with author, keywords, and canonical URLs
57
+ - Social media preview support with customizable images and descriptions
58
+
59
+ ### Documentation
60
+ - Added comprehensive SEO guide explaining all features and configuration
61
+ - Updated troubleshooting guide with npx cache clearing instructions
62
+
8
63
  ## [1.4.26] - 2025-07-21
9
64
 
10
65
  ### Improved
package/README.md CHANGED
@@ -139,14 +139,6 @@ module.exports = {
139
139
  };
140
140
  ```
141
141
 
142
- ## Presets
143
-
144
- Use the `notion-inspired` preset for a clean, modern documentation style:
145
-
146
- ```bash
147
- npx @knowcode/doc-builder build --preset notion-inspired
148
- ```
149
-
150
142
  ## Commands
151
143
 
152
144
  ### set-production-url
@@ -0,0 +1,115 @@
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
+ <title>Page Not Found - Redirecting...</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
8
+ <style>
9
+ body {
10
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
11
+ margin: 0;
12
+ padding: 0;
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ min-height: 100vh;
17
+ background-color: #f7f7f5;
18
+ color: #37352f;
19
+ }
20
+ .container {
21
+ text-align: center;
22
+ padding: 2rem;
23
+ max-width: 600px;
24
+ }
25
+ h1 {
26
+ font-size: 3rem;
27
+ margin: 0 0 1rem 0;
28
+ color: #37352f;
29
+ }
30
+ p {
31
+ font-size: 1.125rem;
32
+ line-height: 1.6;
33
+ color: #6b6b6b;
34
+ margin: 0 0 2rem 0;
35
+ }
36
+ a {
37
+ color: #0366d6;
38
+ text-decoration: none;
39
+ }
40
+ a:hover {
41
+ text-decoration: underline;
42
+ }
43
+ .emoji {
44
+ font-size: 4rem;
45
+ margin-bottom: 1rem;
46
+ }
47
+ .loading {
48
+ display: none;
49
+ color: #0366d6;
50
+ margin-top: 1rem;
51
+ }
52
+ .redirect-message {
53
+ display: none;
54
+ background-color: #e8f4fd;
55
+ border: 1px solid #c3e0f7;
56
+ padding: 1rem;
57
+ border-radius: 8px;
58
+ margin-top: 1rem;
59
+ }
60
+ </style>
61
+ </head>
62
+ <body>
63
+ <div class="container">
64
+ <div class="emoji">🔍</div>
65
+ <h1>404</h1>
66
+ <p id="message">The page you're looking for doesn't exist.</p>
67
+ <div id="redirect-message" class="redirect-message">
68
+ Redirecting to the correct page...
69
+ </div>
70
+ <p id="loading" class="loading">Redirecting...</p>
71
+ <p>
72
+ <a href="/" id="home-link">Go to Home</a>
73
+ </p>
74
+ </div>
75
+
76
+ <script>
77
+ // Check if the URL ends with .md
78
+ const pathname = window.location.pathname;
79
+
80
+ if (pathname.endsWith('.md')) {
81
+ // Convert .md to .html
82
+ const htmlPath = pathname.replace(/\.md$/, '.html');
83
+
84
+ // Show redirect message
85
+ document.getElementById('message').textContent = 'Found a markdown link. Redirecting to the HTML version...';
86
+ document.getElementById('redirect-message').style.display = 'block';
87
+ document.getElementById('loading').style.display = 'block';
88
+
89
+ // Redirect after a brief delay to show the message
90
+ setTimeout(() => {
91
+ window.location.replace(htmlPath);
92
+ }, 500);
93
+ } else {
94
+ // For true 404s, show the standard message
95
+ document.getElementById('message').textContent = "The page you're looking for doesn't exist.";
96
+
97
+ // Also check if we can suggest a similar page
98
+ // Remove common suffixes and try to find a match
99
+ const basePath = pathname
100
+ .replace(/\.(html|htm|php|asp|aspx)$/, '')
101
+ .replace(/\/$/, '');
102
+
103
+ if (basePath && basePath !== pathname) {
104
+ document.getElementById('message').innerHTML =
105
+ `The page you're looking for doesn't exist.<br>
106
+ <small>Did you mean <a href="${basePath}.html">${basePath}.html</a>?</small>`;
107
+ }
108
+ }
109
+
110
+ // Update home link to use the correct base URL
111
+ const baseUrl = window.location.origin;
112
+ document.getElementById('home-link').href = baseUrl;
113
+ </script>
114
+ </body>
115
+ </html>
@@ -1578,6 +1578,62 @@ tr:hover {
1578
1578
 
1579
1579
  /* Remove custom positioning variables - tooltips always go right */
1580
1580
 
1581
+ /* Floating Menu Button */
1582
+ .floating-menu-toggle {
1583
+ position: fixed;
1584
+ bottom: var(--space-6);
1585
+ right: var(--space-6);
1586
+ width: 56px;
1587
+ height: 56px;
1588
+ border-radius: 50%;
1589
+ background: var(--color-accent-blue);
1590
+ color: white;
1591
+ border: none;
1592
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1);
1593
+ display: flex;
1594
+ align-items: center;
1595
+ justify-content: center;
1596
+ font-size: 1.25rem;
1597
+ cursor: pointer;
1598
+ z-index: 1001; /* Above sidebar */
1599
+ opacity: 0;
1600
+ transform: scale(0.8) translateY(20px);
1601
+ transition: all var(--duration-normal) var(--easing-out);
1602
+ -webkit-tap-highlight-color: transparent;
1603
+ }
1604
+
1605
+ .floating-menu-toggle.visible {
1606
+ opacity: 1;
1607
+ transform: scale(1) translateY(0);
1608
+ }
1609
+
1610
+ .floating-menu-toggle:hover {
1611
+ transform: scale(1.1) translateY(0);
1612
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.15);
1613
+ }
1614
+
1615
+ .floating-menu-toggle:active {
1616
+ transform: scale(0.95) translateY(0);
1617
+ }
1618
+
1619
+ .floating-menu-toggle i {
1620
+ transition: transform var(--duration-fast) var(--easing-out);
1621
+ }
1622
+
1623
+ .floating-menu-toggle:hover i {
1624
+ transform: rotate(90deg);
1625
+ }
1626
+
1627
+ /* Dark mode styles for floating button */
1628
+ .dark-mode .floating-menu-toggle {
1629
+ background: var(--color-accent-blue);
1630
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.2);
1631
+ }
1632
+
1633
+ .dark-mode .floating-menu-toggle:hover {
1634
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4), 0 3px 6px rgba(0, 0, 0, 0.3);
1635
+ }
1636
+
1581
1637
  /* Mobile adjustments */
1582
1638
  @media (max-width: 768px) {
1583
1639
  /* Disable tooltips on mobile to prevent overlap issues */
package/assets/js/main.js CHANGED
@@ -518,6 +518,92 @@ if (menuToggle) {
518
518
  });
519
519
  }
520
520
 
521
+ // Floating Menu Button for Mobile
522
+ function initFloatingMenuButton() {
523
+ // Only initialize on mobile
524
+ if (window.innerWidth > 768) return;
525
+
526
+ // Check if button already exists
527
+ if (document.getElementById('floating-menu-toggle')) return;
528
+
529
+ // Create floating button
530
+ const floatingButton = document.createElement('button');
531
+ floatingButton.id = 'floating-menu-toggle';
532
+ floatingButton.className = 'floating-menu-toggle';
533
+ floatingButton.setAttribute('aria-label', 'Toggle menu');
534
+ floatingButton.innerHTML = '<i class="fas fa-bars"></i>';
535
+ floatingButton.style.display = 'none'; // Hidden by default
536
+
537
+ // Add to body
538
+ document.body.appendChild(floatingButton);
539
+
540
+ // Toggle sidebar on click
541
+ floatingButton.addEventListener('click', () => {
542
+ sidebar.classList.toggle('open');
543
+ // Update icon based on state
544
+ const icon = floatingButton.querySelector('i');
545
+ if (sidebar.classList.contains('open')) {
546
+ icon.className = 'fas fa-times';
547
+ } else {
548
+ icon.className = 'fas fa-bars';
549
+ }
550
+ });
551
+
552
+ // Show/hide based on scroll position
553
+ let scrollTimeout;
554
+
555
+ window.addEventListener('scroll', () => {
556
+ clearTimeout(scrollTimeout);
557
+ scrollTimeout = setTimeout(() => {
558
+ const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
559
+ const headerHeight = document.querySelector('.header')?.offsetHeight || 64;
560
+
561
+ // Show floating button when scrolled past header
562
+ if (scrollTop > headerHeight + 50) {
563
+ floatingButton.style.display = 'flex';
564
+ // Add slight delay for smooth appearance
565
+ setTimeout(() => {
566
+ floatingButton.classList.add('visible');
567
+ }, 10);
568
+ } else {
569
+ floatingButton.classList.remove('visible');
570
+ // Hide after transition completes
571
+ setTimeout(() => {
572
+ if (!floatingButton.classList.contains('visible')) {
573
+ floatingButton.style.display = 'none';
574
+ }
575
+ }, 300);
576
+ }
577
+ }, 100);
578
+ });
579
+
580
+ // Update icon when sidebar state changes from other sources
581
+ const observer = new MutationObserver(() => {
582
+ const icon = floatingButton.querySelector('i');
583
+ if (sidebar.classList.contains('open')) {
584
+ icon.className = 'fas fa-times';
585
+ } else {
586
+ icon.className = 'fas fa-bars';
587
+ }
588
+ });
589
+
590
+ observer.observe(sidebar, {
591
+ attributes: true,
592
+ attributeFilter: ['class']
593
+ });
594
+ }
595
+
596
+ // Initialize floating button on load and resize
597
+ document.addEventListener('DOMContentLoaded', initFloatingMenuButton);
598
+ window.addEventListener('resize', () => {
599
+ const existingButton = document.getElementById('floating-menu-toggle');
600
+ if (window.innerWidth > 768 && existingButton) {
601
+ existingButton.remove();
602
+ } else if (window.innerWidth <= 768 && !existingButton) {
603
+ initFloatingMenuButton();
604
+ }
605
+ });
606
+
521
607
  // Prevent sidebar from closing when clicking nav items
522
608
  // Only close when clicking outside the sidebar or the close button
523
609
  document.addEventListener('click', (e) => {
@@ -1318,8 +1404,31 @@ function initTooltips() {
1318
1404
  });
1319
1405
  }
1320
1406
 
1407
+ // Handle .md link redirects
1408
+ function initMarkdownLinkRedirects() {
1409
+ // Check if current URL ends with .md and redirect
1410
+ if (window.location.pathname.endsWith('.md')) {
1411
+ const htmlPath = window.location.pathname.replace(/\.md$/, '.html');
1412
+ console.log(`Redirecting from .md to .html: ${htmlPath}`);
1413
+ window.location.replace(htmlPath);
1414
+ return; // Stop execution as we're redirecting
1415
+ }
1416
+
1417
+ // Intercept clicks on .md links
1418
+ document.addEventListener('click', function(e) {
1419
+ const link = e.target.closest('a');
1420
+ if (link && link.href && link.href.endsWith('.md')) {
1421
+ e.preventDefault();
1422
+ const htmlUrl = link.href.replace(/\.md$/, '.html');
1423
+ console.log(`Converting .md link to .html: ${htmlUrl}`);
1424
+ window.location.href = htmlUrl;
1425
+ }
1426
+ });
1427
+ }
1428
+
1321
1429
  // Initialize on DOM Load
1322
1430
  document.addEventListener('DOMContentLoaded', () => {
1431
+ initMarkdownLinkRedirects();
1323
1432
  highlightNavigation();
1324
1433
  generateTableOfContents();
1325
1434
  initSidebarResize();
@@ -1,38 +1,34 @@
1
1
  module.exports = {
2
- // Site info
3
- siteName: 'Doc Builder',
4
- siteDescription: 'Beautiful documentation with the least effort possible',
5
-
6
- // Directories
7
- docsDir: 'docs',
8
- outputDir: 'html',
9
-
10
- // Production URL
11
- productionUrl: 'https://doc-builder-delta.vercel.app',
12
-
13
- // Features
14
- features: {
15
- authentication: false,
16
- changelog: true,
17
- mermaid: true,
18
- darkMode: true
2
+ "siteName": "Doc Builder",
3
+ "siteDescription": "Beautiful documentation with the least effort possible",
4
+ "docsDir": "docs",
5
+ "outputDir": "html",
6
+ "productionUrl": "https://doc-builder-delta.vercel.app",
7
+ "features": {
8
+ "authentication": false,
9
+ "changelog": true,
10
+ "mermaid": true,
11
+ "darkMode": true
19
12
  },
20
-
21
- // SEO configuration
22
- seo: {
23
- enabled: true,
24
- siteUrl: 'https://doc-builder-delta.vercel.app',
25
- author: 'Lindsay Smith',
26
- twitterHandle: '@planbbackups',
27
- language: 'en-US',
28
- keywords: ['documentation', 'markdown', 'static site generator', 'vercel', 'notion-style'],
29
- organization: {
30
- name: 'KnowCode',
31
- url: 'https://knowcode.com'
32
- },
33
- ogImage: '/og-default.png',
34
- generateSitemap: true,
35
- generateRobotsTxt: true,
36
- customMetaTags: []
13
+ "seo": {
14
+ "enabled": true,
15
+ "siteUrl": "https://doc-builder-delta.vercel.app",
16
+ "author": "Lindsay Smith",
17
+ "twitterHandle": "@planbbackups",
18
+ "language": "en-US",
19
+ "keywords": [
20
+ "documentation",
21
+ "markdown",
22
+ "static site generator",
23
+ "vercel",
24
+ "notion-style"
25
+ ],
26
+ "generateSitemap": true,
27
+ "generateRobotsTxt": true,
28
+ "ogImage": "/og-default.png",
29
+ "organization": {
30
+ "name": "Knowcode Ltd",
31
+ "url": "https://knowcode.tech"
32
+ }
37
33
  }
38
- };
34
+ };
package/html/404.html ADDED
@@ -0,0 +1,115 @@
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
+ <title>Page Not Found - Redirecting...</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
8
+ <style>
9
+ body {
10
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
11
+ margin: 0;
12
+ padding: 0;
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ min-height: 100vh;
17
+ background-color: #f7f7f5;
18
+ color: #37352f;
19
+ }
20
+ .container {
21
+ text-align: center;
22
+ padding: 2rem;
23
+ max-width: 600px;
24
+ }
25
+ h1 {
26
+ font-size: 3rem;
27
+ margin: 0 0 1rem 0;
28
+ color: #37352f;
29
+ }
30
+ p {
31
+ font-size: 1.125rem;
32
+ line-height: 1.6;
33
+ color: #6b6b6b;
34
+ margin: 0 0 2rem 0;
35
+ }
36
+ a {
37
+ color: #0366d6;
38
+ text-decoration: none;
39
+ }
40
+ a:hover {
41
+ text-decoration: underline;
42
+ }
43
+ .emoji {
44
+ font-size: 4rem;
45
+ margin-bottom: 1rem;
46
+ }
47
+ .loading {
48
+ display: none;
49
+ color: #0366d6;
50
+ margin-top: 1rem;
51
+ }
52
+ .redirect-message {
53
+ display: none;
54
+ background-color: #e8f4fd;
55
+ border: 1px solid #c3e0f7;
56
+ padding: 1rem;
57
+ border-radius: 8px;
58
+ margin-top: 1rem;
59
+ }
60
+ </style>
61
+ </head>
62
+ <body>
63
+ <div class="container">
64
+ <div class="emoji">🔍</div>
65
+ <h1>404</h1>
66
+ <p id="message">The page you're looking for doesn't exist.</p>
67
+ <div id="redirect-message" class="redirect-message">
68
+ Redirecting to the correct page...
69
+ </div>
70
+ <p id="loading" class="loading">Redirecting...</p>
71
+ <p>
72
+ <a href="/" id="home-link">Go to Home</a>
73
+ </p>
74
+ </div>
75
+
76
+ <script>
77
+ // Check if the URL ends with .md
78
+ const pathname = window.location.pathname;
79
+
80
+ if (pathname.endsWith('.md')) {
81
+ // Convert .md to .html
82
+ const htmlPath = pathname.replace(/\.md$/, '.html');
83
+
84
+ // Show redirect message
85
+ document.getElementById('message').textContent = 'Found a markdown link. Redirecting to the HTML version...';
86
+ document.getElementById('redirect-message').style.display = 'block';
87
+ document.getElementById('loading').style.display = 'block';
88
+
89
+ // Redirect after a brief delay to show the message
90
+ setTimeout(() => {
91
+ window.location.replace(htmlPath);
92
+ }, 500);
93
+ } else {
94
+ // For true 404s, show the standard message
95
+ document.getElementById('message').textContent = "The page you're looking for doesn't exist.";
96
+
97
+ // Also check if we can suggest a similar page
98
+ // Remove common suffixes and try to find a match
99
+ const basePath = pathname
100
+ .replace(/\.(html|htm|php|asp|aspx)$/, '')
101
+ .replace(/\/$/, '');
102
+
103
+ if (basePath && basePath !== pathname) {
104
+ document.getElementById('message').innerHTML =
105
+ `The page you're looking for doesn't exist.<br>
106
+ <small>Did you mean <a href="${basePath}.html">${basePath}.html</a>?</small>`;
107
+ }
108
+ }
109
+
110
+ // Update home link to use the correct base URL
111
+ const baseUrl = window.location.origin;
112
+ document.getElementById('home-link').href = baseUrl;
113
+ </script>
114
+ </body>
115
+ </html>
package/html/README.html CHANGED
@@ -55,11 +55,11 @@
55
55
  },
56
56
  "publisher": {
57
57
  "@type": "Organization",
58
- "name": "KnowCode",
59
- "url": "https://knowcode.com"
58
+ "name": "Knowcode Ltd",
59
+ "url": "https://knowcode.tech"
60
60
  },
61
- "datePublished": "2025-07-21T20:24:35.105Z",
62
- "dateModified": "2025-07-21T20:24:35.105Z",
61
+ "datePublished": "2025-07-22T05:55:46.703Z",
62
+ "dateModified": "2025-07-22T05:55:46.703Z",
63
63
  "mainEntityOfPage": {
64
64
  "@type": "WebPage",
65
65
  "@id": "https://doc-builder-delta.vercel.app/README.html"
@@ -92,7 +92,7 @@
92
92
 
93
93
  <div class="header-actions">
94
94
  <div class="deployment-info">
95
- <span class="deployment-date" title="Built with doc-builder v1.4.26">Last updated: Jul 21, 2025, 08:24 PM UTC</span>
95
+ <span class="deployment-date" title="Built with doc-builder v1.5.1">Last updated: Jul 22, 2025, 05:55 AM UTC</span>
96
96
  </div>
97
97
 
98
98
 
@@ -142,7 +142,6 @@
142
142
  </a>
143
143
  <div class="nav-content" >
144
144
  <a href="/README.html" class="nav-item active" data-tooltip="@knowcode/doc-builder."><i class="fas fa-file-alt"></i> Overview</a>
145
- <a href="/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="fas fa-file-alt"></i> Claude Workflow Guide</a>
146
145
  <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="fas fa-file-alt"></i> Documentation Index</a>
147
146
  <a href="/vercel-cli-setup-guide.html" class="nav-item" data-tooltip="This guide provides comprehensive instructions for installing and configuring the Vercel CLI across different operating systems and environments."><i class="fas fa-file-alt"></i> Vercel Cli Setup Guide</a>
148
147
  <a href="/vercel-first-time-setup-guide.html" class="nav-item" data-tooltip="This guide provides a detailed explanation of every prompt you&#039;ll encounter during the first-time Vercel setup process when using."><i class="fas fa-file-alt"></i> Vercel First Time Setup Guide</a></div></div>
@@ -152,6 +151,7 @@
152
151
  </a>
153
152
  <div class="nav-content" id="nav-guides-1">
154
153
  <a href="/guides/authentication-guide.html" class="nav-item" data-tooltip="This guide explains how to configure and use the built-in authentication feature in @knowcode/doc-builder to protect your documentation with basic..."><i class="fas fa-file-alt"></i> Authentication Guide</a>
154
+ <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="fas fa-file-alt"></i> Claude Workflow Guide</a>
155
155
  <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="fas fa-file-alt"></i> Documentation Standards</a>
156
156
  <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="fas fa-file-alt"></i> Seo Guide</a>
157
157
  <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="fas fa-file-alt"></i> Troubleshooting Guide</a></div></div>
@@ -55,11 +55,11 @@
55
55
  },
56
56
  "publisher": {
57
57
  "@type": "Organization",
58
- "name": "KnowCode",
59
- "url": "https://knowcode.com"
58
+ "name": "Knowcode Ltd",
59
+ "url": "https://knowcode.tech"
60
60
  },
61
- "datePublished": "2025-07-21T20:24:35.114Z",
62
- "dateModified": "2025-07-21T20:24:35.114Z",
61
+ "datePublished": "2025-07-21T20:43:20.146Z",
62
+ "dateModified": "2025-07-21T20:43:20.146Z",
63
63
  "mainEntityOfPage": {
64
64
  "@type": "WebPage",
65
65
  "@id": "https://doc-builder-delta.vercel.app/claude-workflow-guide.html"
@@ -92,7 +92,7 @@
92
92
 
93
93
  <div class="header-actions">
94
94
  <div class="deployment-info">
95
- <span class="deployment-date" title="Built with doc-builder v1.4.26">Last updated: Jul 21, 2025, 08:24 PM UTC</span>
95
+ <span class="deployment-date" title="Built with doc-builder v1.5.1">Last updated: Jul 21, 2025, 08:43 PM UTC</span>
96
96
  </div>
97
97
 
98
98