docula 2.0.0 → 2.2.0

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.
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  # Features
12
12
  * No configuration required. Just setup the folder structure with a logo, favicon, and css file.
13
13
  * Builds a static website that can be hosted anywhere.
14
- * Simple search is provided by default out of the box.
14
+ * Built-in, fully client-side search (⌘K / Ctrl K) with a keyboard-navigable modal and deep links to matching headings — no external service required.
15
15
  * Support for single page with readme or multiple markdown pages in a docs folder.
16
16
  * Full TypeScript support with typed configuration and IDE autocompletion.
17
17
  * For more complex projects easily add a `docula.config.ts` (TypeScript) or `docula.config.mjs` (JavaScript) file to customize the build process with lifecycle hooks and `DoculaConsole` logging.
@@ -48,6 +48,7 @@
48
48
  - [Standalone Binary](#standalone-binary)
49
49
  - [Open Source Examples](#open-source-examples)
50
50
  - [Code of Conduct and Contributing](#code-of-conduct-and-contributing)
51
+ - [Security](#security)
51
52
  - [License - MIT](#license)
52
53
 
53
54
  # Standalone Binary
@@ -97,7 +98,6 @@ The CI workflow (`.github/workflows/build-binaries.yaml`) builds each platform n
97
98
  |---|---|---|
98
99
  | Linux x64 | `ubuntu-latest` | `docula-linux-x64` |
99
100
  | macOS ARM64 | `macos-latest` | `docula-macos-arm64` |
100
- | macOS x64 | `macos-13` | `docula-macos-x64` |
101
101
  | Windows x64 | `windows-latest` | `docula-windows-x64` |
102
102
 
103
103
  Binaries are uploaded as build artifacts on every run and attached to GitHub releases automatically.
@@ -113,5 +113,19 @@ See Docula in action with these open source projects that use it for their docum
113
113
  # Code of Conduct and Contributing
114
114
  [Code of Conduct](CODE_OF_CONDUCT.md) and [Contributing](CONTRIBUTING.md) guidelines.
115
115
 
116
+ # Security
117
+ We take the security of Docula seriously and have multiple layers of protection in place:
118
+
119
+ - **Aikido Security**: Continuous scanning of our codebase, dependencies, and infrastructure for vulnerabilities. Review our public audit report by clicking the badge above.
120
+ - **Pull Request Scans**: Every pull request against `main` is automatically scanned for security issues before merging.
121
+ - **CodeQL Analysis**: GitHub CodeQL static analysis runs on every push and pull request targeting `main`.
122
+ - **npm Package Provenance**: Releases are published with [npm provenance](https://docs.npmjs.com/generating-provenance-statements) for cryptographically verifiable links to source and build.
123
+
124
+ <a href="https://app.aikido.dev/audit-report/external/lZAT2DfBsT11ZQfpYwClKi6s/request" target="_blank" rel="noopener noreferrer">
125
+ <img src="https://app.aikido.dev/assets/badges/full-light-theme.svg" alt="Aikido Security Audit Report" height="40" />
126
+ </a>
127
+
128
+ For full details, see [SECURITY.md](SECURITY.md) or our [Security Guidelines](https://docula.org/docs/project-guidelines/security/).
129
+
116
130
  # License
117
131
  MIT © [Jared Wray](https://jaredwray.com)
package/dist/docula.d.ts CHANGED
@@ -202,7 +202,9 @@ type DoculaData = {
202
202
  }>;
203
203
  googleTagManager?: string;
204
204
  isGtag?: boolean;
205
+ googleTagManagerParams?: string;
205
206
  enableLlmsTxt?: boolean;
207
+ enableSearch?: boolean;
206
208
  hasFeed?: boolean;
207
209
  lastModified?: string;
208
210
  homeUrl?: string;
@@ -346,6 +348,11 @@ declare class DoculaOptions {
346
348
  * When true, generates llms.txt and llms-full.txt files for the built site.
347
349
  */
348
350
  enableLlmsTxt: boolean;
351
+ /**
352
+ * When true, generates a search index (search-index.json) and renders the
353
+ * search UI in templates that support it. Set to false to disable search.
354
+ */
355
+ enableSearch: boolean;
349
356
  /**
350
357
  * Override the default theme toggle. By default the site follows the system
351
358
  * preference. Set to "light" or "dark" to use that theme when no user
@@ -420,6 +427,16 @@ declare class DoculaOptions {
420
427
  * When set, injects the appropriate tracking script on every page.
421
428
  */
422
429
  googleTagManager?: string;
430
+ /**
431
+ * Google Tag Manager environment auth token (gtm_auth). Only applies to
432
+ * GTM container IDs; requires `googleTagManagerEnv` to also be set.
433
+ */
434
+ googleTagManagerAuth?: string;
435
+ /**
436
+ * Google Tag Manager environment name (gtm_preview), e.g., "env-3". Only
437
+ * applies to GTM container IDs; requires `googleTagManagerAuth` to also be set.
438
+ */
439
+ googleTagManagerEnv?: string;
423
440
  /**
424
441
  * AI-powered metadata enrichment configuration. When set, uses AI to fill
425
442
  * missing OpenGraph and HTML meta tag fields during the build.
@@ -469,6 +486,7 @@ declare class DoculaBuilder {
469
486
  buildChangelogFeedJson(data: DoculaData): Promise<void>;
470
487
  buildChangelogLatestFeedJson(data: DoculaData): Promise<void>;
471
488
  buildLlmsFiles(data: DoculaData): Promise<void>;
489
+ buildSearchIndex(data: DoculaData): Promise<void>;
472
490
  resolveOpenGraphData(data: DoculaData, pageUrl: string, pageData?: Partial<DoculaDocument> & {
473
491
  previewImage?: string;
474
492
  preview?: string;