docula 0.41.0 → 0.50.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.
Files changed (50) hide show
  1. package/README.md +110 -0
  2. package/dist/docula.d.ts +156 -0
  3. package/dist/docula.js +1628 -0
  4. package/package.json +28 -24
  5. package/{template → templates/classic}/css/base.css +10 -0
  6. package/{template → templates/classic}/css/multipage.css +7 -0
  7. package/{template → templates/classic}/docs.hbs +1 -1
  8. package/{template/index.hbs → templates/classic/home.hbs} +7 -1
  9. package/templates/classic/includes/multipage/api-reference.hbs +1 -0
  10. package/templates/classic/includes/multipage/documentation.hbs +1 -0
  11. package/{template → templates/classic}/includes/multipage/hero.hbs +1 -2
  12. package/{template → templates/classic}/includes/multipage/home.hbs +3 -3
  13. package/{template → templates/classic}/includes/singlepage/content.hbs +3 -3
  14. package/templates/modern/api.hbs +30 -0
  15. package/templates/modern/changelog-entry.hbs +36 -0
  16. package/templates/modern/changelog.hbs +38 -0
  17. package/templates/modern/css/highlight/highlight.min.js +1433 -0
  18. package/templates/modern/css/highlight/styles/base16/docula.css +123 -0
  19. package/templates/modern/css/home.css +96 -0
  20. package/templates/modern/css/styles.css +697 -0
  21. package/templates/modern/docs.hbs +30 -0
  22. package/templates/modern/home.hbs +51 -0
  23. package/templates/modern/includes/api-reference.hbs +1 -0
  24. package/templates/modern/includes/doc.hbs +18 -0
  25. package/templates/modern/includes/documentation.hbs +1 -0
  26. package/templates/modern/includes/footer.hbs +6 -0
  27. package/templates/modern/includes/header-bar.hbs +57 -0
  28. package/templates/modern/includes/header.hbs +15 -0
  29. package/templates/modern/includes/hero.hbs +11 -0
  30. package/templates/modern/includes/home.hbs +46 -0
  31. package/templates/modern/includes/scripts.hbs +161 -0
  32. package/templates/modern/includes/sidebar.hbs +22 -0
  33. package/templates/modern/includes/theme-toggle.hbs +5 -0
  34. package/template/releases.hbs +0 -86
  35. /package/bin/{docula.mjs → docula.js} +0 -0
  36. /package/{template → templates/classic}/api.hbs +0 -0
  37. /package/{template → templates/classic}/changelog-entry.hbs +0 -0
  38. /package/{template → templates/classic}/changelog.hbs +0 -0
  39. /package/{template → templates/classic}/css/highlight/highlight.min.js +0 -0
  40. /package/{template → templates/classic}/css/highlight/styles/base16/dracula.min.css +0 -0
  41. /package/{template → templates/classic}/css/landing.css +0 -0
  42. /package/{template → templates/classic}/css/singlepage.css +0 -0
  43. /package/{template → templates/classic}/includes/footer.hbs +0 -0
  44. /package/{template → templates/classic}/includes/header.hbs +0 -0
  45. /package/{template → templates/classic}/includes/multipage/doc.hbs +0 -0
  46. /package/{template → templates/classic}/includes/multipage/header.hbs +0 -0
  47. /package/{template → templates/classic}/includes/multipage/scripts.hbs +0 -0
  48. /package/{template → templates/classic}/includes/multipage/sidebar.hbs +0 -0
  49. /package/{template → templates/classic}/includes/scripts.hbs +0 -0
  50. /package/{template → templates/classic}/includes/singlepage/hero.hbs +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "docula",
3
- "version": "0.41.0",
3
+ "version": "0.50.0",
4
4
  "description": "Beautiful Website for Your Projects",
5
5
  "type": "module",
6
6
  "main": "./dist/docula.js",
@@ -11,28 +11,15 @@
11
11
  "import": "./dist/docula.js"
12
12
  }
13
13
  },
14
- "repository": "https://github.com/jaredwray/docula.git",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/jaredwray/docula.git"
17
+ },
15
18
  "author": "Jared Wray <me@jaredwray.com>",
16
19
  "engines": {
17
20
  "node": ">=20"
18
21
  },
19
22
  "license": "MIT",
20
- "scripts": {
21
- "clean": "rimraf ./dist ./coverage ./node_modules ./package-lock.json ./yarn.lock ./pnpm-lock.yaml ./site/README.md ./site/dist",
22
- "build": "pnpm generate-init-file && rimraf ./dist && tsup src/docula.ts --format esm --dts --clean",
23
- "lint": "biome check --write --error-on-warnings",
24
- "lint:ci": "biome check --error-on-warnings",
25
- "test": "pnpm lint && vitest run --coverage",
26
- "test:ci": "pnpm lint:ci && vitest run --coverage",
27
- "generate-init-file": "tsx scripts/generate-init-file.ts",
28
- "website:build": "rimraf ./site/README.md && node bin/docula.mjs build -s ./site -o ./site/dist",
29
- "website:serve": "rimraf ./site/README.md && node bin/docula.mjs serve -s ./site -o ./site/dist",
30
- "website:build:mega": "rimraf ./test/fixtures/mega-page-site/dist && node bin/docula.mjs build -s ./test/fixtures/mega-page-site",
31
- "website:serve:mega": "rimraf ./test/fixtures/mega-page-site/dist && node bin/docula.mjs serve -s ./test/fixtures/mega-page-site",
32
- "website:build:changelog": "rimraf ./test/fixtures/changelog-site/dist && node bin/docula.mjs build -s ./test/fixtures/changelog-site",
33
- "website:serve:changelog": "rimraf ./test/fixtures/changelog-site/dist && node bin/docula.mjs serve -s ./test/fixtures/changelog-site",
34
- "prepare": "pnpm build"
35
- },
36
23
  "keywords": [
37
24
  "static-site-generator",
38
25
  "static-site",
@@ -50,13 +37,12 @@
50
37
  "handlebars"
51
38
  ],
52
39
  "bin": {
53
- "docula": "./bin/docula.mjs"
40
+ "docula": "./bin/docula.js"
54
41
  },
55
42
  "dependencies": {
56
43
  "@cacheable/net": "^2.0.5",
57
44
  "ecto": "^4.8.2",
58
45
  "feed": "^5.2.0",
59
- "he": "^1.2.0",
60
46
  "jiti": "^2.6.1",
61
47
  "serve-handler": "^6.1.6",
62
48
  "update-notifier": "^7.3.1",
@@ -65,7 +51,6 @@
65
51
  "devDependencies": {
66
52
  "@biomejs/biome": "^2.4.2",
67
53
  "@types/express": "^5.0.6",
68
- "@types/he": "^1.2.3",
69
54
  "@types/js-yaml": "^4.0.9",
70
55
  "@types/node": "^25.2.3",
71
56
  "@types/serve-handler": "^6.1.4",
@@ -80,7 +65,26 @@
80
65
  },
81
66
  "files": [
82
67
  "dist",
83
- "template",
68
+ "templates",
84
69
  "bin"
85
- ]
86
- }
70
+ ],
71
+ "scripts": {
72
+ "clean": "rimraf ./dist ./coverage ./node_modules ./package-lock.json ./yarn.lock ./pnpm-lock.yaml ./site/README.md ./site/dist",
73
+ "build": "pnpm generate-init-file && rimraf ./dist && tsup src/docula.ts --format esm --dts --clean",
74
+ "lint": "biome check --write --error-on-warnings",
75
+ "lint:ci": "biome check --error-on-warnings",
76
+ "test": "pnpm lint && vitest run --coverage",
77
+ "test:ci": "pnpm lint:ci && vitest run --coverage",
78
+ "generate-init-file": "tsx scripts/generate-init-file.ts",
79
+ "website:build": "rimraf ./site/README.md && node bin/docula.js build -s ./site -o ./site/dist",
80
+ "website:serve": "rimraf ./site/README.md && node bin/docula.js serve -s ./site -o ./site/dist",
81
+ "website:mega": "pnpm website:build:mega && pnpm website:serve:mega",
82
+ "website:build:mega": "rimraf ./test/fixtures/mega-page-site/dist && node bin/docula.js build -s ./test/fixtures/mega-page-site",
83
+ "website:serve:mega": "rimraf ./test/fixtures/mega-page-site/dist && node bin/docula.js serve -s ./test/fixtures/mega-page-site",
84
+ "website:mega:nohome": "pnpm website:build:mega:nohome && pnpm website:serve:mega:nohome",
85
+ "website:build:mega:nohome": "rimraf ./test/fixtures/mega-page-site-no-home-page/dist && node bin/docula.js build -s ./test/fixtures/mega-page-site-no-home-page",
86
+ "website:serve:mega:nohome": "rimraf ./test/fixtures/mega-page-site-no-home-page/dist && node bin/docula.js serve -s ./test/fixtures/mega-page-site-no-home-page",
87
+ "website:build:changelog": "rimraf ./test/fixtures/changelog-site/dist && node bin/docula.js build -s ./test/fixtures/changelog-site",
88
+ "website:serve:changelog": "rimraf ./test/fixtures/changelog-site/dist && node bin/docula.js serve -s ./test/fixtures/changelog-site"
89
+ }
90
+ }
@@ -278,6 +278,16 @@ h1.changelog-entry-title {
278
278
  color: #6d28d9;
279
279
  }
280
280
 
281
+ .changelog-tag-release {
282
+ background-color: rgba(16, 185, 129, 0.15);
283
+ color: #047857;
284
+ }
285
+
286
+ .changelog-tag-pre-release {
287
+ background-color: rgba(251, 191, 36, 0.15);
288
+ color: #92400e;
289
+ }
290
+
281
291
  .changelog-entry-body p {
282
292
  margin: 0.5rem 0;
283
293
  }
@@ -25,6 +25,13 @@
25
25
  font-weight: 600;
26
26
  }
27
27
 
28
+ .home-actions {
29
+ display: flex;
30
+ justify-content: center;
31
+ gap: 0.75rem;
32
+ flex-wrap: wrap;
33
+ }
34
+
28
35
  /* Announcement */
29
36
  .announcement {
30
37
  max-width: 90%;
@@ -54,7 +54,7 @@
54
54
  <main class="layout">
55
55
  {{> multipage/header }}
56
56
  {{> multipage/sidebar }}
57
- {{> multipage/doc }}
57
+ {{> multipage/doc }}
58
58
  </main>
59
59
  {{> footer}}
60
60
 
@@ -57,6 +57,12 @@
57
57
  {{else}}
58
58
  <main class="home">
59
59
  {{> multipage/hero }}
60
+ <div class="home-actions">
61
+ {{> multipage/documentation }}
62
+ {{#if hasApi}}
63
+ {{> multipage/api-reference }}
64
+ {{/if}}
65
+ </div>
60
66
  {{> multipage/home }}
61
67
  </main>
62
68
  {{/if}}
@@ -69,4 +75,4 @@
69
75
  {{/unless}}
70
76
  </body>
71
77
 
72
- </html>
78
+ </html>
@@ -0,0 +1 @@
1
+ <a href="/api" class="home-docs-button">API Reference</a>
@@ -0,0 +1 @@
1
+ <a href="/docs" class="home-docs-button">Documentation</a>
@@ -8,5 +8,4 @@
8
8
  {{{announcement}}}
9
9
  </div>
10
10
  {{/if}}
11
- <a href="/docs" class="home-docs-button">Documentation</a>
12
- </section>
11
+ </section>
@@ -22,7 +22,7 @@
22
22
 
23
23
  {{#if github.releases}}
24
24
  <div class="content-container">
25
- <h2 class="home-title">Latest's Releases</h2>
25
+ <h2 class="home-title">Changelog</h2>
26
26
  {{#each github.releases as |release|}}
27
27
  {{#if (lt @index 3)}}
28
28
  <div class="release">
@@ -49,8 +49,8 @@
49
49
 
50
50
  {{#if (gt github.releases.length 6)}}
51
51
  <div>
52
- <a class="release-btn" href="/releases">
53
- All Releases
52
+ <a class="release-btn" href="/changelog">
53
+ Full Changelog
54
54
  <span>→</span>
55
55
  </a>
56
56
  </div>
@@ -24,7 +24,7 @@
24
24
 
25
25
  {{#if github.releases}}
26
26
  <div class="content-container">
27
- <h2 class="home-title">Latest's Releases</h2>
27
+ <h2 class="home-title">Changelog</h2>
28
28
  {{#each github.releases as |release|}}
29
29
  {{#if (lt @index 3)}}
30
30
  <div class="release">
@@ -51,8 +51,8 @@
51
51
 
52
52
  {{#if (gt github.releases.length 6)}}
53
53
  <div>
54
- <a class="release-btn" href="/releases">
55
- All Releases
54
+ <a class="release-btn" href="/changelog">
55
+ Full Changelog
56
56
  <span>→</span>
57
57
  </a>
58
58
  </div>
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ {{> header }}
6
+ <title>API Documentation - {{ siteTitle }}</title>
7
+ <meta name="description" content="API Documentation for {{ siteTitle }}" />
8
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@docutopia/react/dist/browser/docutopia.css" />
9
+ <style>
10
+ body {
11
+ margin: 0;
12
+ padding: 0;
13
+ }
14
+ </style>
15
+ </head>
16
+
17
+ <body>
18
+ <div id="docs" style="height: 100vh;"></div>
19
+
20
+ <script src="https://cdn.jsdelivr.net/npm/@docutopia/react/dist/browser/docutopia.js"></script>
21
+ <script>
22
+ Docutopia.render('docs', {
23
+ specUrl: '{{ specUrl }}',
24
+ basename: '/api',
25
+ });
26
+ </script>
27
+ {{> scripts }}
28
+ </body>
29
+
30
+ </html>
@@ -0,0 +1,36 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ {{> header }}
6
+ <title>{{siteTitle}} - {{title}}</title>
7
+ </head>
8
+
9
+ <body>
10
+ {{> header-bar }}
11
+ <div class="content">
12
+ <main class="versions-container">
13
+ <div class="versions-content">
14
+ <div class="changelog-entry-nav">
15
+ <a href="/changelog/">&larr; Back to Changelog</a>
16
+ </div>
17
+ <div class="changelog-entry changelog-entry-single">
18
+ <div class="changelog-entry-header">
19
+ <h1 class="changelog-entry-title">{{title}}</h1>
20
+ {{#if tag}}
21
+ <span class="changelog-tag changelog-tag-{{tagClass}}">{{tag}}</span>
22
+ {{/if}}
23
+ </div>
24
+ <span class="changelog-entry-date">{{formattedDate}}</span>
25
+ <div class="changelog-entry-body">
26
+ {{{generatedHtml}}}
27
+ </div>
28
+ </div>
29
+ </div>
30
+ </main>
31
+ </div>
32
+ {{> footer }}
33
+ {{> scripts }}
34
+ </body>
35
+
36
+ </html>
@@ -0,0 +1,38 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ {{> header }}
6
+ <title>{{siteTitle}} Changelog</title>
7
+ </head>
8
+
9
+ <body>
10
+ {{> header-bar }}
11
+ <div class="content">
12
+ <main class="versions-container">
13
+ <div class="versions-content">
14
+ <h2 class="home-title">Changelog</h2>
15
+ {{#if entries}}
16
+ {{#each entries as |entry|}}
17
+ <div class="changelog-entry">
18
+ <div class="changelog-entry-header">
19
+ <a class="changelog-entry-title" href="/changelog/{{entry.slug}}/">{{entry.title}}</a>
20
+ {{#if entry.tag}}
21
+ <span class="changelog-tag changelog-tag-{{entry.tagClass}}">{{entry.tag}}</span>
22
+ {{/if}}
23
+ </div>
24
+ <span class="changelog-entry-date">{{entry.formattedDate}}</span>
25
+ <div class="changelog-entry-body">
26
+ {{{entry.generatedHtml}}}
27
+ </div>
28
+ </div>
29
+ {{/each}}
30
+ {{/if}}
31
+ </div>
32
+ </main>
33
+ </div>
34
+ {{> footer }}
35
+ {{> scripts }}
36
+ </body>
37
+
38
+ </html>