mirror of
https://github.com/donlon/cloudflare-error-page.git
synced 2026-01-04 15:31:41 +00:00
editor/web: save as filename based on page title
This commit is contained in:
@@ -472,22 +472,30 @@ $('saveAsDialogCopyBtn').addEventListener('click', (e) => {
|
|||||||
}, 2000);
|
}, 2000);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
function toSnakeCase(str, separator = '_') {
|
||||||
|
return str
|
||||||
|
.toLowerCase()
|
||||||
|
.normalize('NFKC')
|
||||||
|
.replace(/[^\p{L}\p{N}]+/gu, '_') // keep letters & numbers from ALL languages
|
||||||
|
.replace(/^_+|_+$/g, '')
|
||||||
|
.replaceAll('_', separator);
|
||||||
|
}
|
||||||
|
const saveAsExtensions = {
|
||||||
|
js: 'js',
|
||||||
|
json: 'json',
|
||||||
|
python: 'py',
|
||||||
|
static: 'html',
|
||||||
|
};
|
||||||
$('saveAsDialogSaveBtn').addEventListener('click', (e) => {
|
$('saveAsDialogSaveBtn').addEventListener('click', (e) => {
|
||||||
let saveName = '';
|
let name = lastCfg.title || 'Internal server error';
|
||||||
switch (saveAsType) {
|
switch (saveAsType) {
|
||||||
case 'js':
|
case 'js':
|
||||||
saveName = 'cf-error-page-example.js';
|
|
||||||
break;
|
|
||||||
case 'json':
|
|
||||||
saveName = 'cf-error-page-params.json';
|
|
||||||
break;
|
|
||||||
case 'python':
|
case 'python':
|
||||||
saveName = 'cf_error_page_example.py';
|
name += ' example';
|
||||||
break;
|
break;
|
||||||
case 'static':
|
|
||||||
saveName = 'cf_error_page.html';
|
|
||||||
break;
|
|
||||||
// TODO: name output files using page title
|
|
||||||
}
|
}
|
||||||
|
const separator = saveAsType == 'python' ? '_' : '-';
|
||||||
|
const ext = saveAsExtensions[saveAsType] ?? txt;
|
||||||
|
const saveName = `${toSnakeCase(name, separator)}.${ext}`;
|
||||||
saveFile(saveAsContent, saveName);
|
saveFile(saveAsContent, saveName);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user