Deploy drhider / validate (push) Canceled after 0s
- Update upload/ module to v0.2.2 with modular Layer 1 (FilePicker) and Layer 2 (Streaming transit upload) - Replace legacy manual file table in site/templates/index.html with FilePicker.initFilePicker - Wire uploadViaVM with per-file status updates and abort signal support - Add dist bundles to dist/ and site/static/dist/ with routes in site/routes/main_bp.py - Add test_hardening.py and test_safe_name.py from upload-platform - Bump version to 0.0.78 in site/app.py - Document integration plan and report in History/upload-integration/
18 lines
764 B
JavaScript
18 lines
764 B
JavaScript
/**
|
|
* Экранирует текст перед вставкой в HTML-шаблон, собираемый через innerHTML.
|
|
*
|
|
* @param {*} value Имя файла, путь или сообщение статуса.
|
|
* @returns {string} Строка с заменёнными HTML-значимыми символами.
|
|
*
|
|
* Экранируются и кавычки, потому что значение может попасть не только в текст
|
|
* кнопки, но и в HTML-атрибут вроде data-path или aria-label.
|
|
*/
|
|
export function esc(value) {
|
|
return String(value).replace(/[&<>"']/g, (character) => ({
|
|
'&': '&',
|
|
'<': '<',
|
|
'>': '>',
|
|
'"': '"',
|
|
"'": ''',
|
|
}[character]));
|
|
} |