死神的交易 |
作者 Hg-lab |
发布于 27 Aug 2022 12:47 |
What this is
A bunch of miscellaneous CSS 'improvements' that I,
Croquembouche, use on a bunch of pages because I think it makes them easier to deal with.
The changes this component makes are bunch of really trivial modifications to ease the writing experience and to make documenting components/themes a bit easier (which I do a lot). It doesn't change anything about the page visually for the reader — the changes are for the writer.
I wouldn't expect translations of articles that use this component to also use this component, unless the translator likes it and would want to use it anyway.
This component probably won't conflict with other components or themes, and even if it does, it probably won't matter too much.
Usage
On any wiki:
[[include :scp-wiki:component:croqstyle]]
This component is designed to be used on other components. When using on another component, be sure to add this inside the component's [[iftags]] block, so that users of your component are not forced into also using Croqstyle.
Related components
Other personal styling components (which change just a couple things):
Personal styling themes (which are visual overhauls):
CSS changes
Reasonably-sized footnotes
Stops footnotes from being a million miles wide, so that you can actually read them.
.hovertip { max-width: 400px; }
Monospace edit/code
Makes the edit textbox monospace, and also changes all monospace text to Fira Code, the obviously superior monospace font.
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;700&display=swap');
:root { --mono-font: "Fira Code", Cousine, monospace; }
#edit-page-textarea, .code pre, .code p, .code, tt, .page-source { font-family: var(--mono-font); }
.code pre * { white-space: pre; }
.code *, .pre * { font-feature-settings: unset; }
Teletype backgrounds
Adds a light grey background to <tt> elements ({{text}}), so code snippets stand out more.
tt {
background-color: var(--swatch-something-bhl-idk-will-fix-later, #f4f4f4);
font-size: 85%;
padding: 0.2em 0.4em;
margin: 0;
border-radius: 6px;
}
No more bigfaces
Stops big pictures from appearing when you hover over someone's avatar image, because they're stupid and really annoying and you can just click on them if you want to see the big version.
.avatar-hover { display: none !important; }
Breaky breaky
Any text inside a div with class nobreak has line-wrapping happen between every letter.
.nobreak { word-break: break-all; }
Code colours
Add my terminal's code colours as variables. Maybe I'll change this to a more common terminal theme like Monokai or something at some point, but for now it's just my personal theme, which is derived from Tomorrow Night Eighties.
Also, adding the .terminal class to a fake code block as [[div class="code terminal"]] gives it a sort of pseudo-terminal look with a dark background. Doesn't work with [[code]], because Wikidot inserts a bunch of syntax highlighting that you can't change yourself without a bunch of CSS. Use it for non-[[code]] code snippets only.
Quick tool to colourise a 'standard' Wikidot component usage example with the above vars: link
:root {
--c-bg: #393939;
--c-syntax: #e0e0e0;
--c-comment: #999999;
--c-error: #f2777a;
--c-value: #f99157;
--c-symbol: #ffcc66;
--c-string: #99cc99;
--c-operator: #66cccc;
--c-builtin: #70a7df;
--c-keyword: #cc99cc;
}
.terminal, .terminal > .code {
color: var(--c-syntax);
background: var(--c-bg);
border: 0.4rem solid var(--c-comment);
border-radius: 1rem;
}
Debug mode
Draw lines around anything inside .debug-mode. The colour of the lines is red but defers to CSS variable --debug-colour.
You can also add div.debug-info.over and div.debug-info.under inside an element to annotate the debug boxes — though you'll need to make sure to leave enough vertical space that the annotation doesn't overlap the thing above or below it.
.debug-mode, .debug-mode *, .debug-mode *::before, .debug-mode *::after {
outline: 1px solid var(--debug-colour, red);
position: relative;
}
.debug-info {
position: absolute;
left: 50%;
transform: translateX(-50%);
font-family: 'Fira Code', monospace;
font-size: 1rem;
white-space: nowrap;
}
.debug-info.over { top: -2.5rem; }
.debug-info.under { bottom: -2.5rem; }
.debug-info p { margin: 0; }
/* source: http://ah-sandbox.wikidot.com/component:collapsible-sidebar-x1 */
#top-bar .open-menu a {
position: fixed;
top: 0.5em;
left: 0.5em;
z-index: 5;
font-family: 'Nanum Gothic', san-serif;
font-size: 30px;
font-weight: 700;
width: 30px;
height: 30px;
line-height: 0.9em;
text-align: center;
border: 0.2em solid #888;
background-color: #fff;
border-radius: 3em;
color: #888;
pointer-events: auto;
}
@media not all and (max-width: 767px) {
#top-bar .mobile-top-bar {
display: block;
pointer-events: none;
}
#top-bar .mobile-top-bar li {
display: none;
}
#main-content {
max-width: 708px;
margin: 0 auto;
padding: 0;
transition: max-width 0.2s ease-in-out;
}
#side-bar {
display: block;
position: fixed;
top: 0;
left: -18rem;
width: 15.25rem;
height: 100%;
margin: 0;
overflow-x: hidden;
overflow-y: auto;
z-index: 10;
padding: 1em 1em 0 1em;
background-color: rgba(0,0,0,0.1);
transition: left 0.4s ease-in-out;
scrollbar-width: thin;
}
#side-bar:target {
left: 0;
}
#side-bar:focus-within:not(:target) {
left: 0;
}
#side-bar:target .close-menu {
display: block;
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
margin-left: 19.75em;
opacity: 0;
z-index: -1;
visibility: visible;
}
#side-bar:not(:target) .close-menu { display: none; }
#top-bar .open-menu a:hover {
text-decoration: none;
}
/* FIREFOX-SPECIFIC COMPATIBILITY METHOD */
@supports (-moz-appearance:none) {
#top-bar .open-menu a {
pointer-events: none;
}
#side-bar:not(:target) .close-menu {
display: block;
pointer-events: none;
user-select: none;
}
/* This pseudo-element is meant to overlay the regular sidebar button
so the fixed positioning (top, left, right and/or bottom) has to match */
#side-bar .close-menu::before {
content: "";
position: fixed;
z-index: 5;
display: block;
top: 0.5em;
left: 0.5em;
border: 0.2em solid transparent;
width: 30px;
height: 30px;
font-size: 30px;
line-height: 0.9em;
pointer-events: all;
cursor: pointer;
}
#side-bar:focus-within {
left: 0;
}
#side-bar:focus-within .close-menu::before {
pointer-events: none;
}
}
}
两千座坟墓躺在黄金君王的宫殿中,或者更多。街道染成赭色,液体在河中流淌,融化的金液洗净了尸体,他们皆死于一场灾难。这座建筑因设计而辉煌,一切都自基础向上耸立,越接近中心越高。
向上,再向上,尸首从更加致命的高度坠落。
更近顶部的是一座教堂,金碧辉煌的花窗散发着神圣的光芒。十年的荒废使它独善其身,没有一个罪人留下来纠正抑或理解,没有牧师的诵读,没有唱诗班的赞美,没有圣殿的祝福,也没有任何理由证明这一切的真实。
十三跪在祭坛前,埃尘起落。月亮投下的绚丽光束微妙融入花窗玻璃,沐下怪异的色调。语言失去效力,所有记下的章句都被遗忘,成为无形的纪念品。寂静无声无言,无始无终。最终,这寂静被打破。
“如果你是来收割灵魂的,那你就是在浪费时间。”十三低声说。
一个身影在十三身后矗立,仿佛在丈量傲慢的高低。苍白的皮肤在庞大的,骨瘦如柴的身躯上绷紧,藏在暗处的双眼散发着诗意的深红。一头如瀑白发,与他破烂的黑色长袍形成鲜明对比。他兀自静立,纹丝不动,在一种奇怪的恬淡寡欲藏起邪恶。
“哦,我很清楚。”死神轻语,语调比料想的更加柔和,梦幻,几乎清澈透亮。
“那你是来惩治我的吗?”十三问。与其他存在交谈的场景并不常见。
“惩治?”死神发出大笑般的声响。“呵,凡人的概念。不,他们只是履行了契约而已,一介旁观者何必让我如此劳心?”
死神继续道。“真是个谜。但我们这次偶然的相遇让我想起了更快乐的时光,那时sola prime还有着永恒的心跳。为什么要率先杀死伊维丝Yvith?”
十三起身,将那只空闲的手放在祭坛上。 “我也相信。”
“弑神非同小可,他们凭什么认为自己能够胜任?”
“他们满腔正义,想要建立一个繁荣的国度。”十三避开他的眼睛,“我清楚后果,但我从不反对。”
“好一个正义啊。唉,他们也曾和我讨价还价,有的献上亲人的灵魂,有的奉送一个夷平异域的邪教,还有人给了我一笔金子!这么重的金属,于我也没什么用处。”
十三顿了顿。“告诉我,你来这儿的真正目的是什么?”
“确实,这种成功会被人发现的,无论有多么微渺小。”死神将两根手指放在十三肩头,其余则垂落身旁。巨大的手指,就像他本身。 “你的朋友们充其量只是得罪了伊维丝。她穿越上界抵达了月亮。”
“再不会有这个机会了。为了小小的怒火,她来到了地面!”
十三点头,平静地移开目光。
“这不动听么?”死神低语。
“我不明白。你…你会助我杀了伊维丝?”
“哦!别这样想!我哪里敢。不过么……”
“你想和我签订契约。”十三的心沉了下去。他早料到风险,试图阻止他们签字。他曾无数次警告他的盟友,直到他们依然陷人类于覆灭。
死神抓住十三的腰带到自己面前。他挣扎着反抗,推拽骨头和布,伸手去够更称手的东西。 “眺望地平线之外,你会看到我。”死神不情愿地斥责,“你不想有机会结束所有的痛苦吗?你不想看到隧道尽头的光明吗?”
死神伸出指骨关节,迫使十三的下巴对准自己的目光,眸色与满月同样血红。 “难道你会满足于既定人数?这真的是最理想的结果?”
十三一动不动。仿佛同很久以前那样,自满而怯懦。
“我接受。”
死神口中爆发一声嘶哑含浊的异响,如同爆裂的喉音。他在原地踉跄,仿佛因刺激而颤抖,数以百计的空心骨骼开裂上翘,脱离躯体。死神的下颚铰旋转动,细密的牙齿向外翘曲,变形,如腐烂之花徐徐绽放,露出其中瘦削而苍白的身体。那具身体完好无损,但伤痕累累。它全身赤裸,一动不动地坐着,脸靠着膝盖,另一条腿悬在犬齿上。
他笑了。
“骗子。”死神凑得更近,勾下脖子。 “但你面前的道路已经清理干净了。”他以一种熟悉又令人厌恶的稚气笑了起来,懒洋洋地循着十三的轮廓勾出模糊的外影,衡量他灵魂的内容。接着,他缓缓叹了口气,伸出手,掌心向下,契约敲定。
“愿永恒善待你,十三。”
十三犹豫片刻,握住死神的手。他俯下头,唇瓣轻轻扫过奶白色的冠层。重负加身,这一次却尽在掌握。头重脚轻,金属光环在教堂之中。
他手中握着一把木柄,纹理层叠,轻若无物。一种微妙将他的目光带往尽头,亮出一把无形的刀锋。他微转木柄,刀身映下新月,与木柄无缝契合。
但它也揭示了一幕难解的图景——漫长的死亡和永恒的痛苦。所有伊维丝攻袭之际死去的人,每个灵魂都冲向了城池的金色城墙,而遗骸未曾掩埋。这个曾经繁荣的王国边界之外每个人的结晶,他们的生命也过早地结束了,为贪婪的夜栖之兽所噬。那些虔诚而卑微的人们,在火红的月色下蜕变,沉溺于彼此和无辜者的肉体。
十三侧耳聆听刀锋中数以百万计的窃窃私语。他辨认不出其中的任何一个,但在内心深处,他无法否认他们都是永恒之夜砧板上血流如注的牺牲品。他腾出一只手,把玩着。
死神的身躯化为齑粉,另一个声音从镰刀中响起。那正是死神,只是遥不可及。
“我在看着,圣人。你成功与否,与我无关。”
他重整信心,从卡住的两扇木门间离开。满月的猩红光芒被他的身影切断,两座烟熏的塔楼玷污了教堂的天底。十三迈出第一步,踏上了墓碑遍布的小径,小径上斑驳地洒着金粉。
他沉默着,低声威胁。
“太阳会再次升起。”