ultimate-jekyll-manager 1.9.28 → 1.9.30

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.
@@ -40,8 +40,10 @@ const bundleFiles = [
40
40
  // Main bundles
41
41
  `${rootPathPackage}/dist/assets/css/bundles/*.scss`,
42
42
 
43
- // Project bundles
44
- 'src/assets/css/bundles/*.scss',
43
+ // Project bundles — only if the dir exists (gulp's src() throws ENOENT when it
44
+ // scandirs a missing directory, same as themePageGlobs below); most consumers
45
+ // don't define project bundles
46
+ ...(jetpack.exists('src/assets/css/bundles') ? ['src/assets/css/bundles/*.scss'] : []),
45
47
  ];
46
48
 
47
49
  // Build the active theme's page-CSS globs, but ONLY for `pages` dirs that exist —
@@ -19,7 +19,10 @@ const INCLUDES = path.join(ROOT, 'src/defaults/dist/_includes/themes');
19
19
 
20
20
  // _template is held to the asset contract too — it's what theme authors copy.
21
21
  // bootstrap is the shared Bootstrap source, not a theme.
22
- const themes = jetpack.list(ASSETS).filter((t) => t !== 'bootstrap');
22
+ // The published package ships no src/ (package.json files: assets/bin/dist/docs),
23
+ // so in consumer projects this framework-source suite has nothing to assert
24
+ // against — it degrades to a single skip (see module.exports) instead of crashing.
25
+ const themes = (jetpack.list(ASSETS) || []).filter((t) => t !== 'bootstrap');
23
26
 
24
27
  // Class tokens that would couple markup to one theme (markup must stay
25
28
  // swappable; theme prefixes live only in SCSS internals)
@@ -77,7 +80,12 @@ module.exports = {
77
80
  layer: 'build',
78
81
  description: 'theme contract (structure, swappability, cross-theme JS contracts)',
79
82
  type: 'group',
80
- tests: [
83
+ tests: themes.length === 0 ? [
84
+ {
85
+ name: 'theme sources present (framework repo only)',
86
+ run: (ctx) => ctx.skip('src/assets/themes is not shipped in the published package — this suite runs in the UJM repo'),
87
+ },
88
+ ] : [
81
89
  ...themes.map((theme) => ({
82
90
  name: `${theme}: entry files + config contract`,
83
91
  run: (ctx) => {
package/docs/themes.md CHANGED
@@ -178,7 +178,11 @@ The hooks (and the rest of the theme conventions: entry files, `$avatar-sizes`,
178
178
  scripts, page-asset shapes) are enforced by the build-layer **theme-contract
179
179
  test** — `npx mgr test mgr:build/theme-contract` — which globs every theme, so
180
180
  a new theme is covered the moment it lands. It caught neobrutalism's missing
181
- promo banner + `.card-title` the day it was written.
181
+ promo banner + `.card-title` the day it was written. The suite asserts on the
182
+ framework's `src/assets/themes` sources, which the published package doesn't
183
+ ship — in consumer projects it reports a single skip instead of running (or
184
+ crashing); it only executes inside the UJM repo (or a consumer linked to the
185
+ local repo via `npx mgr install dev`).
182
186
 
183
187
  #### Theme chrome: inherit classy's nav + footer, restyle via CSS
184
188
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ultimate-jekyll-manager",
3
- "version": "1.9.28",
3
+ "version": "1.9.30",
4
4
  "description": "Ultimate Jekyll dependency manager",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -116,7 +116,7 @@
116
116
  "prettier": "^3.9.4",
117
117
  "sass": "^1.101.0",
118
118
  "spellchecker": "^3.7.1",
119
- "web-manager": "^4.3.4",
119
+ "web-manager": "^4.3.6",
120
120
  "webpack": "^5.108.3",
121
121
  "wonderful-fetch": "^2.0.5",
122
122
  "wonderful-version": "^1.3.2",