core-maugli 1.2.42 → 1.2.44

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
@@ -30,6 +30,37 @@ netlify init
30
30
  netlify deploy --prod
31
31
  ```
32
32
 
33
+ ## 🔌 Netlify Plugins & Integrations
34
+
35
+ Maugli Blog automatically includes recommended Netlify plugins for optimal performance and functionality. The `netlify.toml` configuration is auto-generated during installation.
36
+
37
+ ### 🔄 Auto-Configured Plugins
38
+
39
+ The following plugins are automatically included:
40
+
41
+ - **@netlify/plugin-lighthouse** - Performance audits
42
+ - **netlify-plugin-submit-sitemap** - SEO optimization
43
+ - **netlify-plugin-checklinks** - Link validation
44
+ - **netlify-plugin-image-optim** - Image optimization
45
+ - **netlify-plugin-minify-html** - HTML compression
46
+ - **netlify-plugin-inline-critical-css** - Performance boost
47
+
48
+ ### 🌐 Optional Integrations
49
+
50
+ For advanced functionality, manually install these plugins from the Netlify UI:
51
+
52
+ #### Bluesky Custom Domain
53
+ Verify your custom domain for Bluesky social media integration.
54
+
55
+ **Setup:** [Install Bluesky Plugin](https://app.netlify.com/extensions/bluesky-custom-domain)
56
+
57
+ #### Supabase Integration
58
+ Add backend functionality with Supabase database and authentication.
59
+
60
+ **Setup:** [Install Supabase Plugin](https://app.netlify.com/extensions/supabase)
61
+
62
+ > **Note:** These integrations require manual configuration after installation. Visit the provided links for detailed setup instructions.
63
+
33
64
  ## Getting started
34
65
 
35
66
  To start a new project in an empty folder run:
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "core-maugli",
3
3
  "description": "Astro & Tailwind CSS blog theme for Maugli.",
4
4
  "type": "module",
5
- "version": "1.2.42",
5
+ "version": "1.2.44",
6
6
  "license": "GPL-3.0-or-later OR Commercial",
7
7
  "repository": {
8
8
  "type": "git",
@@ -40,7 +40,7 @@
40
40
  "auto-update": "node scripts/auto-update.js",
41
41
  "build:ci": "SKIP_VERSION_CHECK=true npm run build",
42
42
  "generate-netlify": "node scripts/generate-netlify-config.js",
43
- "postinstall": "node scripts/upgrade-config.js && node scripts/setup-user-images.js",
43
+ "postinstall": "node scripts/upgrade-config.js && node scripts/setup-user-images.js && node scripts/generate-netlify-config.js",
44
44
  "generate-previews": "node scripts/generate-previews.js"
45
45
  },
46
46
  "dependencies": {
@@ -119,8 +119,8 @@ async function main() {
119
119
 
120
120
  const config = await loadMaugliConfig();
121
121
  if (!config) {
122
- console.error('Could not load maugli configuration');
123
- process.exit(1);
122
+ console.warn('⚠️ Could not load maugli configuration, skipping netlify.toml generation');
123
+ return;
124
124
  }
125
125
 
126
126
  const tomlContent = generateNetlifyToml(config);
@@ -128,8 +128,14 @@ async function main() {
128
128
 
129
129
  // Check if netlify.toml already exists
130
130
  if (fs.existsSync(outputPath)) {
131
- console.log('⚠️ netlify.toml already exists. Creating backup...');
132
- fs.copyFileSync(outputPath, `${outputPath}.backup`);
131
+ // Read existing content to check if it's auto-generated
132
+ const existingContent = fs.readFileSync(outputPath, 'utf8');
133
+ if (existingContent.includes('# Netlify configuration generated from maugli.config.ts')) {
134
+ console.log('🔄 Updating auto-generated netlify.toml...');
135
+ } else {
136
+ console.log('⚠️ Custom netlify.toml detected. Creating backup...');
137
+ fs.copyFileSync(outputPath, `${outputPath}.backup`);
138
+ }
133
139
  }
134
140
 
135
141
  fs.writeFileSync(outputPath, tomlContent, 'utf8');
@@ -141,6 +147,26 @@ async function main() {
141
147
  console.log('🔄 Auto-update enabled for Netlify builds');
142
148
  }
143
149
 
150
+ // List installed plugins
151
+ if (config.netlify?.plugins && config.netlify.plugins.length > 0) {
152
+ console.log('🔌 Netlify plugins configured:');
153
+
154
+ const manualSetupPlugins = [
155
+ 'netlify-plugin-bluesky-custom-domain',
156
+ 'netlify-plugin-supabase'
157
+ ];
158
+
159
+ config.netlify.plugins.forEach(plugin => {
160
+ const needsManualSetup = manualSetupPlugins.includes(plugin);
161
+ const indicator = needsManualSetup ? '⚙️ ' : '✅ ';
162
+ console.log(` ${indicator}${plugin}`);
163
+ });
164
+
165
+ console.log('\n📋 Manual setup required for:');
166
+ console.log(' 🌐 Bluesky: https://app.netlify.com/extensions/bluesky-custom-domain');
167
+ console.log(' 🗄️ Supabase: https://app.netlify.com/extensions/supabase');
168
+ }
169
+
144
170
  console.log('📁 File location:', outputPath);
145
171
  }
146
172
 
@@ -14,7 +14,7 @@ import { execSync } from 'child_process';
14
14
  import fs from 'fs';
15
15
  import path from 'path';
16
16
 
17
- const CURRENT_VERSION = '1.2.41';
17
+ const CURRENT_VERSION = '1.2.44';
18
18
 
19
19
  // Правильные скрипты для package.json
20
20
  const CORRECT_SCRIPTS = {
@@ -155,7 +155,23 @@ function updateBlogProject(projectPath) {
155
155
  process.chdir(absolutePath);
156
156
  execSync('npm update core-maugli', { stdio: 'pipe' });
157
157
 
158
- // 8. Результат
158
+ // 8. Генерируем netlify.toml
159
+ log('Generating netlify.toml configuration...', 'info');
160
+ const generateNetlifyScript = path.join(process.cwd(), 'scripts/generate-netlify-config.js');
161
+ if (fs.existsSync(generateNetlifyScript)) {
162
+ try {
163
+ const { execSync } = require('child_process');
164
+ execSync(`node "${generateNetlifyScript}"`, {
165
+ stdio: 'pipe',
166
+ cwd: absolutePath
167
+ });
168
+ log(' ✅ netlify.toml generated', 'success');
169
+ } catch (error) {
170
+ log(` ⚠️ netlify.toml generation failed: ${error.message}`, 'warn');
171
+ }
172
+ }
173
+
174
+ // 9. Результат
159
175
  log(`Project updated successfully!`, 'success');
160
176
  log(` Version: ${oldVersion} → ${CURRENT_VERSION}`, 'info');
161
177
  log(` Scripts updated: ${scriptsUpdated ? 'Yes' : 'No'}`, 'info');
@@ -195,6 +211,7 @@ function main() {
195
211
  log(' ✅ Correct core-maugli version', 'success');
196
212
  log(' ✅ Up-to-date build scripts', 'success');
197
213
  log(' ✅ Working image optimization', 'success');
214
+ log(' ✅ Auto-generated netlify.toml', 'success');
198
215
  }
199
216
  }
200
217
 
@@ -150,7 +150,9 @@ export const maugliConfig: MaugliConfig = {
150
150
  'netlify-plugin-image-optim', // Image optimization
151
151
  'netlify-plugin-minify-html', // HTML minification
152
152
  'netlify-plugin-inline-critical-css', // Inline critical CSS
153
- 'netlify-plugin-hashfiles' // Cache optimization with file hashing
153
+ 'netlify-plugin-hashfiles', // Cache optimization with file hashing
154
+ 'netlify-plugin-bluesky-custom-domain', // Bluesky custom domain verification
155
+ 'netlify-plugin-supabase' // Supabase integration
154
156
  ], // Recommended Netlify plugins from UI
155
157
  buildCommand: 'npm run build', // Default build command
156
158
  publishDir: 'dist', // Astro output directory