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.
|
|
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.
|
|
123
|
-
|
|
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
|
-
|
|
132
|
-
fs.
|
|
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.
|
|
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'
|
|
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
|