1

Тема: Настройка форума

+ Настройка блока с кодом

Настройки профиля → Персональное → Код для форума

Если в этом поле нет вызова функции "CodeParse", то вверху будут (под каждым окном с кодом) ссылки "копировать" и "выделить", иначе можно вписать любой html и javascript, а также макросы (обозначаются символами %). Функция copySection - копирует (с учетом уже выделенного) код не меняя в нем пробелы или табуляцию. Остальные же функции преобразуют код и копируют его полностью.

Директивы:

"<!-- crlf -->" - в коде не удаляются переводы строк.

Копирование:

CodeParse('<div %bottom%>КОД: %selectCode(Выделить всё)%</div>%code%<div %top%>%copySection(Копировать)%%copyTab(с табуляцией)%%copySpace4(с 4 пробелами)%%copySpace3(с 3 пробелами)%%copySpace2(с 2 пробелами)%</div>');

Шрифт:

$("head").prepend('<link href="https://fonts.googleapis.com/css?family=Droid+Sans+Mono" rel="stylesheet">');
$(".codebox > pre > code").css({ fontFamily: 'Droid Sans Mono', fontSize: '16px' });

Для мобильного просмотра:

Для google chrome можно просто в настройках убрать галочку с "Полная версия", и тогда вам не понадобится код указанный ниже.

$('.brd').css("width",  "99%");
$(".mini-chat").css("display", "none");
$(".postfoot").css("padding-left", "11em");
$(".postbody, .posthead").css("margin-left", "11em");
$(".post-byline").css({ marginLeft: '-13em', width: '9em' });
$(".post-author").css({ marginLeft: '-13em', width: 'auto' });
$(".entry-content").css({ paddingBottom: '0px', minHeight: '2em' });
$("#pan_top, #pan_bottom, .userstatus, .author-info, .medals").remove();


+ Настройка подсветки кода

Настройки профиля → Персональное → Стиль подсветки кода

Если это поле равно "-- none --" то, подсветка кода работать не будет, иначе будет работать автоматическая подсветка кода с указанным стилем оформления.


+ Рейтинг

Теперь минус могут ставить пользователи у которых "плюс - минус > 9" и они не входят в группу "Гости" или "Участники".

Система медалей работает по следующему правилу:

'medal_silver.png' => array(10, 100)
'medal_gold.png' => array(10, 300)
'star_gold.png'    => array(10, 1000)
'king_gold.png'  => array(10, 4000)

Где 1 цифра количество медалей, а 2 цифра кол-во пунктов рейтинга, чтобы были все медали для текущего этапа.

2

Re: Настройка форума

+ Пример подсветки синтаксиса.
<?php
// Adds a new post to the specified topic or a new topic to the specified forum.
 
define('FORUM_SKIP_CSRF_CONFIRM', 1);
 
if (!defined('FORUM_ROOT'))
    define('FORUM_ROOT', './');
require FORUM_ROOT.'include/common.php';
 
($hook = get_hook('po_start')) ? eval($hook) : null;
 
if ($forum_user['g_read_board'] == '0')
    message($lang_common['No view']);
 
// Load the post.php language file
require FORUM_ROOT.'lang/'.$forum_user['language'].'/post.php';

3

Re: Настройка форума

+ Пример минималистичного КОД'а. Кнопку разместил справа сверху.
CodeParse('%copyTab(<img src="http://i.imgur.com/LVbsVhh.png" align="right" title="Копировать">)%%code%');

4

Re: Настройка форума

+ Для кнопок сверху правильно так
CodeParse('<div %bottom%>%copySection(Копировать)% %copyTab(с табуляцией)% %copySpace3(с 3 пробелами)% <br><br></div><br>%code%');
+ Или с иконками вместо текста
CodeParse('<div %bottom%>%copySection(<img src="http://i.imgur.com/qE5dBUT.png" title="Копировать">)% %copyTab(<img src="http://i.imgur.com/nWOboKU.png" title="Копировать с табуляцией">)% %copySpace3(<img src="http://i.imgur.com/vrA2E3d.png" title="Копировать с 3 пробелами">)% <br><br></div><br>%code%');
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 (изменено: KusochekDobra, 2020-08-31 23:15:06)

Re: Настройка форума

+ Расширение для браузера

Всем добра!

Давно руки чесались поменять расцветку страниц форума, сделав их потемнее. Да, есть расширения и даже с удобным интерфейсом для настройки, но занимались бы мы с вами тем, чем занимаемся, если бы руки не чесались?

Добавил больше серых тонов оформлению "Серого форума". Теперь не будет так убивать глаза своей яркостью. В блоки комментариев, оформленных тегом "code" добавил функционал:
* Подсветка синтаксиса на основе Prism.js, позаимствованного на забугорном форуме.
* Плагин добавляющий нумерацию строк.
* Пять тёмных тем оформления на выбор.
* Возможность полностью разворачивать блок и сворачивать обратно, до высоты превью с прокруткой к началу блока.
* Поддержка лучшего(на мой взгляд), бесплатного, моноширинного шрифта FiraCode.

Клик по дате в заголовке каждого поста, хранящей постоянную ссылку на него, теперь предложит записать её в буфер обмена во всплывающем конфирме, вверху страницы.

Текстовое поле для ответа в теме, так же снабжено моноширинным шрифтом, так как не редко в нём приходится набирать и примеры кода.

В разметку сайта, в правый-верхний угол страницы добавлен минималистичный виджет для быстрых настроек.

Вся надстройка выполнена с участием Svelte, от чего исполняемый код был "минифицирован" компилятором. Посмотреть исходники сборки можно тут.

[ - Инсталляция - ]

Это типичный UserScript и чтобы его использовать нужно установить в свой браузер расширение, позволяющее их запускать. Для браузеров на основе Chromium, FireFox, Opera.

Сайт Greasy Fork(площадка для распространения пользовательских скриптов) запрещает размещать у себя обфусцированные и минифицированные скрипты, что делает невозможным стандартное распространение этого сценария. Но его можно скопировать в буфер, кликнуть по расширению и выбрать "Создать новый скрипт", после чего запустится инстанс редактора, весь дефолтный текст которого нужно удалить и вместо него вставить содержимое буфера, а затем сохранить(Ctrl+A -> Ctrl + V -> Ctrl + S). Довольно просто.

Теперь, если скачаны и установлены шрифты "FiraCode" по ссылке выше, отметтье одноимённый чекбокс в новом виджете на странице и наслаждайтесь новым представлением страниц "Серого форума"!

Не забудьте перезагрузить страницу(F5), чтобы изменения вступили в силу.

// ==UserScript==
// @name         Gray forum — more shade of gray!
// @namespace    http://script-coding.com/
// @version      1.0
// @author       KusochekDobra
// @match        http://forum.script-coding.com/*

// @exclude      http://forum.script-coding.com/login*

// @require      https://cdnjs.cloudflare.com/ajax/libs/prism/1.21.0/components/prism-core.min.js
// @require      https://cdnjs.cloudflare.com/ajax/libs/prism/1.21.0/components/prism-autohotkey.min.js

// @resource     twilight_dark_css_src https://atelierbram.github.io/syntax-highlighting/prism/demo/assets/css/prism-base16-twilight.dark.css
// @resource     xonokai_css_src https://atelierbram.github.io/syntax-highlighting/prism/demo/assets/css/prism-xonokai.css
// @resource     tomorrow_css_src https://raw.githubusercontent.com/PrismJS/prism/master/themes/prism-tomorrow.css
// @resource     ashes_dark_css_src https://atelierbram.github.io/syntax-highlighting/prism/demo/assets/css/prism-base16-ashes.dark.css
// @resource     pojoaque_css_src https://atelierbram.github.io/syntax-highlighting/prism/demo/assets/css/prism-pojoaque.css

// @require      https://cdnjs.cloudflare.com/ajax/libs/prism/1.21.0/plugins/line-numbers/prism-line-numbers.min.js
// @resource     prism_numbers_css_src https://cdnjs.cloudflare.com/ajax/libs/prism/1.21.0/plugins/line-numbers/prism-line-numbers.min.css

// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_addStyle
// @grant        GM_getResourceText
// @grant        GM_setClipboard
// ==/UserScript==

const svelte_css_txt = "#content-box.svelte-jjzoge .svelte-jjzoge{margin:0;padding:0;box-sizing:border-box}#content-box.svelte-jjzoge.svelte-jjzoge{font-family:monospace;position:fixed;user-select:none;overflow:hidden;top:10px;right:10px;width:20px;height:20px;border-radius:5px;padding:5px;transition:all .3s ease;background:white;box-shadow:0 0 5px black}#box-wrap.svelte-jjzoge.svelte-jjzoge{margin:5px;display:none}#toggle-btn.svelte-jjzoge.svelte-jjzoge{position:absolute;top:5px;right:5px;width:20px;height:20px;cursor:pointer;line-height:20px;text-align:center;color:black;text-shadow:none;font-size:24px;transform:rotateZ(0deg);transition:all .3s ease}#code-themes.svelte-jjzoge.svelte-jjzoge{margin-top:5px;padding:10px;background:lightgray}#toggle-btn.svelte-jjzoge.svelte-jjzoge:hover{color:aqua;text-shadow:0 0 5px black;white-space:nowrap}";
GM_addStyle( svelte_css_txt );
var app=function(){"use strict";function e(){}function t(e,t){for(const n in t)e[n]=t[n];return e}function n(e){return e()}function o(){return Object.create(null)}function s(e){e.forEach(n)}function c(e){return"function"==typeof e}function r(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function l(t,n,o){t.$$.on_destroy.push(function(t,...n){if(null==t)return e;const o=t.subscribe(...n);return o.unsubscribe?()=>o.unsubscribe():o}(n,o))}function i(e,t){e.appendChild(t)}function a(e,t,n){e.insertBefore(t,n||null)}function d(e){e.parentNode.removeChild(e)}function u(e){return document.createElement(e)}function h(e){return document.createTextNode(e)}function p(){return h(" ")}function g(e,t,n,o){return e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)}function f(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function m(e,t){for(let n=0;n<e.options.length;n+=1){const o=e.options[n];if(o.__value===t)return void(o.selected=!0)}}let b;function y(e){b=e}const x=[],v=[],w=[],k=[],_=Promise.resolve();let S=!1;function $(e){w.push(e)}let j=!1;const E=new Set;function q(){if(!j){j=!0;do{for(let e=0;e<x.length;e+=1){const t=x[e];y(t),C(t.$$)}for(x.length=0;v.length;)v.pop()();for(let e=0;e<w.length;e+=1){const t=w[e];E.has(t)||(E.add(t),t())}w.length=0}while(x.length);for(;k.length;)k.pop()();S=!1,j=!1,E.clear()}}function C(e){if(null!==e.fragment){e.update(),s(e.before_update);const t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach($)}}const A=new Set;function O(e,t){e&&e.i&&(A.delete(e),e.i(t))}function z(e,t,o){const{fragment:r,on_mount:l,on_destroy:i,after_update:a}=e.$$;r&&r.m(t,o),$(()=>{const t=l.map(n).filter(c);i?i.push(...t):s(t),e.$$.on_mount=[]}),a.forEach($)}function N(e,t){const n=e.$$;null!==n.fragment&&(s(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function H(e,t){-1===e.$$.dirty[0]&&(x.push(e),S||(S=!0,_.then(q)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31}function L(t,n,c,r,l,i,a=[-1]){const u=b;y(t);const h=n.props||{},p=t.$$={fragment:null,ctx:null,props:i,update:e,not_equal:l,bound:o(),on_mount:[],on_destroy:[],before_update:[],after_update:[],context:new Map(u?u.$$.context:[]),callbacks:o(),dirty:a,skip_bound:!1};let g=!1;if(p.ctx=c?c(t,h,(e,n,...o)=>{const s=o.length?o[0]:n;return p.ctx&&l(p.ctx[e],p.ctx[e]=s)&&(!p.skip_bound&&p.bound[e]&&p.bound[e](s),g&&H(t,e)),n}):[],p.update(),g=!0,s(p.before_update),p.fragment=!!r&&r(p.ctx),n.target){if(n.hydrate){const e=function(e){return Array.from(e.childNodes)}(n.target);p.fragment&&p.fragment.l(e),e.forEach(d)}else p.fragment&&p.fragment.c();n.intro&&O(t.$$.fragment),z(t,n.target,n.anchor),q()}y(u)}class M{$destroy(){N(this,1),this.$destroy=e}$on(e,t){const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const T=[];function F(t,n=e){let o;const s=[];function c(e){if(r(t,e)&&(t=e,o)){const e=!T.length;for(let e=0;e<s.length;e+=1){const n=s[e];n[1](),T.push(n,t)}if(e){for(let e=0;e<T.length;e+=2)T[e][0](T[e+1]);T.length=0}}}return{set:c,update:function(e){c(e(t))},subscribe:function(r,l=e){const i=[r,l];return s.push(i),1===s.length&&(o=n(c)||e),r(t),()=>{const e=s.indexOf(i);-1!==e&&s.splice(e,1),0===s.length&&(o(),o=null)}}}}const G=JSON.parse(GM_getValue("config",JSON.stringify({style:{code:{theme:"tomorrow",fira_code:!1,add_numbers:!1,use_old_height:!1}}})));const B=function(){const{subscribe:e,set:t}=F(G.style.code.theme);return{subscribe:e,set:e=>{G.style.code.theme=e,t(e)}}}(),P=function(){const{subscribe:e,set:t}=F(G.style.code.fira_code);return{subscribe:e,set:e=>{G.style.code.fira_code=e,t(e)}}}(),W=function(){const{subscribe:e,set:t}=F(G.style.code.add_numbers||!1);return{subscribe:e,set:e=>{G.style.code.add_numbers=e,t(e)}}}(),R=function(){const{subscribe:e,set:t}=F(G.style.code.use_old_height||!1);return{subscribe:e,set:e=>{G.style.code.use_old_height=e,t(e)}}}();window.addEventListener("beforeunload",()=>{GM_setValue("config",JSON.stringify(G))});const D="https://www.flaticon.com/premium-icon/icons/svg/3396/3396836.svg",J="https://image.flaticon.com/icons/svg/1828/1828417.svg",V="https://image.flaticon.com/icons/svg/1828/1828135.svg",Z="rgb(195,195,195)",Y="rgb(125,125,125)",I="rgb(65,65,65)";function K(e=null){return pageYOffset+(null!==e?e.getBoundingClientRect().y:0)}function Q(e,t,n){let o,s,c,r;l(e,B,e=>n(0,o=e)),l(e,P,e=>n(1,s=e)),l(e,R,e=>n(2,c=e)),l(e,W,e=>n(3,r=e));GM_addStyle(GM_getResourceText(o+"_css_src")),GM_addStyle(GM_getResourceText("prism_numbers_css_src")),GM_addStyle('\n    .ex-container {\n        position: absolute;\n        top: 85px; right: 35px;\n        padding: 5px;\n        border-radius: 5px;\n        box-shadow: rgba(255, 255, 255, 0.2) 0px 0px 1px;\n        cursor: pointer;\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n        height: 16px;\n        opacity: .5;\n        transition: all 0.3s ease 0s;\n    }\n    .ex-container:hover { box-shadow: rgba(255, 255, 255, 1) 0px 0px 5px; opacity: 1; }\n    .auto-ex { transition: all .3s ease; }\n\n    .posting>.newpost>span { color: white; text-shadow: 0 0 5px black; transition: all .3s ease; }\n    .posting>.newpost>span:hover { color: black; text-shadow: 0 0 5px white; }\n    .main-subhead { border: "none"; box-shadow: 0 0 10px black inset; }\n    .rep_info_link>img { height: 12px; transform: scale(1); transition: transform .1s ease; }\n    .rep_info_link>img:hover { transform: scale(1.5); }\n    p>strong { box-shadow: 0 0 5px white; }\n    div#brd-pagepost-top a:not([class=newpost]), div#brd-pagepost-end a:not([class=newpost]) { box-shadow: none; transition: all .2s ease; }\n    div#brd-pagepost-top a:not([class=newpost]):hover, div#brd-pagepost-end a:not([class=newpost]):hover { box-shadow: 0 0 5px black; }\n    div#brd-pagepost-top .first-item, div#brd-pagepost-end .first-item { padding: 0 12px; }\n    ');function i(e){const t=document.createDocumentFragment(),n=c?200:420,o=e.children[0],l=e.children[2];if(!l)return;const i=l.children[0];if(i.className="language-autohotkey",Object.assign(l.style,{maxHeight:n+"px",width:"calc(100% - 28px)"}),l.classList.add("auto-ex"),e.style.position="relative",i.scrollHeight>n||i.scrollHeight>360){l.style.willChange="max-height";const t=document.createElement("div");t.className="ex-container";const o=document.createElement("img");o.style.height="16px",o.src=D,t.title="Развернуть код",t.onclick=s=>{const c=Boolean(+l.dataset.exState);i.scrollHeight>n&&l.offsetHeight<i.scrollHeight&&!c?(l.style.maxHeight=i.scrollHeight+20+"px",l.dataset.exState=1,o.src="https://www.flaticon.com/premium-icon/icons/svg/3396/3396845.svg",t.title="Свернуть код",Object.assign(t.style,{right:"17px",height:i.scrollHeight+"px"})):c&&(l.style.maxHeight=n+"px",l.dataset.exState=0,o.src=D,t.title="Развернуть код",Object.assign(t.style,{right:"35px",height:"18px"}),K(e)<document.documentElement.scrollTop&&window.scrollTo({top:K(e.parentNode.parentNode),behavior:"smooth"}))},t.appendChild(o),e.appendChild(t)}o.innerHTML='<a href="#" onclick="copyCodeSection(this); return false;" class="permalink codetitle"><img src="https://image.flaticon.com/icons/svg/2921/2921724.svg" style="height: 16px;" title="Копировать"></a><a href="#" onclick="copyCodeWithTabs(this); return false;" class="permalink codetitle"><img src="https://image.flaticon.com/icons/svg/2921/2921709.svg" style="height: 16px;" title="Копировать с табуляцией"></a><a href="#" onclick="copyCodeWithSpaces(this, 3); return false;" class="permalink codetitle"><img src="https://image.flaticon.com/icons/svg/2911/2911213.svg" style="height: 16px;" title="Копировать с 3 пробелами"></a>';const a=document.createElement("a");a.href="#",a.className="permalink codetitle",a.onclick=e=>{const t=Boolean(+l.dataset.orderState);e.preventDefault(),t?(l.dataset.orderState=0,l.classList.remove("line-numbers"),a.children[0].src=V,l.style.width="calc(100% - 28px)"):(l.dataset.orderState=1,l.classList.add("line-numbers"),a.children[0].src=J,l.style.width="calc(100% - 67px)"),Prism.highlightElement(i),s&&(i.style.fontFamily="Fira Code")},a.innerHTML='<img src="'+V+'" style="height: 16px;" title="Нумерация строк">',r&&(l.dataset.orderState=1,l.classList.add("line-numbers"),a.children[0].src=J,l.style.width="calc(100% - 67px)"),t.appendChild(a),t.appendChild(document.createElement("br")),t.appendChild(document.createElement("br")),o.appendChild(t),Prism.highlightElement(i),s&&(i.style.fontFamily="Fira Code")}return unsafeWindow.Prism=Prism,setTimeout(()=>{document.querySelectorAll(".entry-content>.codebox").forEach(e=>{i(e)}),document.querySelectorAll(".fancy_spoiler_switcher").forEach(e=>{e.addEventListener("click",t=>{Boolean(+e.dataset.prepareState)||(e.querySelectorAll(".codebox").forEach(e=>{i(e)}),e.dataset.prepareState=1)})}),[...document.querySelectorAll(".crumbs"),...document.querySelectorAll(".gen-content"),...document.querySelectorAll(".postbody"),...document.querySelectorAll(".post-options")].forEach(e=>{e.style.background=Z});const e=document.querySelector("#brd-navlinks");e&&Object.assign(e.style,{background:I,border:"solid white 2px"}),document.querySelectorAll(".sig-content").forEach(e=>{e.style.textShadow="0 0 5px white"}),[...document.querySelectorAll(".main-head"),...document.querySelectorAll(".main-foot"),...document.querySelectorAll(".hn.post-ident")].forEach(e=>{if(e){Object.assign(e.style,{background:I,color:"white"});const t=e.querySelector(".permalink");!t&&(e.style.border="solid white 2px")||(t.style.color="white")}}),document.querySelectorAll(".post").forEach(e=>{e.style.background=I,e.querySelector("a").style.color="white";const t=e.querySelector(".post-author");if(!t)return;const n=t.children[0].children[1],o=t.children[0].children[2],s=t.children[1].children[0]?t.children[1].children[0].children[0]:null;let c={};"Участник"===n.textContent?c={color:"lime",textShadow:"0 0 10px black"}:"Разработчик"===n.textContent?c={color:"cyan",textShadow:"0 0 10px darkorange"}:"Модератор"===n.textContent?c={color:"darkorange",textShadow:"0 0 10px cyan"}:"Администратор"===n.textContent?c={color:"red",textShadow:"0 0 10px cyan"}:"Заблокирован"===n.textContent&&(c={textShadow:"0 0 10px white"}),Object.assign(n.style,c),o.style.color="white",s&&(s.children[s.children.length>3?2:1].style.color="lime",Object.assign(s.style,{boxShadow:"0 0 5px white inset",fontWeight:"bold",textShadow:"0 0 7px white",borderRadius:"5px",padding:"5px 10px",background:"rgba(200, 200, 200, .2)"}),t.children[1].children[0].style.margin="5px 0")}),document.documentElement.style.background=Y,document.body.style.background=Y;const t=document.querySelector("textarea[name=req_message]");t&&(t.style.fontFamily=s?"Fira Code":"monospace"),[...document.querySelectorAll(".isactive>a"),...document.querySelectorAll(".active>a")].forEach(e=>{Object.assign(e.style,{background:Z,color:"black",boxShadow:"0 0 10px black inset"})}),document.querySelectorAll(".main-item").forEach(e=>{e.style.background=Z,e.classList.contains("new")&&(e.children[0].style.borderColor="#868686 #767676 #666666 #565656",[e.children[1].children[0].querySelector("a"),e.children[1].children[0].querySelector("small>a"),e.children[1].children[1]?e.children[1].children[1].querySelector("a"):null].forEach(e=>{e&&Object.assign(e.style,{fontWeight:"bold",color:I})}))}),document.querySelectorAll(".posthead .permalink").forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),confirm("Записать в буфер:\n"+e.href)&&GM_setClipboard(e.href,"text")})})},0),[]}class U extends M{constructor(e){super(),L(this,e,Q,null,r,{})}}function X(e,t,n){const o=e.slice();return o[10]=t[n],o}function ee(t){let n,o,s,c=t[10]+"";return{c(){n=u("option"),o=h(c),n.__value=s=t[10],n.value=n.__value,f(n,"class","svelte-jjzoge")},m(e,t){a(e,n,t),i(n,o)},p:e,d(e){e&&d(n)}}}function te(e){let t,n,o,c,r,l,b,y,x,v,w,k,_,S,j,E,q,C,H,L,M,T,F,G,B,P,W,R,D=e[4],J=[];for(let t=0;t<D.length;t+=1)J[t]=ee(X(e,D,t));return B=new U({}),{c(){t=u("div"),n=u("div"),n.textContent="✜",o=p(),c=u("div"),r=u("label"),l=h("FiraCode      "),b=u("input"),x=p(),v=u("label"),w=h("Нумерация     "),k=u("input"),S=p(),j=u("label"),E=h("Высота 'code' "),q=u("input"),H=p(),L=u("div"),M=u("span"),M.textContent="Темы для 'code':",T=p(),F=u("select");for(let e=0;e<J.length;e+=1)J[e].c();var s,i,a,d;G=p(),(s=B.$$.fragment)&&s.c(),f(n,"id","toggle-btn"),f(n,"class","svelte-jjzoge"),f(b,"type","checkbox"),f(b,"class","svelte-jjzoge"),f(r,"title",y="Если в системе установлен\nэтот шрифт, он будет применён\nк блоку с кодом."),f(r,"class","svelte-jjzoge"),f(k,"type","checkbox"),f(k,"class","svelte-jjzoge"),f(v,"title",_="Включает нумерацию строк\nв блоке 'code'."),f(v,"class","svelte-jjzoge"),f(q,"type","checkbox"),f(q,"class","svelte-jjzoge"),f(j,"title",C="Уменьшает дефолтную высоту\nблока 'code' в два раза."),f(j,"class","svelte-jjzoge"),i="white-space",a="nowrap",M.style.setProperty(i,a,d?"important":""),f(M,"class","svelte-jjzoge"),f(F,"class","svelte-jjzoge"),void 0===e[3]&&$(()=>e[9].call(F)),f(L,"id","code-themes"),f(L,"class","svelte-jjzoge"),f(c,"id","box-wrap"),f(c,"class","svelte-jjzoge"),f(t,"id","content-box"),f(t,"class","svelte-jjzoge")},m(s,d){a(s,t,d),i(t,n),i(t,o),i(t,c),i(c,r),i(r,l),i(r,b),b.checked=e[0],i(c,x),i(c,v),i(v,w),i(v,k),k.checked=e[1],i(c,S),i(c,j),i(j,E),i(j,q),q.checked=e[2],i(c,H),i(c,L),i(L,M),i(L,T),i(L,F);for(let e=0;e<J.length;e+=1)J[e].m(F,null);m(F,e[3]),a(s,G,d),z(B,s,d),P=!0,W||(R=[g(n,"click",e[5]),g(b,"change",e[6]),g(k,"change",e[7]),g(q,"change",e[8]),g(F,"change",e[9])],W=!0)},p(e,[t]){if(1&t&&(b.checked=e[0]),2&t&&(k.checked=e[1]),4&t&&(q.checked=e[2]),16&t){let n;for(D=e[4],n=0;n<D.length;n+=1){const o=X(e,D,n);J[n]?J[n].p(o,t):(J[n]=ee(o),J[n].c(),J[n].m(F,null))}for(;n<J.length;n+=1)J[n].d(1);J.length=D.length}24&t&&m(F,e[3])},i(e){P||(O(B.$$.fragment,e),P=!0)},o(e){!function(e,t,n,o){if(e&&e.o){if(A.has(e))return;A.add(e),(void 0).c.push(()=>{A.delete(e),o&&(n&&e.d(1),o())}),e.o(t)}}(B.$$.fragment,e),P=!1},d(e){e&&d(t),function(e,t){for(let n=0;n<e.length;n+=1)e[n]&&e[n].d(t)}(J,e),e&&d(G),N(B,e),W=!1,s(R)}}}function ne(e,n,o){let s,c,r,i;l(e,P,e=>o(0,s=e)),l(e,W,e=>o(1,c=e)),l(e,R,e=>o(2,r=e)),l(e,B,e=>o(3,i=e));const a=["twilight_dark","xonokai","tomorrow","ashes_dark","pojoaque"];return[s,c,r,i,a,function(e){const n=e.target,o=n.parentNode,s=Boolean(+n.dataset.toggled),c=n.parentNode.children[1];s?(t(o.style,{width:"20px",height:"20px"}),c.style.display="none",n.style.transform="rotateZ(0deg)",n.dataset.toggled=0):(t(o.style,{width:"200px",height:"145px"}),c.style.display="block",n.style.transform="rotateZ(45deg)",n.dataset.toggled=1)},function(){s=this.checked,P.set(s)},function(){c=this.checked,W.set(c)},function(){r=this.checked,R.set(r)},function(){i=function(e){const t=e.querySelector(":checked")||e.options[0];return t&&t.__value}(this),B.set(i),o(4,a)}]}return new class extends M{constructor(e){super(),L(this,e,ne,te,r,{})}}({target:document.body})}();

https://d.radikal.ru/d04/2008/fb/1dfe78d71f47t.jpg