// <nowiki>// Подключение Prettier через CDNconstprettierScript=document.createElement('script');prettierScript.src='https://cdn.jsdelivr.net/npm/[email protected]/standalone.js';document.head.appendChild(prettierScript);constprettierParserBabel=document.createElement('script');prettierParserBabel.src='https://cdn.jsdelivr.net/npm/[email protected]/parser-babel.js';document.head.appendChild(prettierParserBabel);// Функция для форматирования кода с помощью PrettierconstformatCode=(code)=>{try{// Используем Prettier для форматированияreturnprettier.format(code,{parser:'babel',// Парсер для JavaScriptsingleQuote:true,// Используем одинарные кавычкиtrailingComma:'es5',// Висячие запятыеprintWidth:80,// Максимальная длина строкиtabWidth:2,// Размер отступа});}catch(error){console.error('Ошибка при форматировании кода:',error);returncode;// Возвращаем исходный код в случае ошибки}};// Функция для добавления ссылки "Форматировать код"constaddFormatLink=()=>{// Проверяем, что страница имеет расширение .jsif(mw.config.get('wgPageName').endsWith('.js')){// Находим элемент портлета (меню страницы)constportlet=document.getElementById('p-views')||document.getElementById('p-cactions');if(!portlet)return;// Создаем ссылку "Форматировать код"constformatLink=document.createElement('li');formatLink.innerHTML='<a id="format-js-link">Форматировать код</a>';// Добавляем обработчик событияformatLink.addEventListener('click',()=>{constcontent=document.getElementById('mw-content-text');if(content){// Форматируем содержимое страницыconstformattedCode=formatCode(content.textContent);content.textContent=formattedCode;alert('Код отформатирован!');}});// Добавляем ссылку в менюportlet.querySelector('.pBody ul').appendChild(formatLink);}};// Запускаем функцию после загрузки страницыmw.hook('wikipage.content').add(addFormatLink);// </nowiki>