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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,122 +1,130 @@
const blogpostsUrl = "/blog/posts.json";
function bindImageView (id, url) {
document.getElementById(id).onclick = () => {
const imageModal = new bootstrap.Modal(document.getElementById('imageModal'), {});
imageModal.show();
document.getElementById('image-viewer-url').src = url;
};
}
function testBlock () {
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: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');
}
function dateFormater (value) {
value = value.toString();
if (value.length === 1) value = '0' + value;
return value;
}
function imagesDisplay (item, index) {
const items = item.attachments.images.map((imageUrl, imageId) => {
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>`
});
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 { items, buttons };
}
function generateItem (item, index) {
const date = new Date(item.date * 1000);
const images = item.attachments.images.length === 0 ? {
buttons : [],
items : []
} : imagesDisplay(item, index);
// console.log(date);
const page = `<div class="blog-post-card" id="post-${index}" style="margin-bottom: 1.5%;">
<center>
<h3 style="padding-top: 1.5%;">${item.title}</h3>
<small style="color: rgba(255,255,255,0.5); padding-bottom: 0.5%;">
<div>Опубликовано: ${dateFormater(date.getDate())}.${dateFormater(date.getMonth())}.${date.getFullYear()} в ${date.getHours()}:${dateFormater(date.getMinutes())}</div>
<div id="posted-by-${index}" hidden>Через telegram</div>
</small>
</center>
<p style="padding: 2%;">${item.data.replace(/\n/g, "<br/>")}</p>
<!-- Изображения -->
<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' : ''}>
<div class="carousel-indicators"${item.attachments.images.length === 1 ? ' hidden' : ''}>
${images.buttons.join('\n')}
</div>
<div class="carousel-inner">
${images.items.join('\n')}
</div>
<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>
<span class="visually-hidden">Предыдущий</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next"${item.attachments.images.length === 1 ? ' hidden' : ''}>
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Следующий</span>
</button>
</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-item">
<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>
</h5>
<div id="collapseOne" class="accordion-collapse bg-dark text-light collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<div class="accordion-body">
<!-- <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>
</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-secondary" style="margin-left: 0.5%; margin-top: 1.5%; margin-bottom: 1.5%;" onclick="alert('Функция в разработке!');">Комментарии (0)</button>
</div>`;
return page;
}
export function blog () {
//testBlock();
const xhr = new XMLHttpRequest();
xhr.open('GET', blogpostsUrl, true);
xhr.onerror = () => {
document.getElementById('blog-posts').innerHTML = `<center><img src="/assets/404.png" class="sys-win-img"></img><h2>Упс..</h2><p>Во время работы произошла ошибка, повторите запрос позже</p></center>`;
}
xhr.onload = () => {
try {
if (xhr.status === 200) {
// console.log(xhr.response);
const data = JSON.parse(xhr.response);
// console.log(data);
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);
});
}
else {
xhr.onerror();
}
}
catch (err) {
console.log(err);
return xhr.onerror();
}
};
xhr.send();
}
const blogpostsUrl = "/blog/posts.json";
function bindImageView (id, url) {
document.getElementById(id).onclick = () => {
const imageModal = new bootstrap.Modal(document.getElementById('imageModal'), {});
imageModal.show();
document.getElementById('image-viewer-url').src = url;
};
}
function testBlock () {
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: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');
}
function dateFormater (value, isMonth = false) {
if (isMonth) {
return [
"01", "02", "03",
"04", "05", "06",
"07", "08", "09",
"10", "11", "12"
][+value];
}
value = value.toString();
if (value.length === 1) value = '0' + value;
return value;
}
function imagesDisplay (item, index) {
const items = item.attachments.images.map((imageUrl, imageId) => {
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>`
});
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 { items, buttons };
}
function generateItem (item, index) {
const date = new Date(item.date * 1000);
const images = item.attachments.images.length === 0 ? {
buttons : [],
items : []
} : imagesDisplay(item, index);
// console.log(date);
const page = ` <div class="blog-post-card" id="post-${index}" style="margin-bottom: 1.5%;">
<center>
<h3 style="padding-top: 1.5%;">${item.title}</h3>
<small style="color: rgba(255,255,255,0.5); padding-bottom: 0.5%;">
<div>Опубликовано: ${dateFormater(date.getDate())}.${dateFormater(date.getMonth(), true)}.${date.getFullYear()} в ${date.getHours()}:${dateFormater(date.getMinutes())}</div>
<div id="posted-by-${index}" hidden>Через telegram</div>
</small>
</center>
<p style="padding: 2%;">${item.data.replace(/\n/g, "<br/>")}</p>
<!-- Изображения -->
<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' : ''}>
<div class="carousel-indicators"${item.attachments.images.length === 1 ? ' hidden' : ''}>
${images.buttons.join('\n')}
</div>
<div class="carousel-inner">
${images.items.join('\n')}
</div>
<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>
<span class="visually-hidden">Предыдущий</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next"${item.attachments.images.length === 1 ? ' hidden' : ''}>
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Следующий</span>
</button>
</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-item">
<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>
</h5>
<div id="collapseOne" class="accordion-collapse bg-dark text-light collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<div class="accordion-body">
<!-- <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>
</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-secondary" style="margin-left: 0.5%; margin-top: 1.5%; margin-bottom: 1.5%;" onclick="alert('Функция в разработке!');">Комментарии (0)</button>
</div>`;
return page;
}
export function blog () {
//testBlock();
const xhr = new XMLHttpRequest();
xhr.open('GET', blogpostsUrl, true);
xhr.onerror = () => {
document.getElementById('blog-posts').innerHTML = `<center><img src="/assets/404.png" class="sys-win-img"></img><h2>Упс..</h2><p>Во время работы произошла ошибка, повторите запрос позже</p></center>`;
}
xhr.onload = () => {
try {
if (xhr.status === 200) {
// console.log(xhr.response);
const data = JSON.parse(xhr.response);
// console.log(data);
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);
});
}
else {
xhr.onerror();
}
}
catch (err) {
console.log(err);
return xhr.onerror();
}
};
xhr.send();
}

View File

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

View File

@ -1,32 +1,32 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/>
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script>
</body>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/>
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script>
</body>
</html>

View File

@ -1,52 +1,69 @@
{
"categories" : [
{
"tag" : "news",
"name" : "Новости"
},
{
"tag" : "updates",
"name" : "Обновления"
},
{
"tag" : "personal",
"name" : "Личное"
}
],
"posts" : [
{
"title" : "Открыт блог",
"date" : 1697329458,
"data" : "Сегодня я запустил блог на сайте и это первый пост в нём.\n...В блоге будут публиковаться новости, анонсы, а также, мои личные мысли. Впрочем, если вам интересно что-то одно или, наоборот, не интересно иное, то я добавил поддержку \"категорий\", которые вы можете включать и отключать.\n\n<i>UPD: Категории я добавлю позже.</i>",
"categories" : ["news", "updates"],
"attachments" : {
"images" : [
"/assets/posts/15102023.png"
],
"files" : [],
"video" : [],
"youtube" : [],
"audio" : [],
"voice" : []
},
"forward" : null
},
{
"title" : "Купил себе SD-Карты",
"date" : 1697385474,
"data" : "Купил себе карты памяти в DNS, ща буду гонять, смотреть как работают.\n\nВообще, мне нехватало места на телефоне и посему решил докупить себе одну на 128 и одну на 64 гига.",
"categories" : ["personal"],
"attachments" : {
"images" : [
"/assets/posts/IMG_20231015_185244_587.jpg"
],
"files" : [],
"video" : [],
"youtube" : [],
"audio" : [],
"voice" : []
},
"forward" : null
}
]
}
{
"categories" : [
{
"tag" : "news",
"name" : "Новости"
},
{
"tag" : "updates",
"name" : "Обновления"
},
{
"tag" : "personal",
"name" : "Личное"
}
],
"posts" : [
{
"title" : "Открыт блог",
"date" : 1697329458,
"data" : "Сегодня я запустил блог на сайте и это первый пост в нём.\n...В блоге будут публиковаться новости, анонсы, а также, мои личные мысли. Впрочем, если вам интересно что-то одно или, наоборот, не интересно иное, то я добавил поддержку \"категорий\", которые вы можете включать и отключать.\n\n<i>UPD: Категории я добавлю позже.</i>",
"categories" : ["news", "updates"],
"attachments" : {
"images" : [
"/assets/posts/15102023.png"
],
"files" : [],
"video" : [],
"youtube" : [],
"audio" : [],
"voice" : []
},
"forward" : null
},
{
"title" : "Купил себе SD-Карты",
"date" : 1697385474,
"data" : "Купил себе карты памяти в DNS, ща буду гонять, смотреть как работают.\n\nВообще, мне нехватало места на телефоне и посему решил докупить себе одну на 128 и одну на 64 гига.",
"categories" : ["personal"],
"attachments" : {
"images" : [
"/assets/posts/IMG_20231015_185244_587.jpg"
],
"files" : [],
"video" : [],
"youtube" : [],
"audio" : [],
"voice" : []
},
"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>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/>
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script>
</body>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/>
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script>
</body>
</html>

View File

@ -1,233 +1,233 @@
#Mod_Priority,#Mod_Name,#Mod_Nexus_URL
"0000","Unmanaged: FNIS",""
"0002","DLC: HearthFires",""
"0003","DLC: Dragonborn",""
"0004","DLC: Dawnguard",""
"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"
"0008","powerofthree's Tweaks","https://www.nexusmods.com/skyrimspecialedition/mods/51073"
"0009","JContainers SE","https://www.nexusmods.com/skyrimspecialedition/mods/16495"
"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"
"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"
"0014","SkyUI_5_2_SE","https://www.nexusmods.com/skyrimspecialedition/mods/12604"
"0015","UIExtensions","https://www.nexusmods.com/skyrimspecialedition/mods/17561"
"0016","DynDOLOD Resources SE","https://www.nexusmods.com/skyrimspecialedition/mods/32382"
"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"
"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"
"0022","Papyrus API","https://www.nexusmods.com/skyrimspecialedition/mods/24858"
"0023","IFrame Generator RE","https://www.nexusmods.com/skyrimspecialedition/mods/74401"
"0024","dTry's Key Utils SE","https://www.nexusmods.com/skyrimspecialedition/mods/69944"
"0025","Papyrus Ini Manipulator","https://www.nexusmods.com/skyrimspecialedition/mods/65634"
"0027","SSE Display Tweaks","https://www.nexusmods.com/skyrimspecialedition/mods/34705"
"0028","CrashLogger","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"
"0036","Перевод BodySlide and Outfit Studio",""
"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"
"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"
"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"
"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"
"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"
"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"
"0059","Northern Roads","https://www.nexusmods.com/skyrimspecialedition/mods/77530"
"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"
"0062","Enhanced Landscapes","https://www.nexusmods.com/skyrimspecialedition/mods/18162"
"0063","EVLaS","https://www.nexusmods.com/skyrimspecialedition/mods/63725"
"0064","Morning Fogs SSE - Thin Fog","https://www.nexusmods.com/skyrimspecialedition/mods/21436"
"0065","Water for ENB","https://www.nexusmods.com/skyrimspecialedition/mods/37061"
"0066","ELFX Fixes (RUS)","https://www.nexusmods.com/skyrimspecialedition/mods/39765"
"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"
"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"
"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"
"0074","Bellyaches Animal and Creature Pack",""
"0075","Majestic Mountains Main","https://www.nexusmods.com/skyrimspecialedition/mods/11052"
"0077","Schlongs of Skyrim SE",""
"0079","Bijin Skin - CBBE","https://www.nexusmods.com/skyrimspecialedition/mods/20078"
"0080","Fair Skin Complexion for CBBE",""
"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"
"0086","High Poly Head SE",""
"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"
"0089","Kalilies Brows","https://www.nexusmods.com/skyrimspecialedition/mods/40595"
"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"
"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"
"0095","HDT-SMP Racemenu Hairs and Wigs",""
"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"
"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"
"0100","SE SG Brows","https://www.nexusmods.com/skyrimspecialedition/mods/25890"
"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"
"0103","Womens_Eyebrows",""
"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"
"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"
"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"
"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"
"0113","Conditional Gender Animations","https://www.nexusmods.com/skyrimspecialedition/mods/73446"
"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"
"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"
"0121","Guards Armor Replacer [RUS]",""
"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"
"0124","Lanterns Of Skyrim II",""
"0125","Lanterns Of Skyrim II - FOMOD","https://www.nexusmods.com/skyrimspecialedition/mods/30817"
"0128","HD HAIR(SE)",""
"0129","NecDaz Feet v",""
"0130","Feminine Hands for SE","https://www.nexusmods.com/skyrimspecialedition/mods/67522"
"0131","Pandorable's NPCs","https://www.nexusmods.com/skyrimspecialedition/mods/19012"
"0132","PAN_AIO",""
"0133","PAN_DashingDefenders SE","https://www.nexusmods.com/skyrimspecialedition/mods/78600"
"0134","Pandorable's Wicked Witches","https://www.nexusmods.com/skyrimspecialedition/mods/77478"
"0135","Pandorable's NPCs - Sovngarde","https://www.nexusmods.com/skyrimspecialedition/mods/55877"
"0136","PAN_DevotedDames","https://www.nexusmods.com/skyrimspecialedition/mods/59531"
"0137","Pandorable's Serana","https://www.nexusmods.com/skyrimspecialedition/mods/24931"
"0138","Pandorable's Marvellous Miners","https://www.nexusmods.com/skyrimspecialedition/mods/56399"
"0139","Pandorable's Valerica","https://www.nexusmods.com/skyrimspecialedition/mods/35799"
"0140","Pandorable's Frea and Frida","https://www.nexusmods.com/skyrimspecialedition/mods/31273"
"0141","PAN_Nevri","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"
"0144","Pandorable's Warrior Women","https://www.nexusmods.com/skyrimspecialedition/mods/34464"
"0145","Pandorable's Lethal Ladies","https://www.nexusmods.com/skyrimspecialedition/mods/36827"
"0146","PAN_ShieldSisters","https://www.nexusmods.com/skyrimspecialedition/mods/42480"
"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"
"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"
"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"
"0153","Bijin AIO SE for USSEP","https://www.nexusmods.com/skyrimspecialedition/mods/11287"
"0161","Dragonborn Voice Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/84329"
"0162","Bella Voice DBVO","https://www.nexusmods.com/skyrimspecialedition/mods/89810"
"0163","Bella Voice Fix",""
"0164","voicebella maingame and dlc","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"
"0170","RaceMenu Special Edition",""
"0171","RaceMenu Special Edition RUS",""
"0172","Alternate Start - Live Another Life","https://www.nexusmods.com/skyrimspecialedition/mods/272"
"0174","Alternate Conversation Camera","https://www.nexusmods.com/skyrimspecialedition/mods/21220"
"0175","SkyHUD","https://www.nexusmods.com/skyrimspecialedition/mods/463"
"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"
"0178","Vokrii - Scaling Rebalance","https://www.nexusmods.com/skyrimspecialedition/mods/55091"
"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"
"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"
"0183","SkyrimForBattleV",""
"0184","PC Head Tracking - MCM v4.8 SE","https://www.nexusmods.com/skyrimspecialedition/mods/11993"
"0186","SummonShadowMERCHANT","https://www.nexusmods.com/skyrimspecialedition/mods/2177"
"0188","VioLens - A Killmove Mod SE","https://www.nexusmods.com/skyrimspecialedition/mods/668"
"0189","True Directional Movement","https://www.nexusmods.com/skyrimspecialedition/mods/51614"
"0190","True Directional Movement RU","https://www.nexusmods.com/skyrimspecialedition/mods/53188"
"0191","SkySA",""
"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"
"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"
"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"
"0200","Stances - Add-On","https://www.nexusmods.com/skyrimspecialedition/mods/41251"
"0201","Stances - Dynamic Animation Sets","https://www.nexusmods.com/skyrimspecialedition/mods/40484"
"0202","AMR Stance Framework","https://www.nexusmods.com/skyrimspecialedition/mods/54674"
"0203","Enhanced Enemy AI","https://www.nexusmods.com/skyrimspecialedition/mods/32063"
"0204","Precision","https://www.nexusmods.com/skyrimspecialedition/mods/72347"
"0205","Keytrace","https://www.nexusmods.com/skyrimspecialedition/mods/63362"
"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"
"0208","Animated Potions","https://www.nexusmods.com/skyrimspecialedition/mods/73819"
"0209","3PCO - 3rd Person Camera Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/89516"
"0210","Nock to Tip",""
"0211","Deadly Mutilation","https://www.nexusmods.com/skyrimspecialedition/mods/34917"
"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"
"0216","[immyneedscake] Skydraenei by Eriayai CBBE SSE",""
"0217","3BA SkyDraenei","https://www.nexusmods.com/skyrimspecialedition/mods/57617"
"0218","True Demon Race","https://www.nexusmods.com/skyrimspecialedition/mods/58141"
"0222","Acalypha - Fully Voiced Follower",""
"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"
"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"
"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"
"0230","Winter Is Coming - Cloaks RU SE","https://www.nexusmods.com/skyrimspecialedition/mods/62756"
"0231","True Weapons","https://www.nexusmods.com/skyrimspecialedition/mods/38596"
"0232","Eclipse_Mage_Outfit_HDT",""
"0233","[SE] BDOR Navillera",""
"0235","Dominica Preset RM SSE","https://www.nexusmods.com/skyrimspecialedition/mods/70448"
"0236","Irena High Poly Head preset by ElleShet SE",""
"0237","Nirani Indoril Body preset SE by ElleShet",""
"0239","MainMenuRandomizerSE","https://www.nexusmods.com/skyrimspecialedition/mods/33574"
"0240","Main Menu Redone - 1080p","https://www.nexusmods.com/skyrimspecialedition/mods/59993"
"0241","Main Menu Design Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/30810"
"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"
"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"
"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"
"0251","Northern Roads - Patches Compendium","https://www.nexusmods.com/skyrimspecialedition/mods/77893"
"0252","Holds The City Overhaul -RUS-",""
"0253","Majestic Mountains [RUS]",""
"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"
"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"
"0258","Pandorables NPCs Males [RUS]",""
"0259","Pandorables NPCs - Males 2 [RUS]",""
"0260","PAN_AIO_small - AI Overhaul SSE patch-1-4-Rus",""
"0261","Irena High Poly Head preset by ElleShet SE 3BBB Body",""
"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"
"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"
"0266","Nordic UI -RUS-",""
"0267","Campfire 1.12.1 and Frostfall 3.4.1SE","https://www.nexusmods.com/skyrimspecialedition/mods/17925"
"0268","SkyrimForBattleV-Patch",""
"0269","IFPV Detector Plugin","https://www.nexusmods.com/skyrimspecialedition/mods/22306"
"0270","Jaxonz MCM Kicker SE_rus_",""
"0271","SkyUI -RUS-","https://www.nexusmods.com/skyrimspecialedition/mods/21088"
"0272","INIGO -RUS-",""
"0273","Song of the Green _RUS_",""
"0274","Inigo Banter patch",""
"0275","Refined Auri SSE -PATCH-","https://www.nexusmods.com/skyrimspecialedition/mods/36444"
"0276","Refined Auri SSE -RUS-",""
"0277","Vokrii(26176)-2-0-1-RU","https://www.nexusmods.com/skyrimspecialedition/mods/28035"
"0278","Саурон",""
"0279","Sweety Preset",""
"0280","Console font fix - RU","https://www.nexusmods.com/skyrimspecialedition/mods/55792"
"0281","BodySlide output",""
"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"
"0285","FNIS Overwrite",""
"0286","Nemesis overwrite",""
"0288","Pipe Smoking SE","https://www.nexusmods.com/skyrimspecialedition/mods/13061"
"0289","Pipe Smoking SE RUS",""
"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"
#Mod_Priority,#Mod_Name,#Mod_Nexus_URL
"0000","Unmanaged: FNIS",""
"0002","DLC: HearthFires",""
"0003","DLC: Dragonborn",""
"0004","DLC: Dawnguard",""
"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"
"0008","powerofthree's Tweaks","https://www.nexusmods.com/skyrimspecialedition/mods/51073"
"0009","JContainers SE","https://www.nexusmods.com/skyrimspecialedition/mods/16495"
"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"
"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"
"0014","SkyUI_5_2_SE","https://www.nexusmods.com/skyrimspecialedition/mods/12604"
"0015","UIExtensions","https://www.nexusmods.com/skyrimspecialedition/mods/17561"
"0016","DynDOLOD Resources SE","https://www.nexusmods.com/skyrimspecialedition/mods/32382"
"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"
"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"
"0022","Papyrus API","https://www.nexusmods.com/skyrimspecialedition/mods/24858"
"0023","IFrame Generator RE","https://www.nexusmods.com/skyrimspecialedition/mods/74401"
"0024","dTry's Key Utils SE","https://www.nexusmods.com/skyrimspecialedition/mods/69944"
"0025","Papyrus Ini Manipulator","https://www.nexusmods.com/skyrimspecialedition/mods/65634"
"0027","SSE Display Tweaks","https://www.nexusmods.com/skyrimspecialedition/mods/34705"
"0028","CrashLogger","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"
"0036","Перевод BodySlide and Outfit Studio",""
"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"
"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"
"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"
"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"
"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"
"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"
"0059","Northern Roads","https://www.nexusmods.com/skyrimspecialedition/mods/77530"
"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"
"0062","Enhanced Landscapes","https://www.nexusmods.com/skyrimspecialedition/mods/18162"
"0063","EVLaS","https://www.nexusmods.com/skyrimspecialedition/mods/63725"
"0064","Morning Fogs SSE - Thin Fog","https://www.nexusmods.com/skyrimspecialedition/mods/21436"
"0065","Water for ENB","https://www.nexusmods.com/skyrimspecialedition/mods/37061"
"0066","ELFX Fixes (RUS)","https://www.nexusmods.com/skyrimspecialedition/mods/39765"
"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"
"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"
"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"
"0074","Bellyaches Animal and Creature Pack",""
"0075","Majestic Mountains Main","https://www.nexusmods.com/skyrimspecialedition/mods/11052"
"0077","Schlongs of Skyrim SE",""
"0079","Bijin Skin - CBBE","https://www.nexusmods.com/skyrimspecialedition/mods/20078"
"0080","Fair Skin Complexion for CBBE",""
"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"
"0086","High Poly Head SE",""
"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"
"0089","Kalilies Brows","https://www.nexusmods.com/skyrimspecialedition/mods/40595"
"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"
"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"
"0095","HDT-SMP Racemenu Hairs and Wigs",""
"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"
"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"
"0100","SE SG Brows","https://www.nexusmods.com/skyrimspecialedition/mods/25890"
"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"
"0103","Womens_Eyebrows",""
"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"
"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"
"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"
"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"
"0113","Conditional Gender Animations","https://www.nexusmods.com/skyrimspecialedition/mods/73446"
"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"
"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"
"0121","Guards Armor Replacer [RUS]",""
"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"
"0124","Lanterns Of Skyrim II",""
"0125","Lanterns Of Skyrim II - FOMOD","https://www.nexusmods.com/skyrimspecialedition/mods/30817"
"0128","HD HAIR(SE)",""
"0129","NecDaz Feet v",""
"0130","Feminine Hands for SE","https://www.nexusmods.com/skyrimspecialedition/mods/67522"
"0131","Pandorable's NPCs","https://www.nexusmods.com/skyrimspecialedition/mods/19012"
"0132","PAN_AIO",""
"0133","PAN_DashingDefenders SE","https://www.nexusmods.com/skyrimspecialedition/mods/78600"
"0134","Pandorable's Wicked Witches","https://www.nexusmods.com/skyrimspecialedition/mods/77478"
"0135","Pandorable's NPCs - Sovngarde","https://www.nexusmods.com/skyrimspecialedition/mods/55877"
"0136","PAN_DevotedDames","https://www.nexusmods.com/skyrimspecialedition/mods/59531"
"0137","Pandorable's Serana","https://www.nexusmods.com/skyrimspecialedition/mods/24931"
"0138","Pandorable's Marvellous Miners","https://www.nexusmods.com/skyrimspecialedition/mods/56399"
"0139","Pandorable's Valerica","https://www.nexusmods.com/skyrimspecialedition/mods/35799"
"0140","Pandorable's Frea and Frida","https://www.nexusmods.com/skyrimspecialedition/mods/31273"
"0141","PAN_Nevri","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"
"0144","Pandorable's Warrior Women","https://www.nexusmods.com/skyrimspecialedition/mods/34464"
"0145","Pandorable's Lethal Ladies","https://www.nexusmods.com/skyrimspecialedition/mods/36827"
"0146","PAN_ShieldSisters","https://www.nexusmods.com/skyrimspecialedition/mods/42480"
"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"
"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"
"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"
"0153","Bijin AIO SE for USSEP","https://www.nexusmods.com/skyrimspecialedition/mods/11287"
"0161","Dragonborn Voice Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/84329"
"0162","Bella Voice DBVO","https://www.nexusmods.com/skyrimspecialedition/mods/89810"
"0163","Bella Voice Fix",""
"0164","voicebella maingame and dlc","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"
"0170","RaceMenu Special Edition",""
"0171","RaceMenu Special Edition RUS",""
"0172","Alternate Start - Live Another Life","https://www.nexusmods.com/skyrimspecialedition/mods/272"
"0174","Alternate Conversation Camera","https://www.nexusmods.com/skyrimspecialedition/mods/21220"
"0175","SkyHUD","https://www.nexusmods.com/skyrimspecialedition/mods/463"
"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"
"0178","Vokrii - Scaling Rebalance","https://www.nexusmods.com/skyrimspecialedition/mods/55091"
"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"
"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"
"0183","SkyrimForBattleV",""
"0184","PC Head Tracking - MCM v4.8 SE","https://www.nexusmods.com/skyrimspecialedition/mods/11993"
"0186","SummonShadowMERCHANT","https://www.nexusmods.com/skyrimspecialedition/mods/2177"
"0188","VioLens - A Killmove Mod SE","https://www.nexusmods.com/skyrimspecialedition/mods/668"
"0189","True Directional Movement","https://www.nexusmods.com/skyrimspecialedition/mods/51614"
"0190","True Directional Movement RU","https://www.nexusmods.com/skyrimspecialedition/mods/53188"
"0191","SkySA",""
"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"
"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"
"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"
"0200","Stances - Add-On","https://www.nexusmods.com/skyrimspecialedition/mods/41251"
"0201","Stances - Dynamic Animation Sets","https://www.nexusmods.com/skyrimspecialedition/mods/40484"
"0202","AMR Stance Framework","https://www.nexusmods.com/skyrimspecialedition/mods/54674"
"0203","Enhanced Enemy AI","https://www.nexusmods.com/skyrimspecialedition/mods/32063"
"0204","Precision","https://www.nexusmods.com/skyrimspecialedition/mods/72347"
"0205","Keytrace","https://www.nexusmods.com/skyrimspecialedition/mods/63362"
"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"
"0208","Animated Potions","https://www.nexusmods.com/skyrimspecialedition/mods/73819"
"0209","3PCO - 3rd Person Camera Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/89516"
"0210","Nock to Tip",""
"0211","Deadly Mutilation","https://www.nexusmods.com/skyrimspecialedition/mods/34917"
"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"
"0216","[immyneedscake] Skydraenei by Eriayai CBBE SSE",""
"0217","3BA SkyDraenei","https://www.nexusmods.com/skyrimspecialedition/mods/57617"
"0218","True Demon Race","https://www.nexusmods.com/skyrimspecialedition/mods/58141"
"0222","Acalypha - Fully Voiced Follower",""
"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"
"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"
"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"
"0230","Winter Is Coming - Cloaks RU SE","https://www.nexusmods.com/skyrimspecialedition/mods/62756"
"0231","True Weapons","https://www.nexusmods.com/skyrimspecialedition/mods/38596"
"0232","Eclipse_Mage_Outfit_HDT",""
"0233","[SE] BDOR Navillera",""
"0235","Dominica Preset RM SSE","https://www.nexusmods.com/skyrimspecialedition/mods/70448"
"0236","Irena High Poly Head preset by ElleShet SE",""
"0237","Nirani Indoril Body preset SE by ElleShet",""
"0239","MainMenuRandomizerSE","https://www.nexusmods.com/skyrimspecialedition/mods/33574"
"0240","Main Menu Redone - 1080p","https://www.nexusmods.com/skyrimspecialedition/mods/59993"
"0241","Main Menu Design Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/30810"
"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"
"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"
"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"
"0251","Northern Roads - Patches Compendium","https://www.nexusmods.com/skyrimspecialedition/mods/77893"
"0252","Holds The City Overhaul -RUS-",""
"0253","Majestic Mountains [RUS]",""
"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"
"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"
"0258","Pandorables NPCs Males [RUS]",""
"0259","Pandorables NPCs - Males 2 [RUS]",""
"0260","PAN_AIO_small - AI Overhaul SSE patch-1-4-Rus",""
"0261","Irena High Poly Head preset by ElleShet SE 3BBB Body",""
"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"
"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"
"0266","Nordic UI -RUS-",""
"0267","Campfire 1.12.1 and Frostfall 3.4.1SE","https://www.nexusmods.com/skyrimspecialedition/mods/17925"
"0268","SkyrimForBattleV-Patch",""
"0269","IFPV Detector Plugin","https://www.nexusmods.com/skyrimspecialedition/mods/22306"
"0270","Jaxonz MCM Kicker SE_rus_",""
"0271","SkyUI -RUS-","https://www.nexusmods.com/skyrimspecialedition/mods/21088"
"0272","INIGO -RUS-",""
"0273","Song of the Green _RUS_",""
"0274","Inigo Banter patch",""
"0275","Refined Auri SSE -PATCH-","https://www.nexusmods.com/skyrimspecialedition/mods/36444"
"0276","Refined Auri SSE -RUS-",""
"0277","Vokrii(26176)-2-0-1-RU","https://www.nexusmods.com/skyrimspecialedition/mods/28035"
"0278","Саурон",""
"0279","Sweety Preset",""
"0280","Console font fix - RU","https://www.nexusmods.com/skyrimspecialedition/mods/55792"
"0281","BodySlide output",""
"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"
"0285","FNIS Overwrite",""
"0286","Nemesis overwrite",""
"0288","Pipe Smoking SE","https://www.nexusmods.com/skyrimspecialedition/mods/13061"
"0289","Pipe Smoking SE RUS",""
"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"

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>
<h1>Блог</h1>
</center>
<div id="blog-posts">
<center><p>Загрузка новостей...</p></center>
<!-- <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%;">
<center>
<h3 style="padding-top: 1.5%;">Пример заголовка</h3>
<small style="color: rgba(255,255,255,0.5); padding-bottom: 0.5%;">
<div>Опубликовано: 22.09.2003 в 7:00</div>
<div id="posted-by-0" hidden>Через telegram</div>
</small>
</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>
<!-- Изображения -->
<center><div id="carouselExampleIndicators" class="carousel slide blog-post-image-carousel" data-bs-ride="carousel" id="post-images-0" hidden>
<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="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<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="...">
</div>
<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="...">
</div>
<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="...">
</div>
</div>
<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="visually-hidden">Предыдущий</span>
</button>
<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="visually-hidden">Следующий</span>
</button>
</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-item">
<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>
</h5>
<div id="collapseOne" class="accordion-collapse bg-dark text-light collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<div class="accordion-body">
<!-- <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>
</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-secondary" style="margin-left: 0.5%; margin-top: 1.5%; margin-bottom: 1.5%;" onclick="alert('Функция в разработке!');">Комментарии (0)</button>
</div>
</div>
<!-- Модальное окно просмотра изображений -->
<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-img-view"> -->
<div class="modal-content text-light bg-dark">
<!-- <img src="https://warhammerart.com/wp-content/uploads/2021/08/Adeptus-Mechanicus.jpg"> -->
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Просмотр изображения</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
</div>
<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>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Закрыть</button>
<!-- <button type="button" class="btn btn-primary">Сохранить изменения</button> -->
</div>
</div>
</div>
<center>
<h1>Блог</h1>
</center>
<div id="blog-posts">
<center><p>Загрузка новостей...</p></center>
<!-- <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%;">
<center>
<h3 style="padding-top: 1.5%;">Пример заголовка</h3>
<small style="color: rgba(255,255,255,0.5); padding-bottom: 0.5%;">
<div>Опубликовано: 22.09.2003 в 7:00</div>
<div id="posted-by-0" hidden>Через telegram</div>
</small>
</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>
<!-- Изображения -->
<center><div id="carouselExampleIndicators" class="carousel slide blog-post-image-carousel" data-bs-ride="carousel" id="post-images-0" hidden>
<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="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<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="...">
</div>
<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="...">
</div>
<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="...">
</div>
</div>
<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="visually-hidden">Предыдущий</span>
</button>
<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="visually-hidden">Следующий</span>
</button>
</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-item">
<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>
</h5>
<div id="collapseOne" class="accordion-collapse bg-dark text-light collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<div class="accordion-body">
<!-- <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>
</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-secondary" style="margin-left: 0.5%; margin-top: 1.5%; margin-bottom: 1.5%;" onclick="alert('Функция в разработке!');">Комментарии (0)</button>
</div>
</div>
<!-- Модальное окно просмотра изображений -->
<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-img-view"> -->
<div class="modal-content text-light bg-dark">
<!-- <img src="https://warhammerart.com/wp-content/uploads/2021/08/Adeptus-Mechanicus.jpg"> -->
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Просмотр изображения</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
</div>
<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>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Закрыть</button>
<!-- <button type="button" class="btn btn-primary">Сохранить изменения</button> -->
</div>
</div>
</div>
</div>

View File

@ -1,19 +1,19 @@
<center>
<h1 style="margin-top: 5px;">Мои контакты</h1>
<h2><img src="/assets/avatar.png" class="rounded" alt="...", style="width:25vh"></h2>
<h2>Обратная связь</h2>
<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://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>
</div><p></p>
<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://gamer-mods.ru/index/8-1000260")'>gamer-mods.ru</button>
</div>
<h2>Паблики, блоги, иные ресурсы</h2>
<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://t.me/FullGreaM")'>Телеграм</button> -->
</div>
<center>
<h1 style="margin-top: 5px;">Мои контакты</h1>
<h2><img src="/assets/avatar.png" class="rounded" alt="...", style="width:25vh"></h2>
<h2>Обратная связь</h2>
<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://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>
</div><p></p>
<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://gamer-mods.ru/index/8-1000260")'>gamer-mods.ru</button>
</div>
<h2>Паблики, блоги, иные ресурсы</h2>
<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://t.me/FullGreaM")'>Телеграм</button> -->
</div>
</center>

View File

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

View File

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

View File

@ -1,19 +1,19 @@
<center>
<div class="centered-el"></div>
<!-- <h1>It's all worked!</h1> -->
<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>
</div>
<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">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Предыдущий</span>
</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">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Предыдущий</span>
</button>
</div>
<center>
<div class="centered-el"></div>
<!-- <h1>It's all worked!</h1> -->
<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>
</div>
<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">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Предыдущий</span>
</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">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Предыдущий</span>
</button>
</div>
</center>

View File

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

View File

@ -1,28 +1,28 @@
<center>
<h1 style="margin-top: 5px; margin-bottom: 15px;">Менеджер паролей онлайн</h1>
</center>
<div class="password-manger-form bg-light text-dark">
<form>
<div class="mb-3">
<center><label class="form-label">Ключевое слово</label></center>
<input type="password" class="form-control" id="keyword" aria-describedby="kwHelp">
<div id="kwHelp" class="form-text">Является "корневым паролем" для генерации паролей</div>
</div>
<div class="mb-3">
<center><label class="form-label">Логин в системе</label></center>
<input type="text" class="form-control" id="login" aria-describedby="loginHelp">
<div id="loginHelp" class="form-text">Желательно использовать следующий приоритет: логин->почта->номер телефона; это поможет вам знать корректный пароль от системы</div>
</div>
<div class="mb-3">
<center><label class="form-label">Сервис</label></center>
<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>
<div class="mb-3">
<center><label class="form-label">Сгенерированный пароль</label></center>
<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>
</form>
<center><button type="submit" class="btn btn-primary" id="generate-password">Сгенерировать</button> <button class="btn btn-secondary" id="copy-password">Скопировать</button></center>
<center>
<h1 style="margin-top: 5px; margin-bottom: 15px;">Менеджер паролей онлайн</h1>
</center>
<div class="password-manger-form bg-light text-dark">
<form>
<div class="mb-3">
<center><label class="form-label">Ключевое слово</label></center>
<input type="password" class="form-control" id="keyword" aria-describedby="kwHelp">
<div id="kwHelp" class="form-text">Является "корневым паролем" для генерации паролей</div>
</div>
<div class="mb-3">
<center><label class="form-label">Логин в системе</label></center>
<input type="text" class="form-control" id="login" aria-describedby="loginHelp">
<div id="loginHelp" class="form-text">Желательно использовать следующий приоритет: логин->почта->номер телефона; это поможет вам знать корректный пароль от системы</div>
</div>
<div class="mb-3">
<center><label class="form-label">Сервис</label></center>
<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>
<div class="mb-3">
<center><label class="form-label">Сгенерированный пароль</label></center>
<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>
</form>
<center><button type="submit" class="btn btn-primary" id="generate-password">Сгенерировать</button> <button class="btn btn-secondary" id="copy-password">Скопировать</button></center>
</div>

View File

@ -1,27 +1,27 @@
<div id="releases" class="release-menu">
<h1>Релизы программ</h1>
<hr>
<div id="realese-item-1" class="release-item">
<h3>Планировщик студента</h3>
<hr>
<p><strong>Описание</strong></p>
<p>Планировщик студента - программа для планирования своего учебного времени, планировании задач и целей. Программа помогает в организации времени и досуга.</p>
<p><strong>Установка</strong></p>
<div class="accordion text-bg-info" id="accordionExample">
<div class="accordion-item">
<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>
</h5>
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<div class="accordion-body">
<!-- <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>
</div>
</div>
</div>
</div>
</div>
<div id="releases" class="release-menu">
<h1>Релизы программ</h1>
<hr>
<div id="realese-item-1" class="release-item">
<h3>Планировщик студента</h3>
<hr>
<p><strong>Описание</strong></p>
<p>Планировщик студента - программа для планирования своего учебного времени, планировании задач и целей. Программа помогает в организации времени и досуга.</p>
<p><strong>Установка</strong></p>
<div class="accordion text-bg-info" id="accordionExample">
<div class="accordion-item">
<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>
</h5>
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<div class="accordion-body">
<!-- <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>
</div>
</div>
</div>
</div>
</div>
</div>

View File

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

View File

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

View File

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

View File

@ -1,34 +1,34 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/>
<link rel="stylesheet" href="/assets/font-awesome/css/all.css" />
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script>
</body>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/>
<link rel="stylesheet" href="/assets/font-awesome/css/all.css" />
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script>
</body>
</html>

View File

@ -1,32 +1,32 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/>
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script>
</body>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/>
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script>
</body>
</html>

View File

@ -1,34 +1,34 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/>
<link rel="stylesheet" href="/assets/font-awesome/css/all.css" />
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script>
</body>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/>
<link rel="stylesheet" href="/assets/font-awesome/css/all.css" />
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script>
</body>
</html>

View File

@ -1,32 +1,32 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css">
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<script>setTimeout(async () => fl.go(window.location.pathname), 50);</script>
<script src="/assets/main.js"></script>
</body>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css">
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<script>setTimeout(async () => fl.go(window.location.pathname), 50);</script>
<script src="/assets/main.js"></script>
</body>
</html>

View File

@ -1,34 +1,34 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/>
<link rel="stylesheet" href="/assets/font-awesome/css/all.css" />
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script>
</body>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 rel="stylesheet" href="/assets/main.css">
<link rel="icon" type="image/png" href="/favicon.png"/>
<link rel="stylesheet" href="/assets/font-awesome/css/all.css" />
<title>FullGreaM</title>
</head>
<body class="bg text-white">
<script src="/fl_framework/index.js"></script>
<nav id="navbar-main" class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#" onclick="fl.go('/');">
FullGreaM
</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>
</nav>
<div id="turn-on-js">
<h1>Включите поддержку JavaScript!</h1>
<p>В противном случае, компоненты сайте не смогут быть загружены</p>
</div>
<script>
document.getElementById("turn-on-js").innerHTML = '<div id="fl.area"><p>Loading...</p></div>';
</script>
<!-- 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>
<!-- Go to root -->
<!-- <script>setTimeout(async () => fl.go(window.location.pathname), 50);</script> -->
<script src="/assets/main.js" type="module"></script>
</body>
</html>