update site

This commit is contained in:
FullGreaM 2024-06-14 13:46:20 +03:00
parent 377e9f2395
commit 10f2c55643
29 changed files with 1817 additions and 1792 deletions

View File

@ -1,34 +1,34 @@
function fallbackCopyTextToClipboard(text) { function fallbackCopyTextToClipboard(text) {
var textArea = document.createElement("textarea"); var textArea = document.createElement("textarea");
textArea.value = text; textArea.value = text;
// Avoid scrolling to bottom // Avoid scrolling to bottom
textArea.style.top = "0"; textArea.style.top = "0";
textArea.style.left = "0"; textArea.style.left = "0";
textArea.style.position = "fixed"; textArea.style.position = "fixed";
document.body.appendChild(textArea); document.body.appendChild(textArea);
textArea.focus(); textArea.focus();
textArea.select(); textArea.select();
try { try {
var successful = document.execCommand('copy'); var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful'; var msg = successful ? 'successful' : 'unsuccessful';
console.log('Fallback: Copying text command was ' + msg); console.log('Fallback: Copying text command was ' + msg);
} catch (err) { } catch (err) {
console.error('Fallback: Oops, unable to copy', err); console.error('Fallback: Oops, unable to copy', err);
} }
document.body.removeChild(textArea); document.body.removeChild(textArea);
} }
export function copyTextToClipboard(text) { export function copyTextToClipboard(text) {
if (!navigator.clipboard) { if (!navigator.clipboard) {
fallbackCopyTextToClipboard(text); fallbackCopyTextToClipboard(text);
return; return;
} }
navigator.clipboard.writeText(text).then(function() { navigator.clipboard.writeText(text).then(function() {
console.log('Async: Copying to clipboard was successful!'); console.log('Async: Copying to clipboard was successful!');
}, function(err) { }, function(err) {
console.error('Async: Could not copy text: ', err); console.error('Async: Could not copy text: ', err);
}); });
} }

View File

@ -1,47 +1,47 @@
if (!window.atob) { if (!window.atob) {
var tableStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var tableStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var table = tableStr.split(""); var table = tableStr.split("");
window.atob = function (base64) { window.atob = function (base64) {
if (/(=[^=]+|={3,})$/.test(base64)) throw new Error("String contains an invalid character"); if (/(=[^=]+|={3,})$/.test(base64)) throw new Error("String contains an invalid character");
base64 = base64.replace(/=/g, ""); base64 = base64.replace(/=/g, "");
var n = base64.length & 3; var n = base64.length & 3;
if (n === 1) throw new Error("String contains an invalid character"); if (n === 1) throw new Error("String contains an invalid character");
for (var i = 0, j = 0, len = base64.length / 4, bin = []; i < len; ++i) { for (var i = 0, j = 0, len = base64.length / 4, bin = []; i < len; ++i) {
var a = tableStr.indexOf(base64[j++] || "A"), b = tableStr.indexOf(base64[j++] || "A"); var a = tableStr.indexOf(base64[j++] || "A"), b = tableStr.indexOf(base64[j++] || "A");
var c = tableStr.indexOf(base64[j++] || "A"), d = tableStr.indexOf(base64[j++] || "A"); var c = tableStr.indexOf(base64[j++] || "A"), d = tableStr.indexOf(base64[j++] || "A");
if ((a | b | c | d) < 0) throw new Error("String contains an invalid character"); if ((a | b | c | d) < 0) throw new Error("String contains an invalid character");
bin[bin.length] = ((a << 2) | (b >> 4)) & 255; bin[bin.length] = ((a << 2) | (b >> 4)) & 255;
bin[bin.length] = ((b << 4) | (c >> 2)) & 255; bin[bin.length] = ((b << 4) | (c >> 2)) & 255;
bin[bin.length] = ((c << 6) | d) & 255; bin[bin.length] = ((c << 6) | d) & 255;
}; };
return String.fromCharCode.apply(null, bin).substr(0, bin.length + n - 4); return String.fromCharCode.apply(null, bin).substr(0, bin.length + n - 4);
}; };
window.btoa = function (bin) { window.btoa = function (bin) {
for (var i = 0, j = 0, len = bin.length / 3, base64 = []; i < len; ++i) { for (var i = 0, j = 0, len = bin.length / 3, base64 = []; i < len; ++i) {
var a = bin.charCodeAt(j++), b = bin.charCodeAt(j++), c = bin.charCodeAt(j++); var a = bin.charCodeAt(j++), b = bin.charCodeAt(j++), c = bin.charCodeAt(j++);
if ((a | b | c) > 255) throw new Error("String contains an invalid character"); if ((a | b | c) > 255) throw new Error("String contains an invalid character");
base64[base64.length] = table[a >> 2] + table[((a << 4) & 63) | (b >> 4)] + base64[base64.length] = table[a >> 2] + table[((a << 4) & 63) | (b >> 4)] +
(isNaN(b) ? "=" : table[((b << 2) & 63) | (c >> 6)]) + (isNaN(b) ? "=" : table[((b << 2) & 63) | (c >> 6)]) +
(isNaN(b + c) ? "=" : table[c & 63]); (isNaN(b + c) ? "=" : table[c & 63]);
} }
return base64.join(""); return base64.join("");
}; };
} }
export function hexToBase64(str) { export function hexToBase64(str) {
return btoa(String.fromCharCode.apply(null, return btoa(String.fromCharCode.apply(null,
str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")) str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" "))
); );
} }
export function base64ToHex(str) { export function base64ToHex(str) {
for (var i = 0, bin = atob(str.replace(/[ \r\n]+$/, "")), hex = []; i < bin.length; ++i) { for (var i = 0, bin = atob(str.replace(/[ \r\n]+$/, "")), hex = []; i < bin.length; ++i) {
var tmp = bin.charCodeAt(i).toString(16); var tmp = bin.charCodeAt(i).toString(16);
if (tmp.length === 1) tmp = "0" + tmp; if (tmp.length === 1) tmp = "0" + tmp;
hex[hex.length] = tmp; hex[hex.length] = tmp;
} }
return hex.join(" "); return hex.join(" ");
} }

View File

@ -1,101 +1,101 @@
.carousel > .carousel-inner > .carousel-item > img { .carousel > .carousel-inner > .carousel-item > img {
width : 100vh; width : 100vh;
height : calc(100vh - 56px); height : calc(100vh - 56px);
/* height : 10vh; */ /* height : 10vh; */
} }
/*.main-window-alt { /*.main-window-alt {
width : 100vh; width : 100vh;
height : calc(100vh - 56px); height : calc(100vh - 56px);
}*/ }*/
.centered-el { .centered-el {
padding-top : 45vh; padding-top : 45vh;
} }
.bg { .bg {
background-color : #1A1A1A; background-color : #1A1A1A;
} }
.release-menu { .release-menu {
/* Margin */ /* Margin */
margin-left : 35vh; margin-left : 35vh;
margin-right : 35vh; margin-right : 35vh;
margin-top : 5vh; margin-top : 5vh;
/* Padding */ /* Padding */
padding-left : 5vh; padding-left : 5vh;
padding-right : 5vh; padding-right : 5vh;
padding-top : 5vh; padding-top : 5vh;
padding-bottom : 5vh; padding-bottom : 5vh;
/* Style */ /* Style */
border-radius : 2.0vh; border-radius : 2.0vh;
background-color : #1F1F1F; background-color : #1F1F1F;
} }
.release-item { .release-item {
/* Margin */ /* Margin */
margin-left : 5vh; margin-left : 5vh;
margin-right : 45vh; margin-right : 45vh;
margin-top : 5vh; margin-top : 5vh;
/* Padding */ /* Padding */
padding-left : 5vh; padding-left : 5vh;
padding-right : 5vh; padding-right : 5vh;
padding-top : 5vh; padding-top : 5vh;
padding-bottom : 5vh; padding-bottom : 5vh;
/* Style */ /* Style */
border-radius : 2.0vh; border-radius : 2.0vh;
background-color : #252525; background-color : #252525;
} }
.sys-win-img { .sys-win-img {
margin-top: 24vh; margin-top: 24vh;
margin-bottom: 1vh; margin-bottom: 1vh;
width : 25vh; width : 25vh;
height : 25vh; height : 25vh;
} }
.blog-post-card { .blog-post-card {
border-radius : 25px; border-radius : 25px;
background-color: #212121; background-color: #212121;
min-width: 250px; min-width: 250px;
min-height : 250px; min-height : 250px;
margin-left : 25%; margin-left : 25%;
margin-right : 25%; margin-right : 25%;
} }
.blog-post-image-carousel { .blog-post-image-carousel {
margin-left: 10%; margin-left: 10%;
margin-right: 10%; margin-right: 10%;
max-height: 512px; max-height: 512px;
overflow: hidden; overflow: hidden;
} }
.blog-post-image-carousel img { .blog-post-image-carousel img {
object-fit: cover; object-fit: cover;
} }
.modal-img-view { .modal-img-view {
width: 1920px; width: 1920px;
margin: auto; margin: auto;
} }
.password-manger-form { .password-manger-form {
margin-left : 30%; margin-left : 30%;
margin-right : 30%; margin-right : 30%;
padding : 10px; padding : 10px;
padding-left : 65px; padding-left : 65px;
padding-right : 65px; padding-right : 65px;
border-radius : 15px; border-radius : 15px;
} }
/* $accordion-color:green; */ /* $accordion-color:green; */
/* $accordion-padding-y:1.3rem; */ /* $accordion-padding-y:1.3rem; */
/* $accordion-padding-x:2.5rem; */ /* $accordion-padding-x:2.5rem; */
/* $accordion-border-color:black; */ /* $accordion-border-color:black; */
/* $accordion-border-width:3.5px; */ /* $accordion-border-width:3.5px; */
/* $accordion-border-radius: 3rem; */ /* $accordion-border-radius: 3rem; */
/* $accordion-button-color:white; */ /* $accordion-button-color:white; */
/* $accordion-button-bg:green; */ /* $accordion-button-bg:green; */
/* $accordion-button-active-bg: white; */ /* $accordion-button-active-bg: white; */
/* $accordion-button-active-color:green; */ /* $accordion-button-active-color:green; */
/* @import "./node_modules/bootstrap/scss/bootstrap" */ /* @import "./node_modules/bootstrap/scss/bootstrap" */

View File

@ -1,4 +1,4 @@
.carousel { .carousel {
width:640px; width:640px;
height:360px; height:360px;
} }
1 .carousel {
2 width:640px;
3 height:360px;
4 }

View File

@ -1,91 +1,91 @@
import { blog } from "./pages/blog.js"; import { blog } from "./pages/blog.js";
import { passwordManager } from "./pages/password-manager.js"; import { passwordManager } from "./pages/password-manager.js";
/* Альтернативное главное меню */ /* Альтернативное главное меню */
let altMenuSelectedPage = 1; let altMenuSelectedPage = 1;
const altPages = [ const altPages = [
`<h5 style="color: white;">Добро пожаловать на мой ресурс</h5><p style="color: white;">Это официальный ресурс FullGreaM.</p><button onclick="fl.go('/contacts');" type="button" class="btn btn-outline-light">Мои контакты</button>`, `<h5 style="color: white;">Добро пожаловать на мой ресурс</h5><p style="color: white;">Это официальный ресурс FullGreaM.</p><button onclick="fl.go('/contacts');" type="button" class="btn btn-outline-light">Мои контакты</button>`,
`<h5 style="color: white;">О проектах и работах</h5> `<h5 style="color: white;">О проектах и работах</h5>
<p style="color: white;">Здесь представлены мои проекты, работы с активными и актуальными ссылками на скачивание.</p> <p style="color: white;">Здесь представлены мои проекты, работы с активными и актуальными ссылками на скачивание.</p>
<button onclick="fl.go('/projects');" type="button" class="btn btn-outline-light">Мои проекты</button>`, <button onclick="fl.go('/projects');" type="button" class="btn btn-outline-light">Мои проекты</button>`,
`<h5 style="color: white;">О прочей информации</h5> `<h5 style="color: white;">О прочей информации</h5>
<p style="color: white;">Также здесь представлен (или будет представлен) мой личный блог, а также, блог, касающийся моих проектов или проектов моей команды.</p> <p style="color: white;">Также здесь представлен (или будет представлен) мой личный блог, а также, блог, касающийся моих проектов или проектов моей команды.</p>
<button onclick="fl.go('/blog');" type="button" class="btn btn-outline-light">Мой блог</button>` <button onclick="fl.go('/blog');" type="button" class="btn btn-outline-light">Мой блог</button>`
]; ];
function setAltMenuPage(pageNumber) { function setAltMenuPage(pageNumber) {
altMenuSelectedPage = pageNumber; altMenuSelectedPage = pageNumber;
if (altMenuSelectedPage <= 0) { if (altMenuSelectedPage <= 0) {
altMenuSelectedPage = 3; altMenuSelectedPage = 3;
} }
else if (altMenuSelectedPage > 3) { else if (altMenuSelectedPage > 3) {
altMenuSelectedPage = 1; altMenuSelectedPage = 1;
} }
document.getElementsByTagName('body')[0].style.backgroundImage = `url("/assets/hello/m/${altMenuSelectedPage}.png")`; document.getElementsByTagName('body')[0].style.backgroundImage = `url("/assets/hello/m/${altMenuSelectedPage}.png")`;
document.getElementById('alt-carousel-viewer').innerHTML = altPages[altMenuSelectedPage - 1]; document.getElementById('alt-carousel-viewer').innerHTML = altPages[altMenuSelectedPage - 1];
}; };
/* Альтернативное главное меню */ /* Альтернативное главное меню */
setTimeout(async () => { setTimeout(async () => {
fl.go(window.location.pathname + location.search) fl.go(window.location.pathname + location.search)
}, 50); }, 50);
let isMobile = window.screen.availWidth / window.screen.availHeight <= 1.45; let isMobile = window.screen.availWidth / window.screen.availHeight <= 1.45;
function goFromMobileWarning () { function goFromMobileWarning () {
const currentURL = new URL(location.href); const currentURL = new URL(location.href);
if (!document.cookie.includes('warning_showed=true')) document.cookie += 'warning_showed=true;'; if (!document.cookie.includes('warning_showed=true')) document.cookie += 'warning_showed=true;';
fl.go(currentURL.searchParams.get("go")); fl.go(currentURL.searchParams.get("go"));
} }
if (isMobile && !document.cookie.includes('warning_showed=true')) { if (isMobile && !document.cookie.includes('warning_showed=true')) {
// Я это уберу как только буду уверен, что на мобильной версии нет никаких проблем // Я это уберу как только буду уверен, что на мобильной версии нет никаких проблем
fl.go('/mobile-warning?go=' + new URLSearchParams(location.pathname + location.search).toString().slice(0, -1)); fl.go('/mobile-warning?go=' + new URLSearchParams(location.pathname + location.search).toString().slice(0, -1));
} }
fl.bindLoad('/blog', () => { fl.bindLoad('/blog', () => {
blog(); blog();
}); });
fl.bindLoad('/password-manager', () => { fl.bindLoad('/password-manager', () => {
passwordManager(); passwordManager();
}); });
fl.bindLoad('/main-mobile', () => { fl.bindLoad('/main-mobile', () => {
document.getElementById('alt-main-prev').onclick = () => setAltMenuPage(altMenuSelectedPage - 1); document.getElementById('alt-main-prev').onclick = () => setAltMenuPage(altMenuSelectedPage - 1);
document.getElementById('alt-main-next').onclick = () => setAltMenuPage(altMenuSelectedPage + 1); document.getElementById('alt-main-next').onclick = () => setAltMenuPage(altMenuSelectedPage + 1);
}); });
fl.bindLoad('/mobile-warning', () => { fl.bindLoad('/mobile-warning', () => {
document.getElementById('mobile-warning-go').onclick = () => goFromMobileWarning(); document.getElementById('mobile-warning-go').onclick = () => goFromMobileWarning();
}); });
let mainMenuErrorHandled = false; let mainMenuErrorHandled = false;
setInterval(async () => { setInterval(async () => {
// setTimeout(async () => { // setTimeout(async () => {
const navbarHeight = +(document.getElementById("navbar-main")?.offsetHeight); const navbarHeight = +(document.getElementById("navbar-main")?.offsetHeight);
if (!mainMenuErrorHandled && location.pathname == "/" && document.getElementById('main_img1')?.src) { if (!mainMenuErrorHandled && location.pathname == "/" && document.getElementById('main_img1')?.src) {
document.getElementById('main_img1').src = window.screen.availWidth / window.screen.availHeight > 1.45 ? "/assets/hello/1.png" : "/assets/hello/m/1.png"; document.getElementById('main_img1').src = window.screen.availWidth / window.screen.availHeight > 1.45 ? "/assets/hello/1.png" : "/assets/hello/m/1.png";
document.getElementById('main_img2').src = window.screen.availWidth / window.screen.availHeight > 1.45 ? "/assets/hello/2.png" : "/assets/hello/m/2.png"; document.getElementById('main_img2').src = window.screen.availWidth / window.screen.availHeight > 1.45 ? "/assets/hello/2.png" : "/assets/hello/m/2.png";
document.getElementById('main_img3').src = window.screen.availWidth / window.screen.availHeight > 1.45 ? "/assets/hello/3.png" : "/assets/hello/m/3.png"; document.getElementById('main_img3').src = window.screen.availWidth / window.screen.availHeight > 1.45 ? "/assets/hello/3.png" : "/assets/hello/m/3.png";
} }
const selectedCSS = Object.entries(document.styleSheets).filter(([key, cssFileObject]) => cssFileObject.href == `${location.origin}/assets/main.css`)[0][1]; const selectedCSS = Object.entries(document.styleSheets).filter(([key, cssFileObject]) => cssFileObject.href == `${location.origin}/assets/main.css`)[0][1];
Object.entries(selectedCSS.rules).filter(([key, rule]) => rule.selectorText == '.carousel > .carousel-inner > .carousel-item > img')[0][1].style.height = `calc(100vh - ${navbarHeight}px)` Object.entries(selectedCSS.rules).filter(([key, rule]) => rule.selectorText == '.carousel > .carousel-inner > .carousel-item > img')[0][1].style.height = `calc(100vh - ${navbarHeight}px)`
const currHtml = document.getElementById('alt-carousel-viewer')?.innerHTML; const currHtml = document.getElementById('alt-carousel-viewer')?.innerHTML;
mainMenuErrorHandled = currHtml?.trim() == altPages[altMenuSelectedPage - 1]?.trim(); mainMenuErrorHandled = currHtml?.trim() == altPages[altMenuSelectedPage - 1]?.trim();
if (!mainMenuErrorHandled && window.screen.availWidth < 768 && location.pathname == "/") { // Обработка ошибки вёрстки на главной странице if (!mainMenuErrorHandled && window.screen.availWidth < 768 && location.pathname == "/") { // Обработка ошибки вёрстки на главной странице
mainMenuErrorHandled = true; mainMenuErrorHandled = true;
setTimeout(async () => { setTimeout(async () => {
fl.goJust('/main-mobile', false); fl.goJust('/main-mobile', false);
document.getElementsByTagName('body')[0].style.backgroundImage = 'url("/assets/hello/m/1.png")'; document.getElementsByTagName('body')[0].style.backgroundImage = 'url("/assets/hello/m/1.png")';
}, 150); }, 150);
} }
else if (mainMenuErrorHandled && window.screen.availWidth >= 768 && location.pathname == "/") { // Вернуть нормальную версию вёрстки else if (mainMenuErrorHandled && window.screen.availWidth >= 768 && location.pathname == "/") { // Вернуть нормальную версию вёрстки
mainMenuErrorHandled = false; mainMenuErrorHandled = false;
document.getElementsByTagName('body')[0].style.backgroundImage = ''; document.getElementsByTagName('body')[0].style.backgroundImage = '';
fl.goJust('/', false); fl.goJust('/', false);
} }
else if (location.pathname !== "/") { else if (location.pathname !== "/") {
mainMenuErrorHandled = false; mainMenuErrorHandled = false;
document.getElementsByTagName('body')[0].style.backgroundImage = ''; document.getElementsByTagName('body')[0].style.backgroundImage = '';
} }
}, 1); }, 1);

View File

@ -1,122 +1,130 @@
const blogpostsUrl = "/blog/posts.json"; const blogpostsUrl = "/blog/posts.json";
function bindImageView (id, url) { function bindImageView (id, url) {
document.getElementById(id).onclick = () => { document.getElementById(id).onclick = () => {
const imageModal = new bootstrap.Modal(document.getElementById('imageModal'), {}); const imageModal = new bootstrap.Modal(document.getElementById('imageModal'), {});
imageModal.show(); imageModal.show();
document.getElementById('image-viewer-url').src = url; document.getElementById('image-viewer-url').src = url;
}; };
} }
function testBlock () { function testBlock () {
return; // uncomment this at realese return; // uncomment this at realese
bindImageView('blog-img-0:0', 'https://warhammerart.com/wp-content/uploads/2021/08/Adeptus-Mechanicus.jpg'); bindImageView('blog-img-0:0', 'https://warhammerart.com/wp-content/uploads/2021/08/Adeptus-Mechanicus.jpg');
bindImageView('blog-img-0:1', 'https://warzonestudio.com/image/catalog/blog/Admech-review/Admech-codex-review-02.jpg'); bindImageView('blog-img-0:1', 'https://warzonestudio.com/image/catalog/blog/Admech-review/Admech-codex-review-02.jpg');
bindImageView('blog-img-0:2', 'https://i.pinimg.com/originals/7a/5c/0a/7a5c0a3a91db6011a49781c4016124a2.jpg'); bindImageView('blog-img-0:2', 'https://i.pinimg.com/originals/7a/5c/0a/7a5c0a3a91db6011a49781c4016124a2.jpg');
} }
function dateFormater (value) { function dateFormater (value, isMonth = false) {
value = value.toString(); if (isMonth) {
if (value.length === 1) value = '0' + value; return [
return value; "01", "02", "03",
} "04", "05", "06",
"07", "08", "09",
function imagesDisplay (item, index) { "10", "11", "12"
const items = item.attachments.images.map((imageUrl, imageId) => { ][+value];
setTimeout(() => bindImageView(`blog-img-${index}:${imageId}`, imageUrl), 0); }
return `<div class="carousel-item blog-post-image${imageId === 0 ? ' active' : ''}" id="blog-img-${index}:${imageId}"><img src=${JSON.stringify(imageUrl)} class="d-block w-100" alt="..."></div>` value = value.toString();
}); if (value.length === 1) value = '0' + value;
const buttons = items.map((_, id) => `<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="${id}"${id === 0 ? ' class="active" aria-current="true"' : ''} aria-label="Slide ${id}"></button>`); return value;
return { items, buttons }; }
}
function imagesDisplay (item, index) {
function generateItem (item, index) { const items = item.attachments.images.map((imageUrl, imageId) => {
const date = new Date(item.date * 1000); setTimeout(() => bindImageView(`blog-img-${index}:${imageId}`, imageUrl), 0);
const images = item.attachments.images.length === 0 ? { return `<div class="carousel-item blog-post-image${imageId === 0 ? ' active' : ''}" id="blog-img-${index}:${imageId}"><img src=${JSON.stringify(imageUrl)} class="d-block w-100" alt="..."></div>`
buttons : [], });
items : [] const buttons = items.map((_, id) => `<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="${id}"${id === 0 ? ' class="active" aria-current="true"' : ''} aria-label="Slide ${id}"></button>`);
} : imagesDisplay(item, index); return { items, buttons };
// console.log(date); }
const page = `<div class="blog-post-card" id="post-${index}" style="margin-bottom: 1.5%;"> function generateItem (item, index) {
<center> const date = new Date(item.date * 1000);
<h3 style="padding-top: 1.5%;">${item.title}</h3> const images = item.attachments.images.length === 0 ? {
<small style="color: rgba(255,255,255,0.5); padding-bottom: 0.5%;"> buttons : [],
<div>Опубликовано: ${dateFormater(date.getDate())}.${dateFormater(date.getMonth())}.${date.getFullYear()} в ${date.getHours()}:${dateFormater(date.getMinutes())}</div> items : []
<div id="posted-by-${index}" hidden>Через telegram</div> } : imagesDisplay(item, index);
</small> // console.log(date);
</center>
<p style="padding: 2%;">${item.data.replace(/\n/g, "<br/>")}</p> const page = ` <div class="blog-post-card" id="post-${index}" style="margin-bottom: 1.5%;">
<!-- Изображения --> <center>
<center><div id="carouselExampleIndicators" class="carousel slide blog-post-image-carousel" data-bs-ride="carousel" id="post-images-${index}"${item.attachments.images.length === 0 ? ' hidden' : ''}> <h3 style="padding-top: 1.5%;">${item.title}</h3>
<div class="carousel-indicators"${item.attachments.images.length === 1 ? ' hidden' : ''}> <small style="color: rgba(255,255,255,0.5); padding-bottom: 0.5%;">
${images.buttons.join('\n')} <div>Опубликовано: ${dateFormater(date.getDate())}.${dateFormater(date.getMonth(), true)}.${date.getFullYear()} в ${date.getHours()}:${dateFormater(date.getMinutes())}</div>
</div> <div id="posted-by-${index}" hidden>Через telegram</div>
<div class="carousel-inner"> </small>
${images.items.join('\n')} </center>
</div> <p style="padding: 2%;">${item.data.replace(/\n/g, "<br/>")}</p>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev"${item.attachments.images.length === 1 ? ' hidden' : ''}> <!-- Изображения -->
<span class="carousel-control-prev-icon" aria-hidden="true"></span> <center><div id="carouselExampleIndicators" class="carousel slide blog-post-image-carousel" data-bs-ride="carousel" id="post-images-${index}"${item.attachments.images.length === 0 ? ' hidden' : ''}>
<span class="visually-hidden">Предыдущий</span> <div class="carousel-indicators"${item.attachments.images.length === 1 ? ' hidden' : ''}>
</button> ${images.buttons.join('\n')}
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next"${item.attachments.images.length === 1 ? ' hidden' : ''}> </div>
<span class="carousel-control-next-icon" aria-hidden="true"></span> <div class="carousel-inner">
<span class="visually-hidden">Следующий</span> ${images.items.join('\n')}
</button> </div>
</div></center> <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev"${item.attachments.images.length === 1 ? ' hidden' : ''}>
<!-- Файлы --> <span class="carousel-control-prev-icon" aria-hidden="true"></span>
<div class="accordion text-dark bg-dark" id="accordionExample" style="margin-left: 2.5%; margin-right: 2.5%; margin-top: 2.5%;" hidden> <span class="visually-hidden">Предыдущий</span>
<div class="accordion-item"> </button>
<h5 class="accordion-header" id="headingOne"> <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next"${item.attachments.images.length === 1 ? ' hidden' : ''}>
<button class="accordion-button bg-dark text-light" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne"> <span class="carousel-control-next-icon" aria-hidden="true"></span>
Файлы <span class="visually-hidden">Следующий</span>
</button> </button>
</h5> </div></center>
<div id="collapseOne" class="accordion-collapse bg-dark text-light collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample"> <!-- Файлы -->
<div class="accordion-body"> <div class="accordion text-dark bg-dark" id="accordionExample" style="margin-left: 2.5%; margin-right: 2.5%; margin-top: 2.5%;" hidden>
<!-- <strong>Это тело аккордеона первого элемента.</strong> По умолчанию оно скрыто, пока плагин сворачивания не добавит соответствующие классы, которые мы используем для стилизации каждого элемента. Эти классы управляют общим внешним видом, а также отображением и скрытием с помощью переходов CSS. Вы можете изменить все это с помощью собственного CSS или переопределить наши переменные по умолчанию. Также стоит отметить, что практически любой HTML может быть помещен в <code>.accordion-body</code>, хотя переход ограничивает переполнение. --> <div class="accordion-item">
<p><a href="https://github.com/student-manager/student-manager/releases/download/1.1.1/windows.x64.Student.manager.portabel.zip">windows.x64.Student.manager.portabel.zip (111 Mb)</a></p> <h5 class="accordion-header" id="headingOne">
</div> <button class="accordion-button bg-dark text-light" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
</div> Файлы
</div> </button>
</div> </h5>
<!-- Рекации --> <div id="collapseOne" class="accordion-collapse bg-dark text-light collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<button type="button" class="btn btn-outline-success" style="margin-left: 2.5%; margin-top: 1.5%; margin-bottom: 1.5%;" onclick="alert('Функция в разработке!');">Нравится (0)</button> <div class="accordion-body">
<button type="button" class="btn btn-outline-secondary" style="margin-left: 0.5%; margin-top: 1.5%; margin-bottom: 1.5%;" onclick="alert('Функция в разработке!');">Комментарии (0)</button> <!-- <strong>Это тело аккордеона первого элемента.</strong> По умолчанию оно скрыто, пока плагин сворачивания не добавит соответствующие классы, которые мы используем для стилизации каждого элемента. Эти классы управляют общим внешним видом, а также отображением и скрытием с помощью переходов CSS. Вы можете изменить все это с помощью собственного CSS или переопределить наши переменные по умолчанию. Также стоит отметить, что практически любой HTML может быть помещен в <code>.accordion-body</code>, хотя переход ограничивает переполнение. -->
</div>`; <p><a href="https://github.com/student-manager/student-manager/releases/download/1.1.1/windows.x64.Student.manager.portabel.zip">windows.x64.Student.manager.portabel.zip (111 Mb)</a></p>
</div>
return page; </div>
} </div>
</div>
export function blog () { <!-- Рекации -->
//testBlock(); <button type="button" class="btn btn-outline-success" style="margin-left: 2.5%; margin-top: 1.5%; margin-bottom: 1.5%;" onclick="alert('Функция в разработке!');">Нравится (0)</button>
const xhr = new XMLHttpRequest(); <button type="button" class="btn btn-outline-secondary" style="margin-left: 0.5%; margin-top: 1.5%; margin-bottom: 1.5%;" onclick="alert('Функция в разработке!');">Комментарии (0)</button>
xhr.open('GET', blogpostsUrl, true); </div>`;
xhr.onerror = () => { return page;
document.getElementById('blog-posts').innerHTML = `<center><img src="/assets/404.png" class="sys-win-img"></img><h2>Упс..</h2><p>Во время работы произошла ошибка, повторите запрос позже</p></center>`; }
}
export function blog () {
xhr.onload = () => { //testBlock();
try { const xhr = new XMLHttpRequest();
if (xhr.status === 200) { xhr.open('GET', blogpostsUrl, true);
// console.log(xhr.response);
const data = JSON.parse(xhr.response); xhr.onerror = () => {
// console.log(data); document.getElementById('blog-posts').innerHTML = `<center><img src="/assets/404.png" class="sys-win-img"></img><h2>Упс..</h2><p>Во время работы произошла ошибка, повторите запрос позже</p></center>`;
document.getElementById('blog-posts').innerHTML = '<hr/>'; }
data.posts.sort((a, b) => b.date - a.date).forEach((item, index) => {
document.getElementById('blog-posts').innerHTML += generateItem(item, index); xhr.onload = () => {
}); try {
} if (xhr.status === 200) {
else { // console.log(xhr.response);
xhr.onerror(); const data = JSON.parse(xhr.response);
} // console.log(data);
} document.getElementById('blog-posts').innerHTML = '<hr/>';
catch (err) { data.posts.sort((a, b) => b.date - a.date).forEach((item, index) => {
console.log(err); document.getElementById('blog-posts').innerHTML += generateItem(item, index);
return xhr.onerror(); });
} }
}; else {
xhr.onerror();
xhr.send(); }
} }
catch (err) {
console.log(err);
return xhr.onerror();
}
};
xhr.send();
}

View File

@ -1,18 +1,18 @@
import {} from "/assets/sha1.js"; import {} from "/assets/sha1.js";
import { hexToBase64 } from "/assets/encode-converter.js"; import { hexToBase64 } from "/assets/encode-converter.js";
import { copyTextToClipboard } from "/assets/clipboard.js"; import { copyTextToClipboard } from "/assets/clipboard.js";
function generatePassword () { function generatePassword () {
const generatedPasswordElement = document.getElementById('generated-password'); const generatedPasswordElement = document.getElementById('generated-password');
const keyword = document.getElementById('keyword').value; const keyword = document.getElementById('keyword').value;
const service = document.getElementById('service').value.toLowerCase();; const service = document.getElementById('service').value.toLowerCase();;
const login = document.getElementById('login').value.toLowerCase();; const login = document.getElementById('login').value.toLowerCase();;
const generatedPassword = hexToBase64(sha1(`${keyword}::${service}::${login}`)) + "#"; const generatedPassword = hexToBase64(sha1(`${keyword}::${service}::${login}`)) + "#";
generatedPasswordElement.value = generatedPassword; generatedPasswordElement.value = generatedPassword;
} }
export function passwordManager () { export function passwordManager () {
document.getElementById('generate-password').onclick = generatePassword; document.getElementById('generate-password').onclick = generatePassword;
document.getElementById('copy-password').onclick = () => copyTextToClipboard(document.getElementById('generated-password').value); document.getElementById('copy-password').onclick = () => copyTextToClipboard(document.getElementById('generated-password').value);
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

View File

@ -1,489 +1,489 @@
/* /*
* [js-sha1]{@link https://github.com/emn178/js-sha1} * [js-sha1]{@link https://github.com/emn178/js-sha1}
* *
* @version 0.6.0 * @version 0.6.0
* @author Chen, Yi-Cyuan [emn178@gmail.com] * @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2017 * @copyright Chen, Yi-Cyuan 2014-2017
* @license MIT * @license MIT
*/ */
!(function () { !(function () {
"use strict"; "use strict";
function t(t) { function t(t) {
t t
? ((f[0] = ? ((f[0] =
f[16] = f[16] =
f[1] = f[1] =
f[2] = f[2] =
f[3] = f[3] =
f[4] = f[4] =
f[5] = f[5] =
f[6] = f[6] =
f[7] = f[7] =
f[8] = f[8] =
f[9] = f[9] =
f[10] = f[10] =
f[11] = f[11] =
f[12] = f[12] =
f[13] = f[13] =
f[14] = f[14] =
f[15] = f[15] =
0), 0),
(this.blocks = f)) (this.blocks = f))
: (this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), : (this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
(this.h0 = 1732584193), (this.h0 = 1732584193),
(this.h1 = 4023233417), (this.h1 = 4023233417),
(this.h2 = 2562383102), (this.h2 = 2562383102),
(this.h3 = 271733878), (this.h3 = 271733878),
(this.h4 = 3285377520), (this.h4 = 3285377520),
(this.block = this.start = this.bytes = this.hBytes = 0), (this.block = this.start = this.bytes = this.hBytes = 0),
(this.finalized = this.hashed = !1), (this.finalized = this.hashed = !1),
(this.first = !0); (this.first = !0);
} }
var h = "object" == typeof window ? window : {}, var h = "object" == typeof window ? window : {},
s = s =
!h.JS_SHA1_NO_NODE_JS && !h.JS_SHA1_NO_NODE_JS &&
"object" == typeof process && "object" == typeof process &&
process.versions && process.versions &&
process.versions.node; process.versions.node;
s && (h = global); s && (h = global);
var i = var i =
!h.JS_SHA1_NO_COMMON_JS && "object" == typeof module && module.exports, !h.JS_SHA1_NO_COMMON_JS && "object" == typeof module && module.exports,
e = "function" == typeof define && define.amd, e = "function" == typeof define && define.amd,
r = "0123456789abcdef".split(""), r = "0123456789abcdef".split(""),
o = [-2147483648, 8388608, 32768, 128], o = [-2147483648, 8388608, 32768, 128],
n = [24, 16, 8, 0], n = [24, 16, 8, 0],
a = ["hex", "array", "digest", "arrayBuffer"], a = ["hex", "array", "digest", "arrayBuffer"],
f = [], f = [],
u = function (h) { u = function (h) {
return function (s) { return function (s) {
return new t(!0).update(s)[h](); return new t(!0).update(s)[h]();
}; };
}, },
c = function () { c = function () {
var h = u("hex"); var h = u("hex");
s && (h = p(h)), s && (h = p(h)),
(h.create = function () { (h.create = function () {
return new t(); return new t();
}), }),
(h.update = function (t) { (h.update = function (t) {
return h.create().update(t); return h.create().update(t);
}); });
for (var i = 0; i < a.length; ++i) { for (var i = 0; i < a.length; ++i) {
var e = a[i]; var e = a[i];
h[e] = u(e); h[e] = u(e);
} }
return h; return h;
}, },
p = function (t) { p = function (t) {
var h = eval("require('crypto')"), var h = eval("require('crypto')"),
s = eval("require('buffer').Buffer"), s = eval("require('buffer').Buffer"),
i = function (i) { i = function (i) {
if ("string" == typeof i) if ("string" == typeof i)
return h.createHash("sha1").update(i, "utf8").digest("hex"); return h.createHash("sha1").update(i, "utf8").digest("hex");
if (i.constructor === ArrayBuffer) i = new Uint8Array(i); if (i.constructor === ArrayBuffer) i = new Uint8Array(i);
else if (void 0 === i.length) return t(i); else if (void 0 === i.length) return t(i);
return h.createHash("sha1").update(new s(i)).digest("hex"); return h.createHash("sha1").update(new s(i)).digest("hex");
}; };
return i; return i;
}; };
(t.prototype.update = function (t) { (t.prototype.update = function (t) {
if (!this.finalized) { if (!this.finalized) {
var s = "string" != typeof t; var s = "string" != typeof t;
s && t.constructor === h.ArrayBuffer && (t = new Uint8Array(t)); s && t.constructor === h.ArrayBuffer && (t = new Uint8Array(t));
for (var i, e, r = 0, o = t.length || 0, a = this.blocks; r < o; ) { for (var i, e, r = 0, o = t.length || 0, a = this.blocks; r < o; ) {
if ( if (
(this.hashed && (this.hashed &&
((this.hashed = !1), ((this.hashed = !1),
(a[0] = this.block), (a[0] = this.block),
(a[16] = (a[16] =
a[1] = a[1] =
a[2] = a[2] =
a[3] = a[3] =
a[4] = a[4] =
a[5] = a[5] =
a[6] = a[6] =
a[7] = a[7] =
a[8] = a[8] =
a[9] = a[9] =
a[10] = a[10] =
a[11] = a[11] =
a[12] = a[12] =
a[13] = a[13] =
a[14] = a[14] =
a[15] = a[15] =
0)), 0)),
s) s)
) )
for (e = this.start; r < o && e < 64; ++r) for (e = this.start; r < o && e < 64; ++r)
a[e >> 2] |= t[r] << n[3 & e++]; a[e >> 2] |= t[r] << n[3 & e++];
else else
for (e = this.start; r < o && e < 64; ++r) for (e = this.start; r < o && e < 64; ++r)
(i = t.charCodeAt(r)) < 128 (i = t.charCodeAt(r)) < 128
? (a[e >> 2] |= i << n[3 & e++]) ? (a[e >> 2] |= i << n[3 & e++])
: i < 2048 : i < 2048
? ((a[e >> 2] |= (192 | (i >> 6)) << n[3 & e++]), ? ((a[e >> 2] |= (192 | (i >> 6)) << n[3 & e++]),
(a[e >> 2] |= (128 | (63 & i)) << n[3 & e++])) (a[e >> 2] |= (128 | (63 & i)) << n[3 & e++]))
: i < 55296 || i >= 57344 : i < 55296 || i >= 57344
? ((a[e >> 2] |= (224 | (i >> 12)) << n[3 & e++]), ? ((a[e >> 2] |= (224 | (i >> 12)) << n[3 & e++]),
(a[e >> 2] |= (128 | ((i >> 6) & 63)) << n[3 & e++]), (a[e >> 2] |= (128 | ((i >> 6) & 63)) << n[3 & e++]),
(a[e >> 2] |= (128 | (63 & i)) << n[3 & e++])) (a[e >> 2] |= (128 | (63 & i)) << n[3 & e++]))
: ((i = : ((i =
65536 + (((1023 & i) << 10) | (1023 & t.charCodeAt(++r)))), 65536 + (((1023 & i) << 10) | (1023 & t.charCodeAt(++r)))),
(a[e >> 2] |= (240 | (i >> 18)) << n[3 & e++]), (a[e >> 2] |= (240 | (i >> 18)) << n[3 & e++]),
(a[e >> 2] |= (128 | ((i >> 12) & 63)) << n[3 & e++]), (a[e >> 2] |= (128 | ((i >> 12) & 63)) << n[3 & e++]),
(a[e >> 2] |= (128 | ((i >> 6) & 63)) << n[3 & e++]), (a[e >> 2] |= (128 | ((i >> 6) & 63)) << n[3 & e++]),
(a[e >> 2] |= (128 | (63 & i)) << n[3 & e++])); (a[e >> 2] |= (128 | (63 & i)) << n[3 & e++]));
(this.lastByteIndex = e), (this.lastByteIndex = e),
(this.bytes += e - this.start), (this.bytes += e - this.start),
e >= 64 e >= 64
? ((this.block = a[16]), ? ((this.block = a[16]),
(this.start = e - 64), (this.start = e - 64),
this.hash(), this.hash(),
(this.hashed = !0)) (this.hashed = !0))
: (this.start = e); : (this.start = e);
} }
return ( return (
this.bytes > 4294967295 && this.bytes > 4294967295 &&
((this.hBytes += (this.bytes / 4294967296) << 0), ((this.hBytes += (this.bytes / 4294967296) << 0),
(this.bytes = this.bytes % 4294967296)), (this.bytes = this.bytes % 4294967296)),
this this
); );
} }
}), }),
(t.prototype.finalize = function () { (t.prototype.finalize = function () {
if (!this.finalized) { if (!this.finalized) {
this.finalized = !0; this.finalized = !0;
var t = this.blocks, var t = this.blocks,
h = this.lastByteIndex; h = this.lastByteIndex;
(t[16] = this.block), (t[16] = this.block),
(t[h >> 2] |= o[3 & h]), (t[h >> 2] |= o[3 & h]),
(this.block = t[16]), (this.block = t[16]),
h >= 56 && h >= 56 &&
(this.hashed || this.hash(), (this.hashed || this.hash(),
(t[0] = this.block), (t[0] = this.block),
(t[16] = (t[16] =
t[1] = t[1] =
t[2] = t[2] =
t[3] = t[3] =
t[4] = t[4] =
t[5] = t[5] =
t[6] = t[6] =
t[7] = t[7] =
t[8] = t[8] =
t[9] = t[9] =
t[10] = t[10] =
t[11] = t[11] =
t[12] = t[12] =
t[13] = t[13] =
t[14] = t[14] =
t[15] = t[15] =
0)), 0)),
(t[14] = (this.hBytes << 3) | (this.bytes >>> 29)), (t[14] = (this.hBytes << 3) | (this.bytes >>> 29)),
(t[15] = this.bytes << 3), (t[15] = this.bytes << 3),
this.hash(); this.hash();
} }
}), }),
(t.prototype.hash = function () { (t.prototype.hash = function () {
var t, var t,
h, h,
s = this.h0, s = this.h0,
i = this.h1, i = this.h1,
e = this.h2, e = this.h2,
r = this.h3, r = this.h3,
o = this.h4, o = this.h4,
n = this.blocks; n = this.blocks;
for (t = 16; t < 80; ++t) for (t = 16; t < 80; ++t)
(h = n[t - 3] ^ n[t - 8] ^ n[t - 14] ^ n[t - 16]), (h = n[t - 3] ^ n[t - 8] ^ n[t - 14] ^ n[t - 16]),
(n[t] = (h << 1) | (h >>> 31)); (n[t] = (h << 1) | (h >>> 31));
for (t = 0; t < 20; t += 5) for (t = 0; t < 20; t += 5)
(s = (s =
((h = ((h =
((i = ((i =
((h = ((h =
((e = ((e =
((h = ((h =
((r = ((r =
((h = ((h =
((o = ((o =
((h = (s << 5) | (s >>> 27)) + ((h = (s << 5) | (s >>> 27)) +
((i & e) | (~i & r)) + ((i & e) | (~i & r)) +
o + o +
1518500249 + 1518500249 +
n[t]) << n[t]) <<
0) << 0) <<
5) | 5) |
(o >>> 27)) + (o >>> 27)) +
((s & (i = (i << 30) | (i >>> 2))) | (~s & e)) + ((s & (i = (i << 30) | (i >>> 2))) | (~s & e)) +
r + r +
1518500249 + 1518500249 +
n[t + 1]) << n[t + 1]) <<
0) << 0) <<
5) | 5) |
(r >>> 27)) + (r >>> 27)) +
((o & (s = (s << 30) | (s >>> 2))) | (~o & i)) + ((o & (s = (s << 30) | (s >>> 2))) | (~o & i)) +
e + e +
1518500249 + 1518500249 +
n[t + 2]) << n[t + 2]) <<
0) << 0) <<
5) | 5) |
(e >>> 27)) + (e >>> 27)) +
((r & (o = (o << 30) | (o >>> 2))) | (~r & s)) + ((r & (o = (o << 30) | (o >>> 2))) | (~r & s)) +
i + i +
1518500249 + 1518500249 +
n[t + 3]) << n[t + 3]) <<
0) << 0) <<
5) | 5) |
(i >>> 27)) + (i >>> 27)) +
((e & (r = (r << 30) | (r >>> 2))) | (~e & o)) + ((e & (r = (r << 30) | (r >>> 2))) | (~e & o)) +
s + s +
1518500249 + 1518500249 +
n[t + 4]) << n[t + 4]) <<
0), 0),
(e = (e << 30) | (e >>> 2)); (e = (e << 30) | (e >>> 2));
for (; t < 40; t += 5) for (; t < 40; t += 5)
(s = (s =
((h = ((h =
((i = ((i =
((h = ((h =
((e = ((e =
((h = ((h =
((r = ((r =
((h = ((h =
((o = ((o =
((h = (s << 5) | (s >>> 27)) + ((h = (s << 5) | (s >>> 27)) +
(i ^ e ^ r) + (i ^ e ^ r) +
o + o +
1859775393 + 1859775393 +
n[t]) << n[t]) <<
0) << 0) <<
5) | 5) |
(o >>> 27)) + (o >>> 27)) +
(s ^ (i = (i << 30) | (i >>> 2)) ^ e) + (s ^ (i = (i << 30) | (i >>> 2)) ^ e) +
r + r +
1859775393 + 1859775393 +
n[t + 1]) << n[t + 1]) <<
0) << 0) <<
5) | 5) |
(r >>> 27)) + (r >>> 27)) +
(o ^ (s = (s << 30) | (s >>> 2)) ^ i) + (o ^ (s = (s << 30) | (s >>> 2)) ^ i) +
e + e +
1859775393 + 1859775393 +
n[t + 2]) << n[t + 2]) <<
0) << 0) <<
5) | 5) |
(e >>> 27)) + (e >>> 27)) +
(r ^ (o = (o << 30) | (o >>> 2)) ^ s) + (r ^ (o = (o << 30) | (o >>> 2)) ^ s) +
i + i +
1859775393 + 1859775393 +
n[t + 3]) << n[t + 3]) <<
0) << 0) <<
5) | 5) |
(i >>> 27)) + (i >>> 27)) +
(e ^ (r = (r << 30) | (r >>> 2)) ^ o) + (e ^ (r = (r << 30) | (r >>> 2)) ^ o) +
s + s +
1859775393 + 1859775393 +
n[t + 4]) << n[t + 4]) <<
0), 0),
(e = (e << 30) | (e >>> 2)); (e = (e << 30) | (e >>> 2));
for (; t < 60; t += 5) for (; t < 60; t += 5)
(s = (s =
((h = ((h =
((i = ((i =
((h = ((h =
((e = ((e =
((h = ((h =
((r = ((r =
((h = ((h =
((o = ((o =
((h = (s << 5) | (s >>> 27)) + ((h = (s << 5) | (s >>> 27)) +
((i & e) | (i & r) | (e & r)) + ((i & e) | (i & r) | (e & r)) +
o - o -
1894007588 + 1894007588 +
n[t]) << n[t]) <<
0) << 0) <<
5) | 5) |
(o >>> 27)) + (o >>> 27)) +
((s & (i = (i << 30) | (i >>> 2))) | ((s & (i = (i << 30) | (i >>> 2))) |
(s & e) | (s & e) |
(i & e)) + (i & e)) +
r - r -
1894007588 + 1894007588 +
n[t + 1]) << n[t + 1]) <<
0) << 0) <<
5) | 5) |
(r >>> 27)) + (r >>> 27)) +
((o & (s = (s << 30) | (s >>> 2))) | (o & i) | (s & i)) + ((o & (s = (s << 30) | (s >>> 2))) | (o & i) | (s & i)) +
e - e -
1894007588 + 1894007588 +
n[t + 2]) << n[t + 2]) <<
0) << 0) <<
5) | 5) |
(e >>> 27)) + (e >>> 27)) +
((r & (o = (o << 30) | (o >>> 2))) | (r & s) | (o & s)) + ((r & (o = (o << 30) | (o >>> 2))) | (r & s) | (o & s)) +
i - i -
1894007588 + 1894007588 +
n[t + 3]) << n[t + 3]) <<
0) << 0) <<
5) | 5) |
(i >>> 27)) + (i >>> 27)) +
((e & (r = (r << 30) | (r >>> 2))) | (e & o) | (r & o)) + ((e & (r = (r << 30) | (r >>> 2))) | (e & o) | (r & o)) +
s - s -
1894007588 + 1894007588 +
n[t + 4]) << n[t + 4]) <<
0), 0),
(e = (e << 30) | (e >>> 2)); (e = (e << 30) | (e >>> 2));
for (; t < 80; t += 5) for (; t < 80; t += 5)
(s = (s =
((h = ((h =
((i = ((i =
((h = ((h =
((e = ((e =
((h = ((h =
((r = ((r =
((h = ((h =
((o = ((o =
((h = (s << 5) | (s >>> 27)) + ((h = (s << 5) | (s >>> 27)) +
(i ^ e ^ r) + (i ^ e ^ r) +
o - o -
899497514 + 899497514 +
n[t]) << n[t]) <<
0) << 0) <<
5) | 5) |
(o >>> 27)) + (o >>> 27)) +
(s ^ (i = (i << 30) | (i >>> 2)) ^ e) + (s ^ (i = (i << 30) | (i >>> 2)) ^ e) +
r - r -
899497514 + 899497514 +
n[t + 1]) << n[t + 1]) <<
0) << 0) <<
5) | 5) |
(r >>> 27)) + (r >>> 27)) +
(o ^ (s = (s << 30) | (s >>> 2)) ^ i) + (o ^ (s = (s << 30) | (s >>> 2)) ^ i) +
e - e -
899497514 + 899497514 +
n[t + 2]) << n[t + 2]) <<
0) << 0) <<
5) | 5) |
(e >>> 27)) + (e >>> 27)) +
(r ^ (o = (o << 30) | (o >>> 2)) ^ s) + (r ^ (o = (o << 30) | (o >>> 2)) ^ s) +
i - i -
899497514 + 899497514 +
n[t + 3]) << n[t + 3]) <<
0) << 0) <<
5) | 5) |
(i >>> 27)) + (i >>> 27)) +
(e ^ (r = (r << 30) | (r >>> 2)) ^ o) + (e ^ (r = (r << 30) | (r >>> 2)) ^ o) +
s - s -
899497514 + 899497514 +
n[t + 4]) << n[t + 4]) <<
0), 0),
(e = (e << 30) | (e >>> 2)); (e = (e << 30) | (e >>> 2));
(this.h0 = (this.h0 + s) << 0), (this.h0 = (this.h0 + s) << 0),
(this.h1 = (this.h1 + i) << 0), (this.h1 = (this.h1 + i) << 0),
(this.h2 = (this.h2 + e) << 0), (this.h2 = (this.h2 + e) << 0),
(this.h3 = (this.h3 + r) << 0), (this.h3 = (this.h3 + r) << 0),
(this.h4 = (this.h4 + o) << 0); (this.h4 = (this.h4 + o) << 0);
}), }),
(t.prototype.hex = function () { (t.prototype.hex = function () {
this.finalize(); this.finalize();
var t = this.h0, var t = this.h0,
h = this.h1, h = this.h1,
s = this.h2, s = this.h2,
i = this.h3, i = this.h3,
e = this.h4; e = this.h4;
return ( return (
r[(t >> 28) & 15] + r[(t >> 28) & 15] +
r[(t >> 24) & 15] + r[(t >> 24) & 15] +
r[(t >> 20) & 15] + r[(t >> 20) & 15] +
r[(t >> 16) & 15] + r[(t >> 16) & 15] +
r[(t >> 12) & 15] + r[(t >> 12) & 15] +
r[(t >> 8) & 15] + r[(t >> 8) & 15] +
r[(t >> 4) & 15] + r[(t >> 4) & 15] +
r[15 & t] + r[15 & t] +
r[(h >> 28) & 15] + r[(h >> 28) & 15] +
r[(h >> 24) & 15] + r[(h >> 24) & 15] +
r[(h >> 20) & 15] + r[(h >> 20) & 15] +
r[(h >> 16) & 15] + r[(h >> 16) & 15] +
r[(h >> 12) & 15] + r[(h >> 12) & 15] +
r[(h >> 8) & 15] + r[(h >> 8) & 15] +
r[(h >> 4) & 15] + r[(h >> 4) & 15] +
r[15 & h] + r[15 & h] +
r[(s >> 28) & 15] + r[(s >> 28) & 15] +
r[(s >> 24) & 15] + r[(s >> 24) & 15] +
r[(s >> 20) & 15] + r[(s >> 20) & 15] +
r[(s >> 16) & 15] + r[(s >> 16) & 15] +
r[(s >> 12) & 15] + r[(s >> 12) & 15] +
r[(s >> 8) & 15] + r[(s >> 8) & 15] +
r[(s >> 4) & 15] + r[(s >> 4) & 15] +
r[15 & s] + r[15 & s] +
r[(i >> 28) & 15] + r[(i >> 28) & 15] +
r[(i >> 24) & 15] + r[(i >> 24) & 15] +
r[(i >> 20) & 15] + r[(i >> 20) & 15] +
r[(i >> 16) & 15] + r[(i >> 16) & 15] +
r[(i >> 12) & 15] + r[(i >> 12) & 15] +
r[(i >> 8) & 15] + r[(i >> 8) & 15] +
r[(i >> 4) & 15] + r[(i >> 4) & 15] +
r[15 & i] + r[15 & i] +
r[(e >> 28) & 15] + r[(e >> 28) & 15] +
r[(e >> 24) & 15] + r[(e >> 24) & 15] +
r[(e >> 20) & 15] + r[(e >> 20) & 15] +
r[(e >> 16) & 15] + r[(e >> 16) & 15] +
r[(e >> 12) & 15] + r[(e >> 12) & 15] +
r[(e >> 8) & 15] + r[(e >> 8) & 15] +
r[(e >> 4) & 15] + r[(e >> 4) & 15] +
r[15 & e] r[15 & e]
); );
}), }),
(t.prototype.toString = t.prototype.hex), (t.prototype.toString = t.prototype.hex),
(t.prototype.digest = function () { (t.prototype.digest = function () {
this.finalize(); this.finalize();
var t = this.h0, var t = this.h0,
h = this.h1, h = this.h1,
s = this.h2, s = this.h2,
i = this.h3, i = this.h3,
e = this.h4; e = this.h4;
return [ return [
(t >> 24) & 255, (t >> 24) & 255,
(t >> 16) & 255, (t >> 16) & 255,
(t >> 8) & 255, (t >> 8) & 255,
255 & t, 255 & t,
(h >> 24) & 255, (h >> 24) & 255,
(h >> 16) & 255, (h >> 16) & 255,
(h >> 8) & 255, (h >> 8) & 255,
255 & h, 255 & h,
(s >> 24) & 255, (s >> 24) & 255,
(s >> 16) & 255, (s >> 16) & 255,
(s >> 8) & 255, (s >> 8) & 255,
255 & s, 255 & s,
(i >> 24) & 255, (i >> 24) & 255,
(i >> 16) & 255, (i >> 16) & 255,
(i >> 8) & 255, (i >> 8) & 255,
255 & i, 255 & i,
(e >> 24) & 255, (e >> 24) & 255,
(e >> 16) & 255, (e >> 16) & 255,
(e >> 8) & 255, (e >> 8) & 255,
255 & e, 255 & e,
]; ];
}), }),
(t.prototype.array = t.prototype.digest), (t.prototype.array = t.prototype.digest),
(t.prototype.arrayBuffer = function () { (t.prototype.arrayBuffer = function () {
this.finalize(); this.finalize();
var t = new ArrayBuffer(20), var t = new ArrayBuffer(20),
h = new DataView(t); h = new DataView(t);
return ( return (
h.setUint32(0, this.h0), h.setUint32(0, this.h0),
h.setUint32(4, this.h1), h.setUint32(4, this.h1),
h.setUint32(8, this.h2), h.setUint32(8, this.h2),
h.setUint32(12, this.h3), h.setUint32(12, this.h3),
h.setUint32(16, this.h4), h.setUint32(16, this.h4),
t t
); );
}); });
var y = c(); var y = c();
i i
? (module.exports = y) ? (module.exports = y)
: ((h.sha1 = y), : ((h.sha1 = y),
e && e &&
define(function () { define(function () {
return y; return y;
})); }));
})(); })();

View File

@ -1,32 +1,32 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
<link rel="stylesheet" href="/assets/main.css"> <link rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/> <link rel="icon" type="image/png" href="/favicon.png"/>
<title>FullGreaM</title> <title>FullGreaM</title>
</head> </head>
<body class="bg text-white"> <body class="bg text-white">
<script src="/fl_framework/index.js"></script> <script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark"> <nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');"> <a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM FullGreaM
</a> </a>
<button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button> <button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button>
</nav> </nav>
<div id="turn-on-js"> <div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1> <h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p> <p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div> </div>
<script> <script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>'; document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script> </script>
<!-- Finalize loading bootstrap js --> <!-- Finalize loading bootstrap js -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
<!-- Go to root --> <!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> --> <!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script> <script src="/assets/main.js" type="module"></script>
</body> </body>
</html> </html>

View File

@ -1,52 +1,69 @@
{ {
"categories" : [ "categories" : [
{ {
"tag" : "news", "tag" : "news",
"name" : "Новости" "name" : "Новости"
}, },
{ {
"tag" : "updates", "tag" : "updates",
"name" : "Обновления" "name" : "Обновления"
}, },
{ {
"tag" : "personal", "tag" : "personal",
"name" : "Личное" "name" : "Личное"
} }
], ],
"posts" : [ "posts" : [
{ {
"title" : "Открыт блог", "title" : "Открыт блог",
"date" : 1697329458, "date" : 1697329458,
"data" : "Сегодня я запустил блог на сайте и это первый пост в нём.\n...В блоге будут публиковаться новости, анонсы, а также, мои личные мысли. Впрочем, если вам интересно что-то одно или, наоборот, не интересно иное, то я добавил поддержку \"категорий\", которые вы можете включать и отключать.\n\n<i>UPD: Категории я добавлю позже.</i>", "data" : "Сегодня я запустил блог на сайте и это первый пост в нём.\n...В блоге будут публиковаться новости, анонсы, а также, мои личные мысли. Впрочем, если вам интересно что-то одно или, наоборот, не интересно иное, то я добавил поддержку \"категорий\", которые вы можете включать и отключать.\n\n<i>UPD: Категории я добавлю позже.</i>",
"categories" : ["news", "updates"], "categories" : ["news", "updates"],
"attachments" : { "attachments" : {
"images" : [ "images" : [
"/assets/posts/15102023.png" "/assets/posts/15102023.png"
], ],
"files" : [], "files" : [],
"video" : [], "video" : [],
"youtube" : [], "youtube" : [],
"audio" : [], "audio" : [],
"voice" : [] "voice" : []
}, },
"forward" : null "forward" : null
}, },
{ {
"title" : "Купил себе SD-Карты", "title" : "Купил себе SD-Карты",
"date" : 1697385474, "date" : 1697385474,
"data" : "Купил себе карты памяти в DNS, ща буду гонять, смотреть как работают.\n\nВообще, мне нехватало места на телефоне и посему решил докупить себе одну на 128 и одну на 64 гига.", "data" : "Купил себе карты памяти в DNS, ща буду гонять, смотреть как работают.\n\nВообще, мне нехватало места на телефоне и посему решил докупить себе одну на 128 и одну на 64 гига.",
"categories" : ["personal"], "categories" : ["personal"],
"attachments" : { "attachments" : {
"images" : [ "images" : [
"/assets/posts/IMG_20231015_185244_587.jpg" "/assets/posts/IMG_20231015_185244_587.jpg"
], ],
"files" : [], "files" : [],
"video" : [], "video" : [],
"youtube" : [], "youtube" : [],
"audio" : [], "audio" : [],
"voice" : [] "voice" : []
}, },
"forward" : null "forward" : null
} },
] {
} "title" : "Привод Arcturus",
"date" : 1718360744,
"data" : "Купил себе привод от Arcturus. Потестил - норм, буду гонять с ним дальше",
"categories" : ["personal"],
"attachments" : {
"images" : [
"/assets/posts/photo_2024-05-28_21-15-13.jpg"
],
"files" : [],
"video" : [],
"youtube" : [],
"audio" : [],
"voice" : []
},
"forward" : null
}
]
}

View File

@ -1,32 +1,32 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
<link rel="stylesheet" href="/assets/main.css"> <link rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/> <link rel="icon" type="image/png" href="/favicon.png"/>
<title>FullGreaM</title> <title>FullGreaM</title>
</head> </head>
<body class="bg text-white"> <body class="bg text-white">
<script src="/fl_framework/index.js"></script> <script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark"> <nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');"> <a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM FullGreaM
</a> </a>
<button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button> <button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button>
</nav> </nav>
<div id="turn-on-js"> <div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1> <h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p> <p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div> </div>
<script> <script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>'; document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script> </script>
<!-- Finalize loading bootstrap js --> <!-- Finalize loading bootstrap js -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
<!-- Go to root --> <!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> --> <!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script> <script src="/assets/main.js" type="module"></script>
</body> </body>
</html> </html>

View File

@ -1,233 +1,233 @@
#Mod_Priority,#Mod_Name,#Mod_Nexus_URL #Mod_Priority,#Mod_Name,#Mod_Nexus_URL
"0000","Unmanaged: FNIS","" "0000","Unmanaged: FNIS",""
"0002","DLC: HearthFires","" "0002","DLC: HearthFires",""
"0003","DLC: Dragonborn","" "0003","DLC: Dragonborn",""
"0004","DLC: Dawnguard","" "0004","DLC: Dawnguard",""
"0006","Address Library for SKSE Plugins","https://www.nexusmods.com/skyrimspecialedition/mods/32444" "0006","Address Library for SKSE Plugins","https://www.nexusmods.com/skyrimspecialedition/mods/32444"
"0007","Unofficial Skyrim Special Edition Patch-RUS-RUS","https://www.nexusmods.com/skyrimspecialedition/mods/266" "0007","Unofficial Skyrim Special Edition Patch-RUS-RUS","https://www.nexusmods.com/skyrimspecialedition/mods/266"
"0008","powerofthree's Tweaks","https://www.nexusmods.com/skyrimspecialedition/mods/51073" "0008","powerofthree's Tweaks","https://www.nexusmods.com/skyrimspecialedition/mods/51073"
"0009","JContainers SE","https://www.nexusmods.com/skyrimspecialedition/mods/16495" "0009","JContainers SE","https://www.nexusmods.com/skyrimspecialedition/mods/16495"
"0010","ConsoleUtilSSE","https://www.nexusmods.com/skyrimspecialedition/mods/24858" "0010","ConsoleUtilSSE","https://www.nexusmods.com/skyrimspecialedition/mods/24858"
"0011","ENB Helper SE 1.5 for SSE 1.5.97","https://www.nexusmods.com/skyrimspecialedition/mods/23174" "0011","ENB Helper SE 1.5 for SSE 1.5.97","https://www.nexusmods.com/skyrimspecialedition/mods/23174"
"0012","Weapons Armor Clothing and Clutter Fixes","https://www.nexusmods.com/skyrimspecialedition/mods/18994" "0012","Weapons Armor Clothing and Clutter Fixes","https://www.nexusmods.com/skyrimspecialedition/mods/18994"
"0013","Weapons Armor Clothing and Clutter Fixes 2.9 RUS","https://www.nexusmods.com/skyrimspecialedition/mods/19284" "0013","Weapons Armor Clothing and Clutter Fixes 2.9 RUS","https://www.nexusmods.com/skyrimspecialedition/mods/19284"
"0014","SkyUI_5_2_SE","https://www.nexusmods.com/skyrimspecialedition/mods/12604" "0014","SkyUI_5_2_SE","https://www.nexusmods.com/skyrimspecialedition/mods/12604"
"0015","UIExtensions","https://www.nexusmods.com/skyrimspecialedition/mods/17561" "0015","UIExtensions","https://www.nexusmods.com/skyrimspecialedition/mods/17561"
"0016","DynDOLOD Resources SE","https://www.nexusmods.com/skyrimspecialedition/mods/32382" "0016","DynDOLOD Resources SE","https://www.nexusmods.com/skyrimspecialedition/mods/32382"
"0018","RaceCompatibility with fixes for SSE","https://www.nexusmods.com/skyrimspecialedition/mods/2853" "0018","RaceCompatibility with fixes for SSE","https://www.nexusmods.com/skyrimspecialedition/mods/2853"
"0019","more HUD SE Light Master- Pre AE","https://www.nexusmods.com/skyrimspecialedition/mods/12688" "0019","more HUD SE Light Master- Pre AE","https://www.nexusmods.com/skyrimspecialedition/mods/12688"
"0020","MCM Helper SE","https://www.nexusmods.com/skyrimspecialedition/mods/53000" "0020","MCM Helper SE","https://www.nexusmods.com/skyrimspecialedition/mods/53000"
"0021","FileAccess Interface for Skyrim SE Scripts - FISSES (FISS)","https://www.nexusmods.com/skyrimspecialedition/mods/13956" "0021","FileAccess Interface for Skyrim SE Scripts - FISSES (FISS)","https://www.nexusmods.com/skyrimspecialedition/mods/13956"
"0022","Papyrus API","https://www.nexusmods.com/skyrimspecialedition/mods/24858" "0022","Papyrus API","https://www.nexusmods.com/skyrimspecialedition/mods/24858"
"0023","IFrame Generator RE","https://www.nexusmods.com/skyrimspecialedition/mods/74401" "0023","IFrame Generator RE","https://www.nexusmods.com/skyrimspecialedition/mods/74401"
"0024","dTry's Key Utils SE","https://www.nexusmods.com/skyrimspecialedition/mods/69944" "0024","dTry's Key Utils SE","https://www.nexusmods.com/skyrimspecialedition/mods/69944"
"0025","Papyrus Ini Manipulator","https://www.nexusmods.com/skyrimspecialedition/mods/65634" "0025","Papyrus Ini Manipulator","https://www.nexusmods.com/skyrimspecialedition/mods/65634"
"0027","SSE Display Tweaks","https://www.nexusmods.com/skyrimspecialedition/mods/34705" "0027","SSE Display Tweaks","https://www.nexusmods.com/skyrimspecialedition/mods/34705"
"0028","CrashLogger","https://www.nexusmods.com/skyrimspecialedition/mods/59818" "0028","CrashLogger","https://www.nexusmods.com/skyrimspecialedition/mods/59818"
"0029","CrashLoggerSE","https://www.nexusmods.com/skyrimspecialedition/mods/59818" "0029","CrashLoggerSE","https://www.nexusmods.com/skyrimspecialedition/mods/59818"
"0035","BodySlide and Outfit Studio","https://www.nexusmods.com/skyrimspecialedition/mods/201" "0035","BodySlide and Outfit Studio","https://www.nexusmods.com/skyrimspecialedition/mods/201"
"0036","Перевод BodySlide and Outfit Studio","" "0036","Перевод BodySlide and Outfit Studio",""
"0038","Caliente's Beautiful Bodies Enhancer -CBBE-","https://www.nexusmods.com/skyrimspecialedition/mods/198" "0038","Caliente's Beautiful Bodies Enhancer -CBBE-","https://www.nexusmods.com/skyrimspecialedition/mods/198"
"0039","CBPC - Physics with Collisions","https://www.nexusmods.com/skyrimspecialedition/mods/21224" "0039","CBPC - Physics with Collisions","https://www.nexusmods.com/skyrimspecialedition/mods/21224"
"0041","HDT-SMP for SSE 1.5.97 (avx on)","https://www.nexusmods.com/skyrimspecialedition/mods/30872" "0041","HDT-SMP for SSE 1.5.97 (avx on)","https://www.nexusmods.com/skyrimspecialedition/mods/30872"
"0045","CBBE 3BA","https://www.nexusmods.com/skyrimspecialedition/mods/30174" "0045","CBBE 3BA","https://www.nexusmods.com/skyrimspecialedition/mods/30174"
"0046","XP32 Maximum Skeleton Special Extended","https://www.nexusmods.com/skyrimspecialedition/mods/1988" "0046","XP32 Maximum Skeleton Special Extended","https://www.nexusmods.com/skyrimspecialedition/mods/1988"
"0047","XP32 Maximum Skeleton Special Extended - Fixed Scripts","https://www.nexusmods.com/skyrimspecialedition/mods/44252" "0047","XP32 Maximum Skeleton Special Extended - Fixed Scripts","https://www.nexusmods.com/skyrimspecialedition/mods/44252"
"0049","AddItemMenu - NG","https://www.nexusmods.com/skyrimspecialedition/mods/71409" "0049","AddItemMenu - NG","https://www.nexusmods.com/skyrimspecialedition/mods/71409"
"0054","NAT Stand Alone - 0.4.2 c","https://www.nexusmods.com/skyrimspecialedition/mods/12842" "0054","NAT Stand Alone - 0.4.2 c","https://www.nexusmods.com/skyrimspecialedition/mods/12842"
"0055","Enhanced Lights and FX","https://www.nexusmods.com/skyrimspecialedition/mods/2424" "0055","Enhanced Lights and FX","https://www.nexusmods.com/skyrimspecialedition/mods/2424"
"0056","Cathedral - 3D Pine Grass - Full 3D Coverage","https://www.nexusmods.com/skyrimspecialedition/mods/42032" "0056","Cathedral - 3D Pine Grass - Full 3D Coverage","https://www.nexusmods.com/skyrimspecialedition/mods/42032"
"0057","Nature of the Wild Lands - Landscape textures","https://www.nexusmods.com/skyrimspecialedition/mods/63604" "0057","Nature of the Wild Lands - Landscape textures","https://www.nexusmods.com/skyrimspecialedition/mods/63604"
"0058","Nature of the Wild Lands 2.0","https://www.nexusmods.com/skyrimspecialedition/mods/63604" "0058","Nature of the Wild Lands 2.0","https://www.nexusmods.com/skyrimspecialedition/mods/63604"
"0059","Northern Roads","https://www.nexusmods.com/skyrimspecialedition/mods/77530" "0059","Northern Roads","https://www.nexusmods.com/skyrimspecialedition/mods/77530"
"0060","Northern Roads (SE-AE) - RU","https://www.nexusmods.com/skyrimspecialedition/mods/77652" "0060","Northern Roads (SE-AE) - RU","https://www.nexusmods.com/skyrimspecialedition/mods/77652"
"0061","Nature of the Wild Lands - Grass","https://www.nexusmods.com/skyrimspecialedition/mods/63604" "0061","Nature of the Wild Lands - Grass","https://www.nexusmods.com/skyrimspecialedition/mods/63604"
"0062","Enhanced Landscapes","https://www.nexusmods.com/skyrimspecialedition/mods/18162" "0062","Enhanced Landscapes","https://www.nexusmods.com/skyrimspecialedition/mods/18162"
"0063","EVLaS","https://www.nexusmods.com/skyrimspecialedition/mods/63725" "0063","EVLaS","https://www.nexusmods.com/skyrimspecialedition/mods/63725"
"0064","Morning Fogs SSE - Thin Fog","https://www.nexusmods.com/skyrimspecialedition/mods/21436" "0064","Morning Fogs SSE - Thin Fog","https://www.nexusmods.com/skyrimspecialedition/mods/21436"
"0065","Water for ENB","https://www.nexusmods.com/skyrimspecialedition/mods/37061" "0065","Water for ENB","https://www.nexusmods.com/skyrimspecialedition/mods/37061"
"0066","ELFX Fixes (RUS)","https://www.nexusmods.com/skyrimspecialedition/mods/39765" "0066","ELFX Fixes (RUS)","https://www.nexusmods.com/skyrimspecialedition/mods/39765"
"0067","Picta Series - Improved Sky Meshes","https://www.nexusmods.com/skyrimspecialedition/mods/58263" "0067","Picta Series - Improved Sky Meshes","https://www.nexusmods.com/skyrimspecialedition/mods/58263"
"0068","Storm Lightning for SSE and VR (Minty Lightning 2019)","https://www.nexusmods.com/skyrimspecialedition/mods/29243" "0068","Storm Lightning for SSE and VR (Minty Lightning 2019)","https://www.nexusmods.com/skyrimspecialedition/mods/29243"
"0070","Serious HD sse 1.2","https://www.nexusmods.com/skyrimspecialedition/mods/7435" "0070","Serious HD sse 1.2","https://www.nexusmods.com/skyrimspecialedition/mods/7435"
"0071","HD Lods Textures SE 1K","https://www.nexusmods.com/skyrimspecialedition/mods/3333" "0071","HD Lods Textures SE 1K","https://www.nexusmods.com/skyrimspecialedition/mods/3333"
"0072","B. Noble Skyrim - FULL PACK_Performance Edition","https://www.nexusmods.com/skyrimspecialedition/mods/21423" "0072","B. Noble Skyrim - FULL PACK_Performance Edition","https://www.nexusmods.com/skyrimspecialedition/mods/21423"
"0073","Static Mesh Improvement Mod (SMIM)","https://www.nexusmods.com/skyrimspecialedition/mods/659" "0073","Static Mesh Improvement Mod (SMIM)","https://www.nexusmods.com/skyrimspecialedition/mods/659"
"0074","Bellyaches Animal and Creature Pack","" "0074","Bellyaches Animal and Creature Pack",""
"0075","Majestic Mountains Main","https://www.nexusmods.com/skyrimspecialedition/mods/11052" "0075","Majestic Mountains Main","https://www.nexusmods.com/skyrimspecialedition/mods/11052"
"0077","Schlongs of Skyrim SE","" "0077","Schlongs of Skyrim SE",""
"0079","Bijin Skin - CBBE","https://www.nexusmods.com/skyrimspecialedition/mods/20078" "0079","Bijin Skin - CBBE","https://www.nexusmods.com/skyrimspecialedition/mods/20078"
"0080","Fair Skin Complexion for CBBE","" "0080","Fair Skin Complexion for CBBE",""
"0082","Tempered Skins for Males - SOS Full Version","https://www.nexusmods.com/skyrimspecialedition/mods/7902" "0082","Tempered Skins for Males - SOS Full Version","https://www.nexusmods.com/skyrimspecialedition/mods/7902"
"0085","Kalilies Brows - High Poly Head","https://www.nexusmods.com/skyrimspecialedition/mods/57115" "0085","Kalilies Brows - High Poly Head","https://www.nexusmods.com/skyrimspecialedition/mods/57115"
"0086","High Poly Head SE","" "0086","High Poly Head SE",""
"0087","Expressive Facegen Morphs SE","https://www.nexusmods.com/skyrimspecialedition/mods/35785" "0087","Expressive Facegen Morphs SE","https://www.nexusmods.com/skyrimspecialedition/mods/35785"
"0088","Expressive Facial Animation - Female Edition","https://www.nexusmods.com/skyrimspecialedition/mods/19181" "0088","Expressive Facial Animation - Female Edition","https://www.nexusmods.com/skyrimspecialedition/mods/19181"
"0089","Kalilies Brows","https://www.nexusmods.com/skyrimspecialedition/mods/40595" "0089","Kalilies Brows","https://www.nexusmods.com/skyrimspecialedition/mods/40595"
"0091","ApachiiSkyHair_v_1_6_Full_optimized","https://www.nexusmods.com/skyrimspecialedition/mods/2014" "0091","ApachiiSkyHair_v_1_6_Full_optimized","https://www.nexusmods.com/skyrimspecialedition/mods/2014"
"0092","ApachiiSkyHairMale_v_1_3","https://www.nexusmods.com/skyrimspecialedition/mods/2014" "0092","ApachiiSkyHairMale_v_1_3","https://www.nexusmods.com/skyrimspecialedition/mods/2014"
"0093","ApachiiSkyHairFemale_v_1_5_1","https://www.nexusmods.com/skyrimspecialedition/mods/2014" "0093","ApachiiSkyHairFemale_v_1_5_1","https://www.nexusmods.com/skyrimspecialedition/mods/2014"
"0094","The Witcher 3 Eyes","https://www.nexusmods.com/skyrimspecialedition/mods/2921" "0094","The Witcher 3 Eyes","https://www.nexusmods.com/skyrimspecialedition/mods/2921"
"0095","HDT-SMP Racemenu Hairs and Wigs","" "0095","HDT-SMP Racemenu Hairs and Wigs",""
"0096","Female Makeup Suite - Face - 2K","https://www.nexusmods.com/skyrimspecialedition/mods/24495" "0096","Female Makeup Suite - Face - 2K","https://www.nexusmods.com/skyrimspecialedition/mods/24495"
"0097","The Eyes of Beauty SSE","https://www.nexusmods.com/skyrimspecialedition/mods/16185" "0097","The Eyes of Beauty SSE","https://www.nexusmods.com/skyrimspecialedition/mods/16185"
"0098","KS Hairdos - HDT SMP (Physics)","https://www.nexusmods.com/skyrimspecialedition/mods/31300" "0098","KS Hairdos - HDT SMP (Physics)","https://www.nexusmods.com/skyrimspecialedition/mods/31300"
"0099","Freckle Mania High Quality","https://www.nexusmods.com/skyrimspecialedition/mods/52841" "0099","Freckle Mania High Quality","https://www.nexusmods.com/skyrimspecialedition/mods/52841"
"0100","SE SG Brows","https://www.nexusmods.com/skyrimspecialedition/mods/25890" "0100","SE SG Brows","https://www.nexusmods.com/skyrimspecialedition/mods/25890"
"0101","Hvergelmir's Aesthetics - Brows","https://www.nexusmods.com/skyrimspecialedition/mods/1062" "0101","Hvergelmir's Aesthetics - Brows","https://www.nexusmods.com/skyrimspecialedition/mods/1062"
"0102","Hvergelmir Brows - For High Poly Head","https://www.nexusmods.com/skyrimspecialedition/mods/38493" "0102","Hvergelmir Brows - For High Poly Head","https://www.nexusmods.com/skyrimspecialedition/mods/38493"
"0103","Womens_Eyebrows","" "0103","Womens_Eyebrows",""
"0104","Female Basic Makeup STANDALONE","https://www.nexusmods.com/skyrimspecialedition/mods/44716" "0104","Female Basic Makeup STANDALONE","https://www.nexusmods.com/skyrimspecialedition/mods/44716"
"0105","Empyrean CS SSE 2.1","https://www.nexusmods.com/skyrimspecialedition/mods/38965" "0105","Empyrean CS SSE 2.1","https://www.nexusmods.com/skyrimspecialedition/mods/38965"
"0106","Great modders' SMP Hair pack and Xing","https://www.nexusmods.com/skyrimspecialedition/mods/31405" "0106","Great modders' SMP Hair pack and Xing","https://www.nexusmods.com/skyrimspecialedition/mods/31405"
"0107","llygaid Eye - Unreal 1K","https://www.nexusmods.com/skyrimspecialedition/mods/91422" "0107","llygaid Eye - Unreal 1K","https://www.nexusmods.com/skyrimspecialedition/mods/91422"
"0109","Dynamic Animation Replacer (DAR) v1.0.0 for SkyrimSE","https://www.nexusmods.com/skyrimspecialedition/mods/33746" "0109","Dynamic Animation Replacer (DAR) v1.0.0 for SkyrimSE","https://www.nexusmods.com/skyrimspecialedition/mods/33746"
"0110","Animation Motion Revolution","https://www.nexusmods.com/skyrimspecialedition/mods/50258" "0110","Animation Motion Revolution","https://www.nexusmods.com/skyrimspecialedition/mods/50258"
"0111","Nemesis Unlimited Behavior Engine","https://www.nexusmods.com/skyrimspecialedition/mods/60033" "0111","Nemesis Unlimited Behavior Engine","https://www.nexusmods.com/skyrimspecialedition/mods/60033"
"0112","Gesture Animation Remix (DAR) - main archive","https://www.nexusmods.com/skyrimspecialedition/mods/64420" "0112","Gesture Animation Remix (DAR) - main archive","https://www.nexusmods.com/skyrimspecialedition/mods/64420"
"0113","Conditional Gender Animations","https://www.nexusmods.com/skyrimspecialedition/mods/73446" "0113","Conditional Gender Animations","https://www.nexusmods.com/skyrimspecialedition/mods/73446"
"0116","Audio Overhaul for Skyrim 2","https://www.nexusmods.com/skyrimspecialedition/mods/12466" "0116","Audio Overhaul for Skyrim 2","https://www.nexusmods.com/skyrimspecialedition/mods/12466"
"0117","MLVUCSSE - English Original Voices","https://www.nexusmods.com/skyrimspecialedition/mods/91265" "0117","MLVUCSSE - English Original Voices","https://www.nexusmods.com/skyrimspecialedition/mods/91265"
"0119","Holds SSE Complete - 0.0.9","https://www.nexusmods.com/skyrimspecialedition/mods/10609" "0119","Holds SSE Complete - 0.0.9","https://www.nexusmods.com/skyrimspecialedition/mods/10609"
"0120","Guards Armor Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/22671" "0120","Guards Armor Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/22671"
"0121","Guards Armor Replacer [RUS]","" "0121","Guards Armor Replacer [RUS]",""
"0122","NordWarUA's Vanilla Armor Replacers SSE","https://www.nexusmods.com/skyrimspecialedition/mods/31679" "0122","NordWarUA's Vanilla Armor Replacers SSE","https://www.nexusmods.com/skyrimspecialedition/mods/31679"
"0123","NordWarUA's Vanilla Armor Replacers SSE -RUS-","https://www.nexusmods.com/skyrimspecialedition/mods/39681" "0123","NordWarUA's Vanilla Armor Replacers SSE -RUS-","https://www.nexusmods.com/skyrimspecialedition/mods/39681"
"0124","Lanterns Of Skyrim II","" "0124","Lanterns Of Skyrim II",""
"0125","Lanterns Of Skyrim II - FOMOD","https://www.nexusmods.com/skyrimspecialedition/mods/30817" "0125","Lanterns Of Skyrim II - FOMOD","https://www.nexusmods.com/skyrimspecialedition/mods/30817"
"0128","HD HAIR(SE)","" "0128","HD HAIR(SE)",""
"0129","NecDaz Feet v","" "0129","NecDaz Feet v",""
"0130","Feminine Hands for SE","https://www.nexusmods.com/skyrimspecialedition/mods/67522" "0130","Feminine Hands for SE","https://www.nexusmods.com/skyrimspecialedition/mods/67522"
"0131","Pandorable's NPCs","https://www.nexusmods.com/skyrimspecialedition/mods/19012" "0131","Pandorable's NPCs","https://www.nexusmods.com/skyrimspecialedition/mods/19012"
"0132","PAN_AIO","" "0132","PAN_AIO",""
"0133","PAN_DashingDefenders SE","https://www.nexusmods.com/skyrimspecialedition/mods/78600" "0133","PAN_DashingDefenders SE","https://www.nexusmods.com/skyrimspecialedition/mods/78600"
"0134","Pandorable's Wicked Witches","https://www.nexusmods.com/skyrimspecialedition/mods/77478" "0134","Pandorable's Wicked Witches","https://www.nexusmods.com/skyrimspecialedition/mods/77478"
"0135","Pandorable's NPCs - Sovngarde","https://www.nexusmods.com/skyrimspecialedition/mods/55877" "0135","Pandorable's NPCs - Sovngarde","https://www.nexusmods.com/skyrimspecialedition/mods/55877"
"0136","PAN_DevotedDames","https://www.nexusmods.com/skyrimspecialedition/mods/59531" "0136","PAN_DevotedDames","https://www.nexusmods.com/skyrimspecialedition/mods/59531"
"0137","Pandorable's Serana","https://www.nexusmods.com/skyrimspecialedition/mods/24931" "0137","Pandorable's Serana","https://www.nexusmods.com/skyrimspecialedition/mods/24931"
"0138","Pandorable's Marvellous Miners","https://www.nexusmods.com/skyrimspecialedition/mods/56399" "0138","Pandorable's Marvellous Miners","https://www.nexusmods.com/skyrimspecialedition/mods/56399"
"0139","Pandorable's Valerica","https://www.nexusmods.com/skyrimspecialedition/mods/35799" "0139","Pandorable's Valerica","https://www.nexusmods.com/skyrimspecialedition/mods/35799"
"0140","Pandorable's Frea and Frida","https://www.nexusmods.com/skyrimspecialedition/mods/31273" "0140","Pandorable's Frea and Frida","https://www.nexusmods.com/skyrimspecialedition/mods/31273"
"0141","PAN_Nevri","https://www.nexusmods.com/skyrimspecialedition/mods/45128" "0141","PAN_Nevri","https://www.nexusmods.com/skyrimspecialedition/mods/45128"
"0142","PAN_Brelyna","https://www.nexusmods.com/skyrimspecialedition/mods/45128" "0142","PAN_Brelyna","https://www.nexusmods.com/skyrimspecialedition/mods/45128"
"0143","Pandorable's Black-Briar Ladies","https://www.nexusmods.com/skyrimspecialedition/mods/33731" "0143","Pandorable's Black-Briar Ladies","https://www.nexusmods.com/skyrimspecialedition/mods/33731"
"0144","Pandorable's Warrior Women","https://www.nexusmods.com/skyrimspecialedition/mods/34464" "0144","Pandorable's Warrior Women","https://www.nexusmods.com/skyrimspecialedition/mods/34464"
"0145","Pandorable's Lethal Ladies","https://www.nexusmods.com/skyrimspecialedition/mods/36827" "0145","Pandorable's Lethal Ladies","https://www.nexusmods.com/skyrimspecialedition/mods/36827"
"0146","PAN_ShieldSisters","https://www.nexusmods.com/skyrimspecialedition/mods/42480" "0146","PAN_ShieldSisters","https://www.nexusmods.com/skyrimspecialedition/mods/42480"
"0147","Pandorable's NPCs - Males","https://www.nexusmods.com/skyrimspecialedition/mods/42043" "0147","Pandorable's NPCs - Males","https://www.nexusmods.com/skyrimspecialedition/mods/42043"
"0148","Pandorable's NPCs - Males 2","https://www.nexusmods.com/skyrimspecialedition/mods/50617" "0148","Pandorable's NPCs - Males 2","https://www.nexusmods.com/skyrimspecialedition/mods/50617"
"0149","Bijin Warmaidens SE","https://www.nexusmods.com/skyrimspecialedition/mods/1825" "0149","Bijin Warmaidens SE","https://www.nexusmods.com/skyrimspecialedition/mods/1825"
"0150","Bijin Warmaidens SE - High-res skin textures for CBBE","https://www.nexusmods.com/skyrimspecialedition/mods/1825" "0150","Bijin Warmaidens SE - High-res skin textures for CBBE","https://www.nexusmods.com/skyrimspecialedition/mods/1825"
"0151","Bijin Wives SE 1.1.2","https://www.nexusmods.com/skyrimspecialedition/mods/11247" "0151","Bijin Wives SE 1.1.2","https://www.nexusmods.com/skyrimspecialedition/mods/11247"
"0152","Bijin NPCs SE 1.2.1","https://www.nexusmods.com/skyrimspecialedition/mods/11287" "0152","Bijin NPCs SE 1.2.1","https://www.nexusmods.com/skyrimspecialedition/mods/11287"
"0153","Bijin AIO SE for USSEP","https://www.nexusmods.com/skyrimspecialedition/mods/11287" "0153","Bijin AIO SE for USSEP","https://www.nexusmods.com/skyrimspecialedition/mods/11287"
"0161","Dragonborn Voice Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/84329" "0161","Dragonborn Voice Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/84329"
"0162","Bella Voice DBVO","https://www.nexusmods.com/skyrimspecialedition/mods/89810" "0162","Bella Voice DBVO","https://www.nexusmods.com/skyrimspecialedition/mods/89810"
"0163","Bella Voice Fix","" "0163","Bella Voice Fix",""
"0164","voicebella maingame and dlc","https://www.nexusmods.com/skyrimspecialedition/mods/89810" "0164","voicebella maingame and dlc","https://www.nexusmods.com/skyrimspecialedition/mods/89810"
"0165","Name heroine DBVO","https://www.nexusmods.com/skyrimspecialedition/mods/89810" "0165","Name heroine DBVO","https://www.nexusmods.com/skyrimspecialedition/mods/89810"
"0169","IFPV","https://www.nexusmods.com/skyrimspecialedition/mods/22306" "0169","IFPV","https://www.nexusmods.com/skyrimspecialedition/mods/22306"
"0170","RaceMenu Special Edition","" "0170","RaceMenu Special Edition",""
"0171","RaceMenu Special Edition RUS","" "0171","RaceMenu Special Edition RUS",""
"0172","Alternate Start - Live Another Life","https://www.nexusmods.com/skyrimspecialedition/mods/272" "0172","Alternate Start - Live Another Life","https://www.nexusmods.com/skyrimspecialedition/mods/272"
"0174","Alternate Conversation Camera","https://www.nexusmods.com/skyrimspecialedition/mods/21220" "0174","Alternate Conversation Camera","https://www.nexusmods.com/skyrimspecialedition/mods/21220"
"0175","SkyHUD","https://www.nexusmods.com/skyrimspecialedition/mods/463" "0175","SkyHUD","https://www.nexusmods.com/skyrimspecialedition/mods/463"
"0176","Spell Perk Item Distributor (SPID)","https://www.nexusmods.com/skyrimspecialedition/mods/36869" "0176","Spell Perk Item Distributor (SPID)","https://www.nexusmods.com/skyrimspecialedition/mods/36869"
"0177","Vokrii 3.8.2","https://www.nexusmods.com/skyrimspecialedition/mods/26176" "0177","Vokrii 3.8.2","https://www.nexusmods.com/skyrimspecialedition/mods/26176"
"0178","Vokrii - Scaling Rebalance","https://www.nexusmods.com/skyrimspecialedition/mods/55091" "0178","Vokrii - Scaling Rebalance","https://www.nexusmods.com/skyrimspecialedition/mods/55091"
"0179","NORDIC UI - Interface Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/49881" "0179","NORDIC UI - Interface Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/49881"
"0180","iNeed - Food, Water and Sleep - Continued","https://www.nexusmods.com/skyrimspecialedition/mods/19390" "0180","iNeed - Food, Water and Sleep - Continued","https://www.nexusmods.com/skyrimspecialedition/mods/19390"
"0181","Frostfall 3.4.1 SE Release","https://www.nexusmods.com/skyrimspecialedition/mods/671" "0181","Frostfall 3.4.1 SE Release","https://www.nexusmods.com/skyrimspecialedition/mods/671"
"0182","Campfire 1.12.1SEVR Release","https://www.nexusmods.com/skyrimspecialedition/mods/667" "0182","Campfire 1.12.1SEVR Release","https://www.nexusmods.com/skyrimspecialedition/mods/667"
"0183","SkyrimForBattleV","" "0183","SkyrimForBattleV",""
"0184","PC Head Tracking - MCM v4.8 SE","https://www.nexusmods.com/skyrimspecialedition/mods/11993" "0184","PC Head Tracking - MCM v4.8 SE","https://www.nexusmods.com/skyrimspecialedition/mods/11993"
"0186","SummonShadowMERCHANT","https://www.nexusmods.com/skyrimspecialedition/mods/2177" "0186","SummonShadowMERCHANT","https://www.nexusmods.com/skyrimspecialedition/mods/2177"
"0188","VioLens - A Killmove Mod SE","https://www.nexusmods.com/skyrimspecialedition/mods/668" "0188","VioLens - A Killmove Mod SE","https://www.nexusmods.com/skyrimspecialedition/mods/668"
"0189","True Directional Movement","https://www.nexusmods.com/skyrimspecialedition/mods/51614" "0189","True Directional Movement","https://www.nexusmods.com/skyrimspecialedition/mods/51614"
"0190","True Directional Movement RU","https://www.nexusmods.com/skyrimspecialedition/mods/53188" "0190","True Directional Movement RU","https://www.nexusmods.com/skyrimspecialedition/mods/53188"
"0191","SkySA","" "0191","SkySA",""
"0192","Grip Switch SkySA 1.2.1","https://www.nexusmods.com/skyrim/mods/54056" "0192","Grip Switch SkySA 1.2.1","https://www.nexusmods.com/skyrim/mods/54056"
"0194","TK Dodge SE","https://www.nexusmods.com/skyrimspecialedition/mods/15309" "0194","TK Dodge SE","https://www.nexusmods.com/skyrimspecialedition/mods/15309"
"0195","JH Combat Animation Pack","https://www.nexusmods.com/skyrimspecialedition/mods/48500" "0195","JH Combat Animation Pack","https://www.nexusmods.com/skyrimspecialedition/mods/48500"
"0197","Elder Souls - Sword 2.0 SE","https://www.nexusmods.com/skyrimspecialedition/mods/47191" "0197","Elder Souls - Sword 2.0 SE","https://www.nexusmods.com/skyrimspecialedition/mods/47191"
"0198","Part 1) SEKIRO HUD by Inpa Skyrim","https://www.nexusmods.com/skyrimspecialedition/mods/41428" "0198","Part 1) SEKIRO HUD by Inpa Skyrim","https://www.nexusmods.com/skyrimspecialedition/mods/41428"
"0199","Part 2) SEKIRO COMBAT","https://www.nexusmods.com/skyrimspecialedition/mods/41428" "0199","Part 2) SEKIRO COMBAT","https://www.nexusmods.com/skyrimspecialedition/mods/41428"
"0200","Stances - Add-On","https://www.nexusmods.com/skyrimspecialedition/mods/41251" "0200","Stances - Add-On","https://www.nexusmods.com/skyrimspecialedition/mods/41251"
"0201","Stances - Dynamic Animation Sets","https://www.nexusmods.com/skyrimspecialedition/mods/40484" "0201","Stances - Dynamic Animation Sets","https://www.nexusmods.com/skyrimspecialedition/mods/40484"
"0202","AMR Stance Framework","https://www.nexusmods.com/skyrimspecialedition/mods/54674" "0202","AMR Stance Framework","https://www.nexusmods.com/skyrimspecialedition/mods/54674"
"0203","Enhanced Enemy AI","https://www.nexusmods.com/skyrimspecialedition/mods/32063" "0203","Enhanced Enemy AI","https://www.nexusmods.com/skyrimspecialedition/mods/32063"
"0204","Precision","https://www.nexusmods.com/skyrimspecialedition/mods/72347" "0204","Precision","https://www.nexusmods.com/skyrimspecialedition/mods/72347"
"0205","Keytrace","https://www.nexusmods.com/skyrimspecialedition/mods/63362" "0205","Keytrace","https://www.nexusmods.com/skyrimspecialedition/mods/63362"
"0206","Elden Power Attack","https://www.nexusmods.com/skyrimspecialedition/mods/66711" "0206","Elden Power Attack","https://www.nexusmods.com/skyrimspecialedition/mods/66711"
"0207","Dark Souls Movement And Stamina Regen","https://www.nexusmods.com/skyrimspecialedition/mods/33135" "0207","Dark Souls Movement And Stamina Regen","https://www.nexusmods.com/skyrimspecialedition/mods/33135"
"0208","Animated Potions","https://www.nexusmods.com/skyrimspecialedition/mods/73819" "0208","Animated Potions","https://www.nexusmods.com/skyrimspecialedition/mods/73819"
"0209","3PCO - 3rd Person Camera Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/89516" "0209","3PCO - 3rd Person Camera Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/89516"
"0210","Nock to Tip","" "0210","Nock to Tip",""
"0211","Deadly Mutilation","https://www.nexusmods.com/skyrimspecialedition/mods/34917" "0211","Deadly Mutilation","https://www.nexusmods.com/skyrimspecialedition/mods/34917"
"0213","Heroes Of Sovngarde","https://www.nexusmods.com/skyrimspecialedition/mods/3053" "0213","Heroes Of Sovngarde","https://www.nexusmods.com/skyrimspecialedition/mods/3053"
"0214","Populated Dungeons Caves Ruins Legendary Edition","https://www.nexusmods.com/skyrimspecialedition/mods/2820" "0214","Populated Dungeons Caves Ruins Legendary Edition","https://www.nexusmods.com/skyrimspecialedition/mods/2820"
"0216","[immyneedscake] Skydraenei by Eriayai CBBE SSE","" "0216","[immyneedscake] Skydraenei by Eriayai CBBE SSE",""
"0217","3BA SkyDraenei","https://www.nexusmods.com/skyrimspecialedition/mods/57617" "0217","3BA SkyDraenei","https://www.nexusmods.com/skyrimspecialedition/mods/57617"
"0218","True Demon Race","https://www.nexusmods.com/skyrimspecialedition/mods/58141" "0218","True Demon Race","https://www.nexusmods.com/skyrimspecialedition/mods/58141"
"0222","Acalypha - Fully Voiced Follower","" "0222","Acalypha - Fully Voiced Follower",""
"0223","INIGO_V2.4C SE","https://www.nexusmods.com/skyrimspecialedition/mods/1461" "0223","INIGO_V2.4C SE","https://www.nexusmods.com/skyrimspecialedition/mods/1461"
"0224","Song Of The Green 1.4","https://www.nexusmods.com/skyrimspecialedition/mods/11278" "0224","Song Of The Green 1.4","https://www.nexusmods.com/skyrimspecialedition/mods/11278"
"0225","Refined Auri SSE","https://www.nexusmods.com/skyrimspecialedition/mods/36444" "0225","Refined Auri SSE","https://www.nexusmods.com/skyrimspecialedition/mods/36444"
"0226","SkyMirai Standalone Follower 2_11 SSE","https://www.nexusmods.com/skyrimspecialedition/mods/10908" "0226","SkyMirai Standalone Follower 2_11 SSE","https://www.nexusmods.com/skyrimspecialedition/mods/10908"
"0227","Nicola Avenicci SE 0.3","https://www.nexusmods.com/skyrimspecialedition/mods/6862" "0227","Nicola Avenicci SE 0.3","https://www.nexusmods.com/skyrimspecialedition/mods/6862"
"0229","WIC (Whinter is Coming) Cloaks SSE 2_4","https://www.nexusmods.com/skyrimspecialedition/mods/4933" "0229","WIC (Whinter is Coming) Cloaks SSE 2_4","https://www.nexusmods.com/skyrimspecialedition/mods/4933"
"0230","Winter Is Coming - Cloaks RU SE","https://www.nexusmods.com/skyrimspecialedition/mods/62756" "0230","Winter Is Coming - Cloaks RU SE","https://www.nexusmods.com/skyrimspecialedition/mods/62756"
"0231","True Weapons","https://www.nexusmods.com/skyrimspecialedition/mods/38596" "0231","True Weapons","https://www.nexusmods.com/skyrimspecialedition/mods/38596"
"0232","Eclipse_Mage_Outfit_HDT","" "0232","Eclipse_Mage_Outfit_HDT",""
"0233","[SE] BDOR Navillera","" "0233","[SE] BDOR Navillera",""
"0235","Dominica Preset RM SSE","https://www.nexusmods.com/skyrimspecialedition/mods/70448" "0235","Dominica Preset RM SSE","https://www.nexusmods.com/skyrimspecialedition/mods/70448"
"0236","Irena High Poly Head preset by ElleShet SE","" "0236","Irena High Poly Head preset by ElleShet SE",""
"0237","Nirani Indoril Body preset SE by ElleShet","" "0237","Nirani Indoril Body preset SE by ElleShet",""
"0239","MainMenuRandomizerSE","https://www.nexusmods.com/skyrimspecialedition/mods/33574" "0239","MainMenuRandomizerSE","https://www.nexusmods.com/skyrimspecialedition/mods/33574"
"0240","Main Menu Redone - 1080p","https://www.nexusmods.com/skyrimspecialedition/mods/59993" "0240","Main Menu Redone - 1080p","https://www.nexusmods.com/skyrimspecialedition/mods/59993"
"0241","Main Menu Design Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/30810" "0241","Main Menu Design Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/30810"
"0242","Simple Load Screens","https://www.nexusmods.com/skyrimspecialedition/mods/49529" "0242","Simple Load Screens","https://www.nexusmods.com/skyrimspecialedition/mods/49529"
"0243","NORDIC UI - Alternate loading screen and start menu","https://www.nexusmods.com/skyrimspecialedition/mods/54153" "0243","NORDIC UI - Alternate loading screen and start menu","https://www.nexusmods.com/skyrimspecialedition/mods/54153"
"0245","Fantasy Soundtrack Project SE","https://www.nexusmods.com/skyrimspecialedition/mods/5268" "0245","Fantasy Soundtrack Project SE","https://www.nexusmods.com/skyrimspecialedition/mods/5268"
"0246","Dreyma Mod [new Music of Skyrim]","https://www.nexusmods.com/skyrimspecialedition/mods/23386" "0246","Dreyma Mod [new Music of Skyrim]","https://www.nexusmods.com/skyrimspecialedition/mods/23386"
"0248","NAT.ENB - ESP WEATHER PLUGIN","https://www.nexusmods.com/skyrimspecialedition/mods/27141" "0248","NAT.ENB - ESP WEATHER PLUGIN","https://www.nexusmods.com/skyrimspecialedition/mods/27141"
"0250","NordWarUA's Vanilla Armor Replacers SSE -Patches-","https://www.nexusmods.com/skyrimspecialedition/mods/31679" "0250","NordWarUA's Vanilla Armor Replacers SSE -Patches-","https://www.nexusmods.com/skyrimspecialedition/mods/31679"
"0251","Northern Roads - Patches Compendium","https://www.nexusmods.com/skyrimspecialedition/mods/77893" "0251","Northern Roads - Patches Compendium","https://www.nexusmods.com/skyrimspecialedition/mods/77893"
"0252","Holds The City Overhaul -RUS-","" "0252","Holds The City Overhaul -RUS-",""
"0253","Majestic Mountains [RUS]","" "0253","Majestic Mountains [RUS]",""
"0254","Face Discoloration Fix SE","https://www.nexusmods.com/skyrimspecialedition/mods/42441" "0254","Face Discoloration Fix SE","https://www.nexusmods.com/skyrimspecialedition/mods/42441"
"0255","Simple Load Screens - Russian translation","https://www.nexusmods.com/skyrimspecialedition/mods/50912" "0255","Simple Load Screens - Russian translation","https://www.nexusmods.com/skyrimspecialedition/mods/50912"
"0256","Precision - Accurate Melee Collisions - RU","https://www.nexusmods.com/skyrimspecialedition/mods/72584" "0256","Precision - Accurate Melee Collisions - RU","https://www.nexusmods.com/skyrimspecialedition/mods/72584"
"0257","Pandorable's NPCs_SSE_v1.4_RU","https://www.nexusmods.com/skyrimspecialedition/mods/27582" "0257","Pandorable's NPCs_SSE_v1.4_RU","https://www.nexusmods.com/skyrimspecialedition/mods/27582"
"0258","Pandorables NPCs Males [RUS]","" "0258","Pandorables NPCs Males [RUS]",""
"0259","Pandorables NPCs - Males 2 [RUS]","" "0259","Pandorables NPCs - Males 2 [RUS]",""
"0260","PAN_AIO_small - AI Overhaul SSE patch-1-4-Rus","" "0260","PAN_AIO_small - AI Overhaul SSE patch-1-4-Rus",""
"0261","Irena High Poly Head preset by ElleShet SE 3BBB Body","" "0261","Irena High Poly Head preset by ElleShet SE 3BBB Body",""
"0262","Nirani Indoril High Poly Head preset SE by ElleShet","" "0262","Nirani Indoril High Poly Head preset SE by ElleShet",""
"0263","Deadly Mutilation V1_3_3 CBBE meshes Pack","https://www.nexusmods.com/skyrimspecialedition/mods/34917" "0263","Deadly Mutilation V1_3_3 CBBE meshes Pack","https://www.nexusmods.com/skyrimspecialedition/mods/34917"
"0264","Bijin skin compability patch Alternative normal map","https://www.nexusmods.com/skyrimspecialedition/mods/27405" "0264","Bijin skin compability patch Alternative normal map","https://www.nexusmods.com/skyrimspecialedition/mods/27405"
"0265","SEKIRO COMBAT SE - RU","https://www.nexusmods.com/skyrimspecialedition/mods/57678" "0265","SEKIRO COMBAT SE - RU","https://www.nexusmods.com/skyrimspecialedition/mods/57678"
"0266","Nordic UI -RUS-","" "0266","Nordic UI -RUS-",""
"0267","Campfire 1.12.1 and Frostfall 3.4.1SE","https://www.nexusmods.com/skyrimspecialedition/mods/17925" "0267","Campfire 1.12.1 and Frostfall 3.4.1SE","https://www.nexusmods.com/skyrimspecialedition/mods/17925"
"0268","SkyrimForBattleV-Patch","" "0268","SkyrimForBattleV-Patch",""
"0269","IFPV Detector Plugin","https://www.nexusmods.com/skyrimspecialedition/mods/22306" "0269","IFPV Detector Plugin","https://www.nexusmods.com/skyrimspecialedition/mods/22306"
"0270","Jaxonz MCM Kicker SE_rus_","" "0270","Jaxonz MCM Kicker SE_rus_",""
"0271","SkyUI -RUS-","https://www.nexusmods.com/skyrimspecialedition/mods/21088" "0271","SkyUI -RUS-","https://www.nexusmods.com/skyrimspecialedition/mods/21088"
"0272","INIGO -RUS-","" "0272","INIGO -RUS-",""
"0273","Song of the Green _RUS_","" "0273","Song of the Green _RUS_",""
"0274","Inigo Banter patch","" "0274","Inigo Banter patch",""
"0275","Refined Auri SSE -PATCH-","https://www.nexusmods.com/skyrimspecialedition/mods/36444" "0275","Refined Auri SSE -PATCH-","https://www.nexusmods.com/skyrimspecialedition/mods/36444"
"0276","Refined Auri SSE -RUS-","" "0276","Refined Auri SSE -RUS-",""
"0277","Vokrii(26176)-2-0-1-RU","https://www.nexusmods.com/skyrimspecialedition/mods/28035" "0277","Vokrii(26176)-2-0-1-RU","https://www.nexusmods.com/skyrimspecialedition/mods/28035"
"0278","Саурон","" "0278","Саурон",""
"0279","Sweety Preset","" "0279","Sweety Preset",""
"0280","Console font fix - RU","https://www.nexusmods.com/skyrimspecialedition/mods/55792" "0280","Console font fix - RU","https://www.nexusmods.com/skyrimspecialedition/mods/55792"
"0281","BodySlide output","" "0281","BodySlide output",""
"0282","DBVO NordicUI Patch","https://www.nexusmods.com/skyrimspecialedition/mods/84329" "0282","DBVO NordicUI Patch","https://www.nexusmods.com/skyrimspecialedition/mods/84329"
"0284","Dragonborn Voice Over - Stereo Plugin Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/90417" "0284","Dragonborn Voice Over - Stereo Plugin Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/90417"
"0285","FNIS Overwrite","" "0285","FNIS Overwrite",""
"0286","Nemesis overwrite","" "0286","Nemesis overwrite",""
"0288","Pipe Smoking SE","https://www.nexusmods.com/skyrimspecialedition/mods/13061" "0288","Pipe Smoking SE","https://www.nexusmods.com/skyrimspecialedition/mods/13061"
"0289","Pipe Smoking SE RUS","" "0289","Pipe Smoking SE RUS",""
"0291","PapyrusUtil SE - Scripting Utility Functions","https://www.nexusmods.com/skyrimspecialedition/mods/13048" "0291","PapyrusUtil SE - Scripting Utility Functions","https://www.nexusmods.com/skyrimspecialedition/mods/13048"
"0292","powerofthree's Papyrus Extender","https://www.nexusmods.com/skyrimspecialedition/mods/22854" "0292","powerofthree's Papyrus Extender","https://www.nexusmods.com/skyrimspecialedition/mods/22854"

1 #Mod_Priority #Mod_Name #Mod_Nexus_URL
2 0000 Unmanaged: FNIS
3 0002 DLC: HearthFires
4 0003 DLC: Dragonborn
5 0004 DLC: Dawnguard
6 0006 Address Library for SKSE Plugins https://www.nexusmods.com/skyrimspecialedition/mods/32444
7 0007 Unofficial Skyrim Special Edition Patch-RUS-RUS https://www.nexusmods.com/skyrimspecialedition/mods/266
8 0008 powerofthree's Tweaks https://www.nexusmods.com/skyrimspecialedition/mods/51073
9 0009 JContainers SE https://www.nexusmods.com/skyrimspecialedition/mods/16495
10 0010 ConsoleUtilSSE https://www.nexusmods.com/skyrimspecialedition/mods/24858
11 0011 ENB Helper SE 1.5 for SSE 1.5.97 https://www.nexusmods.com/skyrimspecialedition/mods/23174
12 0012 Weapons Armor Clothing and Clutter Fixes https://www.nexusmods.com/skyrimspecialedition/mods/18994
13 0013 Weapons Armor Clothing and Clutter Fixes 2.9 RUS https://www.nexusmods.com/skyrimspecialedition/mods/19284
14 0014 SkyUI_5_2_SE https://www.nexusmods.com/skyrimspecialedition/mods/12604
15 0015 UIExtensions https://www.nexusmods.com/skyrimspecialedition/mods/17561
16 0016 DynDOLOD Resources SE https://www.nexusmods.com/skyrimspecialedition/mods/32382
17 0018 RaceCompatibility with fixes for SSE https://www.nexusmods.com/skyrimspecialedition/mods/2853
18 0019 more HUD SE Light Master- Pre AE https://www.nexusmods.com/skyrimspecialedition/mods/12688
19 0020 MCM Helper SE https://www.nexusmods.com/skyrimspecialedition/mods/53000
20 0021 FileAccess Interface for Skyrim SE Scripts - FISSES (FISS) https://www.nexusmods.com/skyrimspecialedition/mods/13956
21 0022 Papyrus API https://www.nexusmods.com/skyrimspecialedition/mods/24858
22 0023 IFrame Generator RE https://www.nexusmods.com/skyrimspecialedition/mods/74401
23 0024 dTry's Key Utils SE https://www.nexusmods.com/skyrimspecialedition/mods/69944
24 0025 Papyrus Ini Manipulator https://www.nexusmods.com/skyrimspecialedition/mods/65634
25 0027 SSE Display Tweaks https://www.nexusmods.com/skyrimspecialedition/mods/34705
26 0028 CrashLogger https://www.nexusmods.com/skyrimspecialedition/mods/59818
27 0029 CrashLoggerSE https://www.nexusmods.com/skyrimspecialedition/mods/59818
28 0035 BodySlide and Outfit Studio https://www.nexusmods.com/skyrimspecialedition/mods/201
29 0036 Перевод BodySlide and Outfit Studio
30 0038 Caliente's Beautiful Bodies Enhancer -CBBE- https://www.nexusmods.com/skyrimspecialedition/mods/198
31 0039 CBPC - Physics with Collisions https://www.nexusmods.com/skyrimspecialedition/mods/21224
32 0041 HDT-SMP for SSE 1.5.97 (avx on) https://www.nexusmods.com/skyrimspecialedition/mods/30872
33 0045 CBBE 3BA https://www.nexusmods.com/skyrimspecialedition/mods/30174
34 0046 XP32 Maximum Skeleton Special Extended https://www.nexusmods.com/skyrimspecialedition/mods/1988
35 0047 XP32 Maximum Skeleton Special Extended - Fixed Scripts https://www.nexusmods.com/skyrimspecialedition/mods/44252
36 0049 AddItemMenu - NG https://www.nexusmods.com/skyrimspecialedition/mods/71409
37 0054 NAT Stand Alone - 0.4.2 c https://www.nexusmods.com/skyrimspecialedition/mods/12842
38 0055 Enhanced Lights and FX https://www.nexusmods.com/skyrimspecialedition/mods/2424
39 0056 Cathedral - 3D Pine Grass - Full 3D Coverage https://www.nexusmods.com/skyrimspecialedition/mods/42032
40 0057 Nature of the Wild Lands - Landscape textures https://www.nexusmods.com/skyrimspecialedition/mods/63604
41 0058 Nature of the Wild Lands 2.0 https://www.nexusmods.com/skyrimspecialedition/mods/63604
42 0059 Northern Roads https://www.nexusmods.com/skyrimspecialedition/mods/77530
43 0060 Northern Roads (SE-AE) - RU https://www.nexusmods.com/skyrimspecialedition/mods/77652
44 0061 Nature of the Wild Lands - Grass https://www.nexusmods.com/skyrimspecialedition/mods/63604
45 0062 Enhanced Landscapes https://www.nexusmods.com/skyrimspecialedition/mods/18162
46 0063 EVLaS https://www.nexusmods.com/skyrimspecialedition/mods/63725
47 0064 Morning Fogs SSE - Thin Fog https://www.nexusmods.com/skyrimspecialedition/mods/21436
48 0065 Water for ENB https://www.nexusmods.com/skyrimspecialedition/mods/37061
49 0066 ELFX Fixes (RUS) https://www.nexusmods.com/skyrimspecialedition/mods/39765
50 0067 Picta Series - Improved Sky Meshes https://www.nexusmods.com/skyrimspecialedition/mods/58263
51 0068 Storm Lightning for SSE and VR (Minty Lightning 2019) https://www.nexusmods.com/skyrimspecialedition/mods/29243
52 0070 Serious HD sse 1.2 https://www.nexusmods.com/skyrimspecialedition/mods/7435
53 0071 HD Lods Textures SE 1K https://www.nexusmods.com/skyrimspecialedition/mods/3333
54 0072 B. Noble Skyrim - FULL PACK_Performance Edition https://www.nexusmods.com/skyrimspecialedition/mods/21423
55 0073 Static Mesh Improvement Mod (SMIM) https://www.nexusmods.com/skyrimspecialedition/mods/659
56 0074 Bellyaches Animal and Creature Pack
57 0075 Majestic Mountains Main https://www.nexusmods.com/skyrimspecialedition/mods/11052
58 0077 Schlongs of Skyrim SE
59 0079 Bijin Skin - CBBE https://www.nexusmods.com/skyrimspecialedition/mods/20078
60 0080 Fair Skin Complexion for CBBE
61 0082 Tempered Skins for Males - SOS Full Version https://www.nexusmods.com/skyrimspecialedition/mods/7902
62 0085 Kalilies Brows - High Poly Head https://www.nexusmods.com/skyrimspecialedition/mods/57115
63 0086 High Poly Head SE
64 0087 Expressive Facegen Morphs SE https://www.nexusmods.com/skyrimspecialedition/mods/35785
65 0088 Expressive Facial Animation - Female Edition https://www.nexusmods.com/skyrimspecialedition/mods/19181
66 0089 Kalilies Brows https://www.nexusmods.com/skyrimspecialedition/mods/40595
67 0091 ApachiiSkyHair_v_1_6_Full_optimized https://www.nexusmods.com/skyrimspecialedition/mods/2014
68 0092 ApachiiSkyHairMale_v_1_3 https://www.nexusmods.com/skyrimspecialedition/mods/2014
69 0093 ApachiiSkyHairFemale_v_1_5_1 https://www.nexusmods.com/skyrimspecialedition/mods/2014
70 0094 The Witcher 3 Eyes https://www.nexusmods.com/skyrimspecialedition/mods/2921
71 0095 HDT-SMP Racemenu Hairs and Wigs
72 0096 Female Makeup Suite - Face - 2K https://www.nexusmods.com/skyrimspecialedition/mods/24495
73 0097 The Eyes of Beauty SSE https://www.nexusmods.com/skyrimspecialedition/mods/16185
74 0098 KS Hairdos - HDT SMP (Physics) https://www.nexusmods.com/skyrimspecialedition/mods/31300
75 0099 Freckle Mania High Quality https://www.nexusmods.com/skyrimspecialedition/mods/52841
76 0100 SE SG Brows https://www.nexusmods.com/skyrimspecialedition/mods/25890
77 0101 Hvergelmir's Aesthetics - Brows https://www.nexusmods.com/skyrimspecialedition/mods/1062
78 0102 Hvergelmir Brows - For High Poly Head https://www.nexusmods.com/skyrimspecialedition/mods/38493
79 0103 Womens_Eyebrows
80 0104 Female Basic Makeup STANDALONE https://www.nexusmods.com/skyrimspecialedition/mods/44716
81 0105 Empyrean CS SSE 2.1 https://www.nexusmods.com/skyrimspecialedition/mods/38965
82 0106 Great modders' SMP Hair pack and Xing https://www.nexusmods.com/skyrimspecialedition/mods/31405
83 0107 llygaid Eye - Unreal 1K https://www.nexusmods.com/skyrimspecialedition/mods/91422
84 0109 Dynamic Animation Replacer (DAR) v1.0.0 for SkyrimSE https://www.nexusmods.com/skyrimspecialedition/mods/33746
85 0110 Animation Motion Revolution https://www.nexusmods.com/skyrimspecialedition/mods/50258
86 0111 Nemesis Unlimited Behavior Engine https://www.nexusmods.com/skyrimspecialedition/mods/60033
87 0112 Gesture Animation Remix (DAR) - main archive https://www.nexusmods.com/skyrimspecialedition/mods/64420
88 0113 Conditional Gender Animations https://www.nexusmods.com/skyrimspecialedition/mods/73446
89 0116 Audio Overhaul for Skyrim 2 https://www.nexusmods.com/skyrimspecialedition/mods/12466
90 0117 MLVUCSSE - English Original Voices https://www.nexusmods.com/skyrimspecialedition/mods/91265
91 0119 Holds SSE Complete - 0.0.9 https://www.nexusmods.com/skyrimspecialedition/mods/10609
92 0120 Guards Armor Replacer https://www.nexusmods.com/skyrimspecialedition/mods/22671
93 0121 Guards Armor Replacer [RUS]
94 0122 NordWarUA's Vanilla Armor Replacers SSE https://www.nexusmods.com/skyrimspecialedition/mods/31679
95 0123 NordWarUA's Vanilla Armor Replacers SSE -RUS- https://www.nexusmods.com/skyrimspecialedition/mods/39681
96 0124 Lanterns Of Skyrim II
97 0125 Lanterns Of Skyrim II - FOMOD https://www.nexusmods.com/skyrimspecialedition/mods/30817
98 0128 HD HAIR(SE)
99 0129 NecDaz Feet v
100 0130 Feminine Hands for SE https://www.nexusmods.com/skyrimspecialedition/mods/67522
101 0131 Pandorable's NPCs https://www.nexusmods.com/skyrimspecialedition/mods/19012
102 0132 PAN_AIO
103 0133 PAN_DashingDefenders SE https://www.nexusmods.com/skyrimspecialedition/mods/78600
104 0134 Pandorable's Wicked Witches https://www.nexusmods.com/skyrimspecialedition/mods/77478
105 0135 Pandorable's NPCs - Sovngarde https://www.nexusmods.com/skyrimspecialedition/mods/55877
106 0136 PAN_DevotedDames https://www.nexusmods.com/skyrimspecialedition/mods/59531
107 0137 Pandorable's Serana https://www.nexusmods.com/skyrimspecialedition/mods/24931
108 0138 Pandorable's Marvellous Miners https://www.nexusmods.com/skyrimspecialedition/mods/56399
109 0139 Pandorable's Valerica https://www.nexusmods.com/skyrimspecialedition/mods/35799
110 0140 Pandorable's Frea and Frida https://www.nexusmods.com/skyrimspecialedition/mods/31273
111 0141 PAN_Nevri https://www.nexusmods.com/skyrimspecialedition/mods/45128
112 0142 PAN_Brelyna https://www.nexusmods.com/skyrimspecialedition/mods/45128
113 0143 Pandorable's Black-Briar Ladies https://www.nexusmods.com/skyrimspecialedition/mods/33731
114 0144 Pandorable's Warrior Women https://www.nexusmods.com/skyrimspecialedition/mods/34464
115 0145 Pandorable's Lethal Ladies https://www.nexusmods.com/skyrimspecialedition/mods/36827
116 0146 PAN_ShieldSisters https://www.nexusmods.com/skyrimspecialedition/mods/42480
117 0147 Pandorable's NPCs - Males https://www.nexusmods.com/skyrimspecialedition/mods/42043
118 0148 Pandorable's NPCs - Males 2 https://www.nexusmods.com/skyrimspecialedition/mods/50617
119 0149 Bijin Warmaidens SE https://www.nexusmods.com/skyrimspecialedition/mods/1825
120 0150 Bijin Warmaidens SE - High-res skin textures for CBBE https://www.nexusmods.com/skyrimspecialedition/mods/1825
121 0151 Bijin Wives SE 1.1.2 https://www.nexusmods.com/skyrimspecialedition/mods/11247
122 0152 Bijin NPCs SE 1.2.1 https://www.nexusmods.com/skyrimspecialedition/mods/11287
123 0153 Bijin AIO SE for USSEP https://www.nexusmods.com/skyrimspecialedition/mods/11287
124 0161 Dragonborn Voice Overhaul https://www.nexusmods.com/skyrimspecialedition/mods/84329
125 0162 Bella Voice DBVO https://www.nexusmods.com/skyrimspecialedition/mods/89810
126 0163 Bella Voice Fix
127 0164 voicebella maingame and dlc https://www.nexusmods.com/skyrimspecialedition/mods/89810
128 0165 Name heroine DBVO https://www.nexusmods.com/skyrimspecialedition/mods/89810
129 0169 IFPV https://www.nexusmods.com/skyrimspecialedition/mods/22306
130 0170 RaceMenu Special Edition
131 0171 RaceMenu Special Edition RUS
132 0172 Alternate Start - Live Another Life https://www.nexusmods.com/skyrimspecialedition/mods/272
133 0174 Alternate Conversation Camera https://www.nexusmods.com/skyrimspecialedition/mods/21220
134 0175 SkyHUD https://www.nexusmods.com/skyrimspecialedition/mods/463
135 0176 Spell Perk Item Distributor (SPID) https://www.nexusmods.com/skyrimspecialedition/mods/36869
136 0177 Vokrii 3.8.2 https://www.nexusmods.com/skyrimspecialedition/mods/26176
137 0178 Vokrii - Scaling Rebalance https://www.nexusmods.com/skyrimspecialedition/mods/55091
138 0179 NORDIC UI - Interface Overhaul https://www.nexusmods.com/skyrimspecialedition/mods/49881
139 0180 iNeed - Food, Water and Sleep - Continued https://www.nexusmods.com/skyrimspecialedition/mods/19390
140 0181 Frostfall 3.4.1 SE Release https://www.nexusmods.com/skyrimspecialedition/mods/671
141 0182 Campfire 1.12.1SEVR Release https://www.nexusmods.com/skyrimspecialedition/mods/667
142 0183 SkyrimForBattleV
143 0184 PC Head Tracking - MCM v4.8 SE https://www.nexusmods.com/skyrimspecialedition/mods/11993
144 0186 SummonShadowMERCHANT https://www.nexusmods.com/skyrimspecialedition/mods/2177
145 0188 VioLens - A Killmove Mod SE https://www.nexusmods.com/skyrimspecialedition/mods/668
146 0189 True Directional Movement https://www.nexusmods.com/skyrimspecialedition/mods/51614
147 0190 True Directional Movement RU https://www.nexusmods.com/skyrimspecialedition/mods/53188
148 0191 SkySA
149 0192 Grip Switch SkySA 1.2.1 https://www.nexusmods.com/skyrim/mods/54056
150 0194 TK Dodge SE https://www.nexusmods.com/skyrimspecialedition/mods/15309
151 0195 JH Combat Animation Pack https://www.nexusmods.com/skyrimspecialedition/mods/48500
152 0197 Elder Souls - Sword 2.0 SE https://www.nexusmods.com/skyrimspecialedition/mods/47191
153 0198 Part 1) SEKIRO HUD by Inpa Skyrim https://www.nexusmods.com/skyrimspecialedition/mods/41428
154 0199 Part 2) SEKIRO COMBAT https://www.nexusmods.com/skyrimspecialedition/mods/41428
155 0200 Stances - Add-On https://www.nexusmods.com/skyrimspecialedition/mods/41251
156 0201 Stances - Dynamic Animation Sets https://www.nexusmods.com/skyrimspecialedition/mods/40484
157 0202 AMR Stance Framework https://www.nexusmods.com/skyrimspecialedition/mods/54674
158 0203 Enhanced Enemy AI https://www.nexusmods.com/skyrimspecialedition/mods/32063
159 0204 Precision https://www.nexusmods.com/skyrimspecialedition/mods/72347
160 0205 Keytrace https://www.nexusmods.com/skyrimspecialedition/mods/63362
161 0206 Elden Power Attack https://www.nexusmods.com/skyrimspecialedition/mods/66711
162 0207 Dark Souls Movement And Stamina Regen https://www.nexusmods.com/skyrimspecialedition/mods/33135
163 0208 Animated Potions https://www.nexusmods.com/skyrimspecialedition/mods/73819
164 0209 3PCO - 3rd Person Camera Overhaul https://www.nexusmods.com/skyrimspecialedition/mods/89516
165 0210 Nock to Tip
166 0211 Deadly Mutilation https://www.nexusmods.com/skyrimspecialedition/mods/34917
167 0213 Heroes Of Sovngarde https://www.nexusmods.com/skyrimspecialedition/mods/3053
168 0214 Populated Dungeons Caves Ruins Legendary Edition https://www.nexusmods.com/skyrimspecialedition/mods/2820
169 0216 [immyneedscake] Skydraenei by Eriayai CBBE SSE
170 0217 3BA SkyDraenei https://www.nexusmods.com/skyrimspecialedition/mods/57617
171 0218 True Demon Race https://www.nexusmods.com/skyrimspecialedition/mods/58141
172 0222 Acalypha - Fully Voiced Follower
173 0223 INIGO_V2.4C SE https://www.nexusmods.com/skyrimspecialedition/mods/1461
174 0224 Song Of The Green 1.4 https://www.nexusmods.com/skyrimspecialedition/mods/11278
175 0225 Refined Auri SSE https://www.nexusmods.com/skyrimspecialedition/mods/36444
176 0226 SkyMirai Standalone Follower 2_11 SSE https://www.nexusmods.com/skyrimspecialedition/mods/10908
177 0227 Nicola Avenicci SE 0.3 https://www.nexusmods.com/skyrimspecialedition/mods/6862
178 0229 WIC (Whinter is Coming) Cloaks SSE 2_4 https://www.nexusmods.com/skyrimspecialedition/mods/4933
179 0230 Winter Is Coming - Cloaks RU SE https://www.nexusmods.com/skyrimspecialedition/mods/62756
180 0231 True Weapons https://www.nexusmods.com/skyrimspecialedition/mods/38596
181 0232 Eclipse_Mage_Outfit_HDT
182 0233 [SE] BDOR Navillera
183 0235 Dominica Preset RM SSE https://www.nexusmods.com/skyrimspecialedition/mods/70448
184 0236 Irena High Poly Head preset by ElleShet SE
185 0237 Nirani Indoril Body preset SE by ElleShet
186 0239 MainMenuRandomizerSE https://www.nexusmods.com/skyrimspecialedition/mods/33574
187 0240 Main Menu Redone - 1080p https://www.nexusmods.com/skyrimspecialedition/mods/59993
188 0241 Main Menu Design Replacer https://www.nexusmods.com/skyrimspecialedition/mods/30810
189 0242 Simple Load Screens https://www.nexusmods.com/skyrimspecialedition/mods/49529
190 0243 NORDIC UI - Alternate loading screen and start menu https://www.nexusmods.com/skyrimspecialedition/mods/54153
191 0245 Fantasy Soundtrack Project SE https://www.nexusmods.com/skyrimspecialedition/mods/5268
192 0246 Dreyma Mod [new Music of Skyrim] https://www.nexusmods.com/skyrimspecialedition/mods/23386
193 0248 NAT.ENB - ESP WEATHER PLUGIN https://www.nexusmods.com/skyrimspecialedition/mods/27141
194 0250 NordWarUA's Vanilla Armor Replacers SSE -Patches- https://www.nexusmods.com/skyrimspecialedition/mods/31679
195 0251 Northern Roads - Patches Compendium https://www.nexusmods.com/skyrimspecialedition/mods/77893
196 0252 Holds The City Overhaul -RUS-
197 0253 Majestic Mountains [RUS]
198 0254 Face Discoloration Fix SE https://www.nexusmods.com/skyrimspecialedition/mods/42441
199 0255 Simple Load Screens - Russian translation https://www.nexusmods.com/skyrimspecialedition/mods/50912
200 0256 Precision - Accurate Melee Collisions - RU https://www.nexusmods.com/skyrimspecialedition/mods/72584
201 0257 Pandorable's NPCs_SSE_v1.4_RU https://www.nexusmods.com/skyrimspecialedition/mods/27582
202 0258 Pandorables NPCs Males [RUS]
203 0259 Pandorables NPCs - Males 2 [RUS]
204 0260 PAN_AIO_small - AI Overhaul SSE patch-1-4-Rus
205 0261 Irena High Poly Head preset by ElleShet SE 3BBB Body
206 0262 Nirani Indoril High Poly Head preset SE by ElleShet
207 0263 Deadly Mutilation V1_3_3 CBBE meshes Pack https://www.nexusmods.com/skyrimspecialedition/mods/34917
208 0264 Bijin skin compability patch Alternative normal map https://www.nexusmods.com/skyrimspecialedition/mods/27405
209 0265 SEKIRO COMBAT SE - RU https://www.nexusmods.com/skyrimspecialedition/mods/57678
210 0266 Nordic UI -RUS-
211 0267 Campfire 1.12.1 and Frostfall 3.4.1SE https://www.nexusmods.com/skyrimspecialedition/mods/17925
212 0268 SkyrimForBattleV-Patch
213 0269 IFPV Detector Plugin https://www.nexusmods.com/skyrimspecialedition/mods/22306
214 0270 Jaxonz MCM Kicker SE_rus_
215 0271 SkyUI -RUS- https://www.nexusmods.com/skyrimspecialedition/mods/21088
216 0272 INIGO -RUS-
217 0273 Song of the Green _RUS_
218 0274 Inigo Banter patch
219 0275 Refined Auri SSE -PATCH- https://www.nexusmods.com/skyrimspecialedition/mods/36444
220 0276 Refined Auri SSE -RUS-
221 0277 Vokrii(26176)-2-0-1-RU https://www.nexusmods.com/skyrimspecialedition/mods/28035
222 0278 Саурон
223 0279 Sweety Preset
224 0280 Console font fix - RU https://www.nexusmods.com/skyrimspecialedition/mods/55792
225 0281 BodySlide output
226 0282 DBVO NordicUI Patch https://www.nexusmods.com/skyrimspecialedition/mods/84329
227 0284 Dragonborn Voice Over - Stereo Plugin Replacer https://www.nexusmods.com/skyrimspecialedition/mods/90417
228 0285 FNIS Overwrite
229 0286 Nemesis overwrite
230 0288 Pipe Smoking SE https://www.nexusmods.com/skyrimspecialedition/mods/13061
231 0289 Pipe Smoking SE RUS
232 0291 PapyrusUtil SE - Scripting Utility Functions https://www.nexusmods.com/skyrimspecialedition/mods/13048
233 0292 powerofthree's Papyrus Extender https://www.nexusmods.com/skyrimspecialedition/mods/22854

View File

@ -1,85 +1,85 @@
<center> <center>
<h1>Блог</h1> <h1>Блог</h1>
</center> </center>
<div id="blog-posts"> <div id="blog-posts">
<center><p>Загрузка новостей...</p></center> <center><p>Загрузка новостей...</p></center>
<!-- <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#imageModal">...</button> --> <!-- <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#imageModal">...</button> -->
<div class="blog-post-card" id="post-0" style="margin-bottom: 1.5%;"> <div class="blog-post-card" id="post-0" style="margin-bottom: 1.5%;">
<center> <center>
<h3 style="padding-top: 1.5%;">Пример заголовка</h3> <h3 style="padding-top: 1.5%;">Пример заголовка</h3>
<small style="color: rgba(255,255,255,0.5); padding-bottom: 0.5%;"> <small style="color: rgba(255,255,255,0.5); padding-bottom: 0.5%;">
<div>Опубликовано: 22.09.2003 в 7:00</div> <div>Опубликовано: 22.09.2003 в 7:00</div>
<div id="posted-by-0" hidden>Через telegram</div> <div id="posted-by-0" hidden>Через telegram</div>
</small> </small>
</center> </center>
<p style="padding: 2%;">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> <p style="padding: 2%;">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<!-- Изображения --> <!-- Изображения -->
<center><div id="carouselExampleIndicators" class="carousel slide blog-post-image-carousel" data-bs-ride="carousel" id="post-images-0" hidden> <center><div id="carouselExampleIndicators" class="carousel slide blog-post-image-carousel" data-bs-ride="carousel" id="post-images-0" hidden>
<div class="carousel-indicators"> <div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button> <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="Slide 2"></button> <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button> <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div> </div>
<div class="carousel-inner"> <div class="carousel-inner">
<div class="carousel-item blog-post-image active" id="blog-img-0:0"> <div class="carousel-item blog-post-image active" id="blog-img-0:0">
<img src="https://warhammerart.com/wp-content/uploads/2021/08/Adeptus-Mechanicus.jpg" class="d-block w-100" alt="..."> <img src="https://warhammerart.com/wp-content/uploads/2021/08/Adeptus-Mechanicus.jpg" class="d-block w-100" alt="...">
</div> </div>
<div class="carousel-item blog-post-image" id="blog-img-0:1"> <div class="carousel-item blog-post-image" id="blog-img-0:1">
<img src="https://warzonestudio.com/image/catalog/blog/Admech-review/Admech-codex-review-02.jpg" class="d-block w-100" alt="..."> <img src="https://warzonestudio.com/image/catalog/blog/Admech-review/Admech-codex-review-02.jpg" class="d-block w-100" alt="...">
</div> </div>
<div class="carousel-item blog-post-image" id="blog-img-0:2"> <div class="carousel-item blog-post-image" id="blog-img-0:2">
<img src="https://i.pinimg.com/originals/7a/5c/0a/7a5c0a3a91db6011a49781c4016124a2.jpg" class="d-block w-100" alt="..."> <img src="https://i.pinimg.com/originals/7a/5c/0a/7a5c0a3a91db6011a49781c4016124a2.jpg" class="d-block w-100" alt="...">
</div> </div>
</div> </div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev"> <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Предыдущий</span> <span class="visually-hidden">Предыдущий</span>
</button> </button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next"> <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Следующий</span> <span class="visually-hidden">Следующий</span>
</button> </button>
</div></center> </div></center>
<!-- Файлы --> <!-- Файлы -->
<div class="accordion text-dark bg-dark" id="accordionExample" style="margin-left: 2.5%; margin-right: 2.5%; margin-top: 2.5%;" hidden> <div class="accordion text-dark bg-dark" id="accordionExample" style="margin-left: 2.5%; margin-right: 2.5%; margin-top: 2.5%;" hidden>
<div class="accordion-item"> <div class="accordion-item">
<h5 class="accordion-header" id="headingOne"> <h5 class="accordion-header" id="headingOne">
<button class="accordion-button bg-dark text-light" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne"> <button class="accordion-button bg-dark text-light" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Файлы Файлы
</button> </button>
</h5> </h5>
<div id="collapseOne" class="accordion-collapse bg-dark text-light collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample"> <div id="collapseOne" class="accordion-collapse bg-dark text-light collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<div class="accordion-body"> <div class="accordion-body">
<!-- <strong>Это тело аккордеона первого элемента.</strong> По умолчанию оно скрыто, пока плагин сворачивания не добавит соответствующие классы, которые мы используем для стилизации каждого элемента. Эти классы управляют общим внешним видом, а также отображением и скрытием с помощью переходов CSS. Вы можете изменить все это с помощью собственного CSS или переопределить наши переменные по умолчанию. Также стоит отметить, что практически любой HTML может быть помещен в <code>.accordion-body</code>, хотя переход ограничивает переполнение. --> <!-- <strong>Это тело аккордеона первого элемента.</strong> По умолчанию оно скрыто, пока плагин сворачивания не добавит соответствующие классы, которые мы используем для стилизации каждого элемента. Эти классы управляют общим внешним видом, а также отображением и скрытием с помощью переходов CSS. Вы можете изменить все это с помощью собственного CSS или переопределить наши переменные по умолчанию. Также стоит отметить, что практически любой HTML может быть помещен в <code>.accordion-body</code>, хотя переход ограничивает переполнение. -->
<p><a href="https://github.com/student-manager/student-manager/releases/download/1.1.1/windows.x64.Student.manager.portabel.zip">windows.x64.Student.manager.portabel.zip (111 Mb)</a></p> <p><a href="https://github.com/student-manager/student-manager/releases/download/1.1.1/windows.x64.Student.manager.portabel.zip">windows.x64.Student.manager.portabel.zip (111 Mb)</a></p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- Рекации --> <!-- Рекации -->
<button type="button" class="btn btn-outline-success" style="margin-left: 2.5%; margin-top: 1.5%; margin-bottom: 1.5%;" onclick="alert('Функция в разработке!');">Нравится (0)</button> <button type="button" class="btn btn-outline-success" style="margin-left: 2.5%; margin-top: 1.5%; margin-bottom: 1.5%;" onclick="alert('Функция в разработке!');">Нравится (0)</button>
<button type="button" class="btn btn-outline-secondary" style="margin-left: 0.5%; margin-top: 1.5%; margin-bottom: 1.5%;" onclick="alert('Функция в разработке!');">Комментарии (0)</button> <button type="button" class="btn btn-outline-secondary" style="margin-left: 0.5%; margin-top: 1.5%; margin-bottom: 1.5%;" onclick="alert('Функция в разработке!');">Комментарии (0)</button>
</div> </div>
</div> </div>
<!-- Модальное окно просмотра изображений --> <!-- Модальное окно просмотра изображений -->
<div class="modal fade text-light" id="imageModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal fade text-light" id="imageModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-img-view modal-dialog-centered modal-dialog-scrollable"> <div class="modal-dialog modal-lg modal-img-view modal-dialog-centered modal-dialog-scrollable">
<!-- <div class="modal-dialog modal-img-view"> --> <!-- <div class="modal-dialog modal-img-view"> -->
<div class="modal-content text-light bg-dark"> <div class="modal-content text-light bg-dark">
<!-- <img src="https://warhammerart.com/wp-content/uploads/2021/08/Adeptus-Mechanicus.jpg"> --> <!-- <img src="https://warhammerart.com/wp-content/uploads/2021/08/Adeptus-Mechanicus.jpg"> -->
<div class="modal-header"> <div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Просмотр изображения</h1> <h1 class="modal-title fs-5" id="exampleModalLabel">Просмотр изображения</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<center><img id="image-viewer-url" src="https://warhammerart.com/wp-content/uploads/2021/08/Adeptus-Mechanicus.jpg" style="width: 100%;"></center> <center><img id="image-viewer-url" src="https://warhammerart.com/wp-content/uploads/2021/08/Adeptus-Mechanicus.jpg" style="width: 100%;"></center>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Закрыть</button> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Закрыть</button>
<!-- <button type="button" class="btn btn-primary">Сохранить изменения</button> --> <!-- <button type="button" class="btn btn-primary">Сохранить изменения</button> -->
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,19 +1,19 @@
<center> <center>
<h1 style="margin-top: 5px;">Мои контакты</h1> <h1 style="margin-top: 5px;">Мои контакты</h1>
<h2><img src="/assets/avatar.png" class="rounded" alt="...", style="width:25vh"></h2> <h2><img src="/assets/avatar.png" class="rounded" alt="...", style="width:25vh"></h2>
<h2>Обратная связь</h2> <h2>Обратная связь</h2>
<div class="btn-group" role="group" aria-label="Basic example"> <div class="btn-group" role="group" aria-label="Basic example">
<button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://vk.com/decimus_crew")'>Вконтакте</button> <button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://vk.com/decimus_crew")'>Вконтакте</button>
<button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://t.me/Nikiroy78")'>Telegram</button> <button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://t.me/Nikiroy78")'>Telegram</button>
<button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://www.facebook.com/profile.php?id=100093948516820")'>Facebook</button> <button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://www.facebook.com/profile.php?id=100093948516820")'>Facebook</button>
</div><p></p> </div><p></p>
<div class="btn-group" role="group" aria-label="Basic example"> <div class="btn-group" role="group" aria-label="Basic example">
<button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://github.com/Nikiroy78")'>GitHub</button> <button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://github.com/Nikiroy78")'>GitHub</button>
<button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://gamer-mods.ru/index/8-1000260")'>gamer-mods.ru</button> <button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://gamer-mods.ru/index/8-1000260")'>gamer-mods.ru</button>
</div> </div>
<h2>Паблики, блоги, иные ресурсы</h2> <h2>Паблики, блоги, иные ресурсы</h2>
<div class="btn-group" role="group" aria-label="Basic example"> <div class="btn-group" role="group" aria-label="Basic example">
<button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://vk.com/imperium_human")'>Вконтакте</button> <button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://vk.com/imperium_human")'>Вконтакте</button>
<!-- <button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://t.me/FullGreaM")'>Телеграм</button> --> <!-- <button type="button" class="btn btn-dark btn-outline-light" onclick='fl.goToLocation("https://t.me/FullGreaM")'>Телеграм</button> -->
</div> </div>
</center> </center>

View File

@ -1,22 +1,22 @@
<center><h1>Документация технических стандартов IWW</h1></center> <center><h1>Документация технических стандартов IWW</h1></center>
<table class="table"> <table class="table">
<thead> <thead>
<tr> <tr>
<th scope="col"></th> <th scope="col"></th>
<th scope="col">Материал</th> <th scope="col">Материал</th>
<th scope="col">Дата опубликования</th> <th scope="col">Дата опубликования</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<th scope="row">1</th> <th scope="row">1</th>
<td>-</td> <td>-</td>
<td>22/11/2011</td> <td>22/11/2011</td>
</tr> </tr>
<tr> <tr>
<th scope="row">2</th> <th scope="row">2</th>
<td>-</td> <td>-</td>
<td>22/11/2011</td> <td>22/11/2011</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@ -1,47 +1,47 @@
<center> <center>
<!-- <h1>Добро пожаловать</h1> --> <!-- <h1>Добро пожаловать</h1> -->
<div id="carouselExampleDark" class="carousel carousel-dark slide"> <div id="carouselExampleDark" class="carousel carousel-dark slide">
<div class="carousel-indicators"> <div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button> <button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="1" aria-label="Slide 2"></button> <button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="2" aria-label="Slide 3"></button> <button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div> </div>
<div class="carousel-inner"> <div class="carousel-inner">
<div class="carousel-item active" data-bs-interval="10000"> <div class="carousel-item active" data-bs-interval="10000">
<img id="main_img1" src="/assets/hello/1.png" class="d-block w-100" alt="..."> <img id="main_img1" src="/assets/hello/1.png" class="d-block w-100" alt="...">
<div class="carousel-caption d-none d-md-block"> <div class="carousel-caption d-none d-md-block">
<h5 style="color: white;">Добро пожаловать на мой ресурс</h5> <h5 style="color: white;">Добро пожаловать на мой ресурс</h5>
<p style="color: white;">Это официальный ресурс FullGreaM.</p> <p style="color: white;">Это официальный ресурс FullGreaM.</p>
<button onclick="fl.go('/contacts');" type="button" class="btn btn-outline-light">Мои контакты</button> <button onclick="fl.go('/contacts');" type="button" class="btn btn-outline-light">Мои контакты</button>
<div class="centered-el"></div> <div class="centered-el"></div>
</div> </div>
</div> </div>
<div class="carousel-item" data-bs-interval="2000"> <div class="carousel-item" data-bs-interval="2000">
<img id="main_img2" src="/assets/hello/2.png" class="d-block w-100" alt="..."> <img id="main_img2" src="/assets/hello/2.png" class="d-block w-100" alt="...">
<div class="carousel-caption d-none d-md-block"> <div class="carousel-caption d-none d-md-block">
<h5 style="color: white;">О проектах и работах</h5> <h5 style="color: white;">О проектах и работах</h5>
<p style="color: white;">Здесь представлены мои проекты, работы с активными и актуальными ссылками на скачивание.</p> <p style="color: white;">Здесь представлены мои проекты, работы с активными и актуальными ссылками на скачивание.</p>
<button onclick="fl.go('/projects');" type="button" class="btn btn-outline-light">Мои проекты</button> <button onclick="fl.go('/projects');" type="button" class="btn btn-outline-light">Мои проекты</button>
<div class="centered-el"></div> <div class="centered-el"></div>
</div> </div>
</div> </div>
<div class="carousel-item"> <div class="carousel-item">
<img id="main_img3" src="/assets/hello/3.png" class="d-block w-100" alt="..."> <img id="main_img3" src="/assets/hello/3.png" class="d-block w-100" alt="...">
<div class="carousel-caption d-none d-md-block"> <div class="carousel-caption d-none d-md-block">
<h5 style="color: white;">О прочей информации</h5> <h5 style="color: white;">О прочей информации</h5>
<p style="color: white;">Также здесь представлен (или будет представлен) мой личный блог, а также, блог, касающийся моих проектов или проектов моей команды.</p> <p style="color: white;">Также здесь представлен (или будет представлен) мой личный блог, а также, блог, касающийся моих проектов или проектов моей команды.</p>
<button onclick="fl.go('/blog');" type="button" class="btn btn-outline-light">Мой блог</button> <button onclick="fl.go('/blog');" type="button" class="btn btn-outline-light">Мой блог</button>
<div class="centered-el"></div> <div class="centered-el"></div>
</div> </div>
</div> </div>
</div> </div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="prev"> <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Предыдущий</span> <span class="visually-hidden">Предыдущий</span>
</button> </button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="next"> <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Следующий</span> <span class="visually-hidden">Следующий</span>
</button> </button>
</div> </div>
</center> </center>

View File

@ -1,19 +1,19 @@
<center> <center>
<div class="centered-el"></div> <div class="centered-el"></div>
<!-- <h1>It's all worked!</h1> --> <!-- <h1>It's all worked!</h1> -->
<div id="alt-carousel-viewer"> <div id="alt-carousel-viewer">
<h5 style="color: white;">Добро пожаловать на мой ресурс</h5><p style="color: white;">Это официальный ресурс FullGreaM.</p><button onclick="fl.go('/contacts');" type="button" class="btn btn-outline-light">Мои контакты</button> <h5 style="color: white;">Добро пожаловать на мой ресурс</h5><p style="color: white;">Это официальный ресурс FullGreaM.</p><button onclick="fl.go('/contacts');" type="button" class="btn btn-outline-light">Мои контакты</button>
</div> </div>
<div id="main-window-alt" class="carousel main-window-alt"> <div id="main-window-alt" class="carousel main-window-alt">
<!-- <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="prev" id="alt-main-prev" onclick="setAltMenuPage(altMenuSelectedPage - 1)"> --> <!-- <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="prev" id="alt-main-prev" onclick="setAltMenuPage(altMenuSelectedPage - 1)"> -->
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="prev" id="alt-main-prev"> <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="prev" id="alt-main-prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Предыдущий</span> <span class="visually-hidden">Предыдущий</span>
</button> </button>
<!-- <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="next" id="alt-main-next" onclick="setAltMenuPage(altMenuSelectedPage + 1)"> --> <!-- <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="next" id="alt-main-next" onclick="setAltMenuPage(altMenuSelectedPage + 1)"> -->
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="next" id="alt-main-next"> <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="next" id="alt-main-next">
<span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Предыдущий</span> <span class="visually-hidden">Предыдущий</span>
</button> </button>
</div> </div>
</center> </center>

View File

@ -1,7 +1,7 @@
<center> <center>
<img src="/assets/no_mobile.png" class="sys-win-img"></img> <img src="/assets/no_mobile.png" class="sys-win-img"></img>
<h1>Внимание!</h1> <h1>Внимание!</h1>
<h2>Не адаптировано под мобильные устройства</h2> <h2>Не адаптировано под мобильные устройства</h2>
<p>Мой ресурс пока что не адаптирован под мобильные устройства, тем не менее, вы всё ещё можете пользоваться сайтом</p> <p>Мой ресурс пока что не адаптирован под мобильные устройства, тем не менее, вы всё ещё можете пользоваться сайтом</p>
<button type="button" class="btn btn-dark btn-outline-light" id="mobile-warning-go">Продолжить</button> <button type="button" class="btn btn-dark btn-outline-light" id="mobile-warning-go">Продолжить</button>
</center> </center>

View File

@ -1,28 +1,28 @@
<center> <center>
<h1 style="margin-top: 5px; margin-bottom: 15px;">Менеджер паролей онлайн</h1> <h1 style="margin-top: 5px; margin-bottom: 15px;">Менеджер паролей онлайн</h1>
</center> </center>
<div class="password-manger-form bg-light text-dark"> <div class="password-manger-form bg-light text-dark">
<form> <form>
<div class="mb-3"> <div class="mb-3">
<center><label class="form-label">Ключевое слово</label></center> <center><label class="form-label">Ключевое слово</label></center>
<input type="password" class="form-control" id="keyword" aria-describedby="kwHelp"> <input type="password" class="form-control" id="keyword" aria-describedby="kwHelp">
<div id="kwHelp" class="form-text">Является "корневым паролем" для генерации паролей</div> <div id="kwHelp" class="form-text">Является "корневым паролем" для генерации паролей</div>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<center><label class="form-label">Логин в системе</label></center> <center><label class="form-label">Логин в системе</label></center>
<input type="text" class="form-control" id="login" aria-describedby="loginHelp"> <input type="text" class="form-control" id="login" aria-describedby="loginHelp">
<div id="loginHelp" class="form-text">Желательно использовать следующий приоритет: логин->почта->номер телефона; это поможет вам знать корректный пароль от системы</div> <div id="loginHelp" class="form-text">Желательно использовать следующий приоритет: логин->почта->номер телефона; это поможет вам знать корректный пароль от системы</div>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<center><label class="form-label">Сервис</label></center> <center><label class="form-label">Сервис</label></center>
<input type="text" class="form-control" id="service" aria-describedby="serviceHelp"> <input type="text" class="form-control" id="service" aria-describedby="serviceHelp">
<div id="serviceHelp" class="form-text">Используйте доменные имена без сокращений (vk.com; yandex.ru; mail.yandex.ru; youtube.com; etc.)</div> <div id="serviceHelp" class="form-text">Используйте доменные имена без сокращений (vk.com; yandex.ru; mail.yandex.ru; youtube.com; etc.)</div>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<center><label class="form-label">Сгенерированный пароль</label></center> <center><label class="form-label">Сгенерированный пароль</label></center>
<input type="password" class="form-control" id="generated-password" aria-describedby="genHelp" readonly> <input type="password" class="form-control" id="generated-password" aria-describedby="genHelp" readonly>
<div id="genHelp" class="form-text">Сгенерированный пароль по формуле: base64(sha1(`${keyword}::${service}::${login}`)) + "#"</div> <div id="genHelp" class="form-text">Сгенерированный пароль по формуле: base64(sha1(`${keyword}::${service}::${login}`)) + "#"</div>
</div> </div>
</form> </form>
<center><button type="submit" class="btn btn-primary" id="generate-password">Сгенерировать</button> <button class="btn btn-secondary" id="copy-password">Скопировать</button></center> <center><button type="submit" class="btn btn-primary" id="generate-password">Сгенерировать</button> <button class="btn btn-secondary" id="copy-password">Скопировать</button></center>
</div> </div>

View File

@ -1,27 +1,27 @@
<div id="releases" class="release-menu"> <div id="releases" class="release-menu">
<h1>Релизы программ</h1> <h1>Релизы программ</h1>
<hr> <hr>
<div id="realese-item-1" class="release-item"> <div id="realese-item-1" class="release-item">
<h3>Планировщик студента</h3> <h3>Планировщик студента</h3>
<hr> <hr>
<p><strong>Описание</strong></p> <p><strong>Описание</strong></p>
<p>Планировщик студента - программа для планирования своего учебного времени, планировании задач и целей. Программа помогает в организации времени и досуга.</p> <p>Планировщик студента - программа для планирования своего учебного времени, планировании задач и целей. Программа помогает в организации времени и досуга.</p>
<p><strong>Установка</strong></p> <p><strong>Установка</strong></p>
<div class="accordion text-bg-info" id="accordionExample"> <div class="accordion text-bg-info" id="accordionExample">
<div class="accordion-item"> <div class="accordion-item">
<h5 class="accordion-header" id="headingOne"> <h5 class="accordion-header" id="headingOne">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne"> <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Актуальные версии релиза Актуальные версии релиза
</button> </button>
</h5> </h5>
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample"> <div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<div class="accordion-body"> <div class="accordion-body">
<!-- <strong>Это тело аккордеона первого элемента.</strong> По умолчанию оно скрыто, пока плагин сворачивания не добавит соответствующие классы, которые мы используем для стилизации каждого элемента. Эти классы управляют общим внешним видом, а также отображением и скрытием с помощью переходов CSS. Вы можете изменить все это с помощью собственного CSS или переопределить наши переменные по умолчанию. Также стоит отметить, что практически любой HTML может быть помещен в <code>.accordion-body</code>, хотя переход ограничивает переполнение. --> <!-- <strong>Это тело аккордеона первого элемента.</strong> По умолчанию оно скрыто, пока плагин сворачивания не добавит соответствующие классы, которые мы используем для стилизации каждого элемента. Эти классы управляют общим внешним видом, а также отображением и скрытием с помощью переходов CSS. Вы можете изменить все это с помощью собственного CSS или переопределить наши переменные по умолчанию. Также стоит отметить, что практически любой HTML может быть помещен в <code>.accordion-body</code>, хотя переход ограничивает переполнение. -->
<p><a href="https://github.com/student-manager/student-manager/releases/download/1.1.1/windows.x64.Student.manager.portabel.zip"><svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"/></svg> Windows x64 (10/11) v.1.1.1 (111 mb)</a></p> <p><a href="https://github.com/student-manager/student-manager/releases/download/1.1.1/windows.x64.Student.manager.portabel.zip"><svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"/></svg> Windows x64 (10/11) v.1.1.1 (111 mb)</a></p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,5 +1,5 @@
<center> <center>
<img src="/assets/at_work.png" class="sys-win-img"></img> <img src="/assets/at_work.png" class="sys-win-img"></img>
<h1>Страница в разработке</h1> <h1>Страница в разработке</h1>
<p>Страница находится в разработке и на данный момент не доступна :(</p> <p>Страница находится в разработке и на данный момент не доступна :(</p>
</center> </center>

View File

@ -1,133 +1,133 @@
function setLocation(curLoc){ function setLocation(curLoc){
try { try {
history.pushState(null, null, curLoc); history.pushState(null, null, curLoc);
return; return;
} }
catch(e) {} catch(e) {}
location.hash = '#' + curLoc; location.hash = '#' + curLoc;
} }
class FlCursor { class FlCursor {
constructor (options) { constructor (options) {
this.options = options; this.options = options;
if (!options) { if (!options) {
this.options = { this.options = {
saveCache : true, saveCache : true,
ignoreCachePath : [], ignoreCachePath : [],
saveOnlyPath : ["/fl_system/load_page.html"] saveOnlyPath : ["/fl_system/load_page.html"]
} }
} }
this.cache = new Object(); this.cache = new Object();
if (!Array.isArray(this.options.ignoreCachePath)) { if (!Array.isArray(this.options.ignoreCachePath)) {
this.options.ignoreCachePath = new Array(); this.options.ignoreCachePath = new Array();
} }
this.curLoc = location.pathname; this.curLoc = location.pathname;
this.events = {}; this.events = {};
// Включаем автоматическое обновление содержимого страницы при нажатии кнопки "Назад" // Включаем автоматическое обновление содержимого страницы при нажатии кнопки "Назад"
window.onpopstate = (event) => { window.onpopstate = (event) => {
this.go(location.pathname, false); this.go(location.pathname, false);
} }
} }
isCanCachePage (url) { isCanCachePage (url) {
return (this.options.saveCache && this.options.ignoreCachePath.indexOf(url) == -1) || return (this.options.saveCache && this.options.ignoreCachePath.indexOf(url) == -1) ||
(!this.options.saveCache && this.options.saveOnlyPath.indexOf(url) != -1); (!this.options.saveCache && this.options.saveOnlyPath.indexOf(url) != -1);
} }
bindLoad (page, handler) { bindLoad (page, handler) {
this.events[page] = handler; this.events[page] = handler;
} }
getHttpContent (url) { getHttpContent (url) {
if (!this.cache[url]) { if (!this.cache[url]) {
let rq = new XMLHttpRequest(); let rq = new XMLHttpRequest();
rq.open('GET', url, false); rq.open('GET', url, false);
rq.send(); rq.send();
if (rq.status == 200) { if (rq.status == 200) {
if (this.isCanCachePage(url)) { if (this.isCanCachePage(url)) {
this.cache[url] = rq.responseText; this.cache[url] = rq.responseText;
} }
return rq.responseText; return rq.responseText;
} }
else if (rq.status == 404) { else if (rq.status == 404) {
rq = new XMLHttpRequest(); rq = new XMLHttpRequest();
rq.open('GET', `/fl_system/404.html`, false); rq.open('GET', `/fl_system/404.html`, false);
rq.send(); rq.send();
let page = "404. Not found."; let page = "404. Not found.";
if (rq.status == 200) { if (rq.status == 200) {
page = rq.responseText; page = rq.responseText;
} }
if (this.isCanCachePage(url)) { if (this.isCanCachePage(url)) {
this.cache[url] = page; this.cache[url] = page;
} }
return page; return page;
} }
else { else {
let page = `Http error: ${rq.status}`; let page = `Http error: ${rq.status}`;
rq = new XMLHttpRequest(); rq = new XMLHttpRequest();
rq.open('GET', `/fl_system/${rq.status}.html`, false); rq.open('GET', `/fl_system/${rq.status}.html`, false);
rq.send(); rq.send();
if (rq.status == 200) { if (rq.status == 200) {
page = rq.responseText; page = rq.responseText;
} }
if (this.isCanCachePage(url)) { if (this.isCanCachePage(url)) {
this.cache[url] = page; this.cache[url] = page;
} }
return page; return page;
} }
} }
else return this.cache[url]; else return this.cache[url];
} }
loading () { loading () {
/*let rq = new XMLHttpRequest(); /*let rq = new XMLHttpRequest();
rq.open('GET', `/fl_system/load_page.html`, false); rq.open('GET', `/fl_system/load_page.html`, false);
rq.send(); rq.send();
if (rq.status == 200) { if (rq.status == 200) {
let page = rq.responseText; let page = rq.responseText;
document.getElementById('fl.area').innerHTML = page; document.getElementById('fl.area').innerHTML = page;
}*/ }*/
document.getElementById('fl.area').innerHTML = this.getHttpContent("/fl_system/load_page.html"); document.getElementById('fl.area').innerHTML = this.getHttpContent("/fl_system/load_page.html");
} }
goToLocation (href) { goToLocation (href) {
window.location.href = href; window.location.href = href;
} }
goJust (href, refEdit = true, callFromGo = false) { goJust (href, refEdit = true, callFromGo = false) {
if (refEdit && !callFromGo) { if (refEdit && !callFromGo) {
this.loading(); this.loading();
setLocation(href); setLocation(href);
this.curLoc = href; this.curLoc = href;
} }
document.getElementById('fl.area').innerHTML = this.getHttpContent(`/fl_dir${href}`); document.getElementById('fl.area').innerHTML = this.getHttpContent(`/fl_dir${href}`);
setTimeout(() => { setTimeout(() => {
let page = href.split('#')[0].split('?')[0]; let page = href.split('#')[0].split('?')[0];
while (page.at(-1) === '/') while (page.at(-1) === '/')
page = page.slice(0, page.length - 1); page = page.slice(0, page.length - 1);
this.events[page]?.(); this.events[page]?.();
}, 0); }, 0);
} }
go (href, refEdit = true) { go (href, refEdit = true) {
if (refEdit) { if (refEdit) {
this.loading(); this.loading();
setLocation(href); setLocation(href);
this.curLoc = href; this.curLoc = href;
} }
setTimeout(async () => this.goJust(href, refEdit, true), 1); setTimeout(async () => this.goJust(href, refEdit, true), 1);
} }
} }
const fl = new FlCursor(); const fl = new FlCursor();

View File

@ -1,4 +1,4 @@
<center> <center>
<img src="/assets/404.png" class="sys-win-img"></img> <img src="/assets/404.png" class="sys-win-img"></img>
<h1>404. Страница не найдена :(</h1> <h1>404. Страница не найдена :(</h1>
</center> </center>

View File

@ -1,34 +1,34 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
<link rel="stylesheet" href="/assets/main.css"> <link rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/> <link rel="icon" type="image/png" href="/favicon.png"/>
<link rel="stylesheet" href="/assets/font-awesome/css/all.css" /> <link rel="stylesheet" href="/assets/font-awesome/css/all.css" />
<title>FullGreaM</title> <title>FullGreaM</title>
</head> </head>
<body class="bg text-white"> <body class="bg text-white">
<script src="/fl_framework/index.js"></script> <script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark"> <nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');"> <a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM FullGreaM
</a> </a>
<button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button> <button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button>
</nav> </nav>
<div id="turn-on-js"> <div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1> <h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p> <p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div> </div>
<script> <script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>'; document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script> </script>
<!-- Finalize loading bootstrap js --> <!-- Finalize loading bootstrap js -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
<!-- Go to root --> <!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> --> <!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script> <script src="/assets/main.js" type="module"></script>
</body> </body>
</html> </html>

View File

@ -1,32 +1,32 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
<link rel="stylesheet" href="/assets/main.css"> <link rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/> <link rel="icon" type="image/png" href="/favicon.png"/>
<title>FullGreaM</title> <title>FullGreaM</title>
</head> </head>
<body class="bg text-white"> <body class="bg text-white">
<script src="/fl_framework/index.js"></script> <script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark"> <nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');"> <a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM FullGreaM
</a> </a>
<button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button> <button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button>
</nav> </nav>
<div id="turn-on-js"> <div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1> <h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p> <p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div> </div>
<script> <script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>'; document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script> </script>
<!-- Finalize loading bootstrap js --> <!-- Finalize loading bootstrap js -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
<!-- Go to root --> <!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> --> <!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script> <script src="/assets/main.js" type="module"></script>
</body> </body>
</html> </html>

View File

@ -1,34 +1,34 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
<link rel="stylesheet" href="/assets/main.css"> <link rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/> <link rel="icon" type="image/png" href="/favicon.png"/>
<link rel="stylesheet" href="/assets/font-awesome/css/all.css" /> <link rel="stylesheet" href="/assets/font-awesome/css/all.css" />
<title>FullGreaM</title> <title>FullGreaM</title>
</head> </head>
<body class="bg text-white"> <body class="bg text-white">
<script src="/fl_framework/index.js"></script> <script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark"> <nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');"> <a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM FullGreaM
</a> </a>
<button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button> <button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button>
</nav> </nav>
<div id="turn-on-js"> <div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1> <h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p> <p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div> </div>
<script> <script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>'; document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script> </script>
<!-- Finalize loading bootstrap js --> <!-- Finalize loading bootstrap js -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
<!-- Go to root --> <!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> --> <!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script> <script src="/assets/main.js" type="module"></script>
</body> </body>
</html> </html>

View File

@ -1,32 +1,32 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
<link rel="stylesheet" href="/assets/main.css"> <link rel="stylesheet" href="/assets/main.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css">
<title>FullGreaM</title> <title>FullGreaM</title>
</head> </head>
<body class="bg text-white"> <body class="bg text-white">
<script src="/fl_framework/index.js"></script> <script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark"> <nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');"> <a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM FullGreaM
</a> </a>
<button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button> <button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button>
</nav> </nav>
<div id="turn-on-js"> <div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1> <h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p> <p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div> </div>
<script> <script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>'; document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script> </script>
<!-- Finalize loading bootstrap js --> <!-- Finalize loading bootstrap js -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
<!-- Go to root --> <!-- Go to root -->
<script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script>
<script src="/assets/main.js"></script> <script src="/assets/main.js"></script>
</body> </body>
</html> </html>

View File

@ -1,34 +1,34 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
<link rel="stylesheet" href="/assets/main.css"> <link rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/> <link rel="icon" type="image/png" href="/favicon.png"/>
<link rel="stylesheet" href="/assets/font-awesome/css/all.css" /> <link rel="stylesheet" href="/assets/font-awesome/css/all.css" />
<title>FullGreaM</title> <title>FullGreaM</title>
</head> </head>
<body class="bg text-white"> <body class="bg text-white">
<script src="/fl_framework/index.js"></script> <script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark"> <nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');"> <a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM FullGreaM
</a> </a>
<button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button> <button onclick="fl.go('/contacts');" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">Мои контакты</button>
</nav> </nav>
<div id="turn-on-js"> <div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1> <h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p> <p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div> </div>
<script> <script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>'; document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script> </script>
<!-- Finalize loading bootstrap js --> <!-- Finalize loading bootstrap js -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
<!-- Go to root --> <!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> --> <!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script> <script src="/assets/main.js" type="module"></script>
</body> </body>
</html> </html>