diff options
48 files changed, 882 insertions, 524 deletions
diff --git a/config.toml b/config.toml index 058cdc4..11d7eb6 100644 --- a/config.toml +++ b/config.toml @@ -26,15 +26,10 @@ taxonomies = [ {name = "tags", feed = true}, ] -[markdown] -# Whether to do syntax highlighting -# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola -highlight_code = true -highlight_theme = "css" -highlight_themes_css = [ - { theme = "one-dark", filename = "syntax-theme-dark.css" }, - { theme = "solarized-light", filename = "syntax-theme-light.css" }, -] +[markdown.highlighting] +style = "class" +light_theme = "solarized-light" +dark_theme = "one-dark-pro" [extra] # Put all your custom variables here diff --git a/content/blue-blood-lagoon/bgm-header.png b/content/blue-blood-lagoon/bgm-header.png Binary files differnew file mode 100644 index 0000000..f49cc15 --- /dev/null +++ b/content/blue-blood-lagoon/bgm-header.png diff --git a/content/blue-blood-lagoon/index.md b/content/blue-blood-lagoon/index.md new file mode 100644 index 0000000..9b6295f --- /dev/null +++ b/content/blue-blood-lagoon/index.md @@ -0,0 +1,65 @@ ++++ +title = "她和他和她的澎湖湾" +date = 2025-06-26 +authors = ["135e2 (Mole Shang)"] +[taxonomies] +tags = ["ACGN", "游戏"] ++++ + + + +花了 685 天(是的你没看错)终于通关了题作。 + + + +<!-- more --> + +--- + +### 引 + +我一直是个痴迷于故事的人。一些暴论:电影、动画、漫画、二游,诸如此类的“泛二次元”作品,始终都不是「讲故事」的最好形式:受制于时长、篇幅、表达形式等种种限制,创作者的想法往往不能尽数展现。 + +而 GalGame 则不同。虽然我一向不乐意将这类作品称作“美少女游戏”,而更宁愿管它们叫“视觉小说”。作为传统文学形式的延伸,其没有固定的篇幅,不必受限于动画影视一集 24 分钟一季 5 个小时的条条框框诸多限制;与正经游戏相比游戏性虽弱上不少,但也因此更加纯粹:视觉小说的本质,永远是怎样「讲好一个故事」;同时,大多数作品 R18 的形态,更大大提高了创作的自由度边界。 + +《她和他和她的澎湖湾》就是这样一部典型的视觉小说。在五分之一的时间狂按 Ctrl 的情况下,笔者的全线通关时长仍然高达近 100 小时。但故事线长一定就是好故事吗? + +### 环境 + +《澎湖湾》正是试图通过以[澎湖七一三事件](https://zh.wikipedia.org/zh-cn/%E6%BE%8E%E6%B9%96%E4%B8%83%E4%B8%80%E4%B8%89%E4%BA%8B%E4%BB%B6)为背景,讨论生与死、性与爱的一部长篇。如此选材,不如说古今中外,从这种历史伤痛出发的作品都是同类里极少见的,特殊到感觉难以归入任何已有的门类;但如果仔细调查本作开发商 [Erotes Studio](https://steamdb.info/developer/Erotes+Studio/) 的数部前作,《雨港基隆》涉及二二八白色恐怖、《五月茉莉》讨论 98 年印尼华侨大屠杀,脚本作者似乎特别喜欢这类题材,选取 713 事件作为故事背景看起来倒也不那么令人意外。 + +### 情节 + +只可惜文字整体上就没那么耐读了:中期剧情模板化太过严重,公式日常之每天上学和神仙对骂三百回合,能忍住不按 Ctrl 快进的也是神人了。感觉全流程 100 个小时里有接近四分之一时间都是在听这些废话,血压控制练习属于是。怪不得断断续续推了两年才结束。 + +但抛开日常讲道理(对骂)的部分不看,高潮情节的设计和时不时的抖书袋还是挺让人喜欢的,脚本的国学与文字功底也只有在这些地方才能尽数显露;剧情每一章的标题不仅对应了著名文学作品的 neta,与此同时也能很好地契合内容。 + + + +无论如何,与那些自诩为“国产GalGame”之光的公式化日式校园剧情相比,《澎湖湾》永远是一个只有中国人才能做出来的游戏。建议所有所谓的“国Gal制作人”都来读一遍再去写你们那些勾八脚本。 + +### 人物 + +讨论人物的特点,本作的角色设计也是极有意思的:多处涉及不同角色的性格照应;除去部分反派和配角的塑造过分公式化以外,角色设定与矛盾的选取也是相当精妙。 + +由于在不介绍具体人物的情况下难以详细展开,所以我懒得写了。 + +### 交互系统 + +Erotes Studio 作为一部民间小作坊,作画、配音和配乐总体却意外地用料不错。虽说肉眼可见的预算贫瘠,文字以外的内容上不少还是耐听耐看的,全 CG 就有七八十张,BGM 水准也还算能起到烘托氛围的作用;游戏引擎甚至使用了先进的 Unity 进行开发,性能优化完全够用。 + +### 生、死、性、爱:文学的永恒母题 + +谈到台湾的白色恐怖时期,自然离不开生死别离;但在描绘一个威严与恐惧日渐渗透的时代之外,个人认为本作最有趣的地方还在于严肃的性别倒置。 + +为尊重时代背景,本作男主角尹晓风不得不被设定为“男扮女装”;然而作者并不局限于传统“伪娘”设定中简单的性别困境,反而借男主的视角以及其他女角色的演出,在传统男性受众为主的 GalGame 作品框架里大谈女性觉醒:如此不仅仅是角色的性别倒置,也逼迫玩家去阅读审视现代观念中的女权主义。可游戏语境下的女权又和现代社会并不完全相同,而是处于一个扭曲的威权军事体系背景中,由此展开的青春、特殊时代下扭曲的爱,加之性别观念的碰撞,如此多对矛盾的母题尤其让人感到新奇。 + + + +尽管有着种种略显恼人的缺点,如果忽略作者的政治立场,而单纯将其作为游戏评判,《澎湖湾》依旧可以说是我最喜欢的国产视觉小说之一:优秀的系统交互、作者深厚的文字功底、丰富的人物矛盾设计以及足够有趣的主题,都奠定了它在同类里独一无二的地位。 + +--- + +于是,最后青春还是结束了。 + +See you at the bitter end. diff --git a/content/blue-blood-lagoon/main-visual.png b/content/blue-blood-lagoon/main-visual.png Binary files differnew file mode 100644 index 0000000..a015026 --- /dev/null +++ b/content/blue-blood-lagoon/main-visual.png diff --git a/content/blue-blood-lagoon/sc-1.png b/content/blue-blood-lagoon/sc-1.png Binary files differnew file mode 100644 index 0000000..3228cb7 --- /dev/null +++ b/content/blue-blood-lagoon/sc-1.png diff --git a/content/blue-blood-lagoon/sc-2.png b/content/blue-blood-lagoon/sc-2.png Binary files differnew file mode 100644 index 0000000..373ced1 --- /dev/null +++ b/content/blue-blood-lagoon/sc-2.png diff --git a/content/glimpses-of-jiangsu-and-anhui/abandoned-ct-hall.jpg b/content/glimpses-of-jiangsu-and-anhui/abandoned-ct-hall.jpg Binary files differnew file mode 100644 index 0000000..c350d0e --- /dev/null +++ b/content/glimpses-of-jiangsu-and-anhui/abandoned-ct-hall.jpg diff --git a/content/glimpses-of-jiangsu-and-anhui/confusing-sign.jpg b/content/glimpses-of-jiangsu-and-anhui/confusing-sign.jpg Binary files differnew file mode 100644 index 0000000..a5e8049 --- /dev/null +++ b/content/glimpses-of-jiangsu-and-anhui/confusing-sign.jpg diff --git a/content/glimpses-of-jiangsu-and-anhui/dizzy-headlight.jpg b/content/glimpses-of-jiangsu-and-anhui/dizzy-headlight.jpg Binary files differnew file mode 100644 index 0000000..439c4a0 --- /dev/null +++ b/content/glimpses-of-jiangsu-and-anhui/dizzy-headlight.jpg diff --git a/content/glimpses-of-jiangsu-and-anhui/index.md b/content/glimpses-of-jiangsu-and-anhui/index.md new file mode 100644 index 0000000..79d7026 --- /dev/null +++ b/content/glimpses-of-jiangsu-and-anhui/index.md @@ -0,0 +1,25 @@ ++++ +title = "苏皖掠影" +date = 2026-02-09 +authors = ["135e2 (Mole Shang)"] +[taxonomies] +tags = ["城市天气的旅行"] +[extra] +enable_img_caption = true ++++ + +决定开一个新的 [Tag](/tags/cheng-shi-tian-qi-de-lv-xing/) ,记录城市、天气、和旅行相册。 + +<!-- more --> + + + + + + + + + + + +
\ No newline at end of file diff --git a/content/glimpses-of-jiangsu-and-anhui/messy-wire.jpg b/content/glimpses-of-jiangsu-and-anhui/messy-wire.jpg Binary files differnew file mode 100644 index 0000000..aace919 --- /dev/null +++ b/content/glimpses-of-jiangsu-and-anhui/messy-wire.jpg diff --git a/content/glimpses-of-jiangsu-and-anhui/mysterious-tower.jpg b/content/glimpses-of-jiangsu-and-anhui/mysterious-tower.jpg Binary files differnew file mode 100644 index 0000000..9d85667 --- /dev/null +++ b/content/glimpses-of-jiangsu-and-anhui/mysterious-tower.jpg diff --git a/content/glimpses-of-jiangsu-and-anhui/red-yellow-blue.jpg b/content/glimpses-of-jiangsu-and-anhui/red-yellow-blue.jpg Binary files differnew file mode 100644 index 0000000..2d6a7c1 --- /dev/null +++ b/content/glimpses-of-jiangsu-and-anhui/red-yellow-blue.jpg diff --git a/content/jetspotting/city-bus.jpg b/content/jetspotting/city-bus.jpg Binary files differnew file mode 100644 index 0000000..cbeac46 --- /dev/null +++ b/content/jetspotting/city-bus.jpg diff --git a/content/jetspotting/fireworks.jpg b/content/jetspotting/fireworks.jpg Binary files differnew file mode 100644 index 0000000..cb121f3 --- /dev/null +++ b/content/jetspotting/fireworks.jpg diff --git a/content/jetspotting/gabbing.jpg b/content/jetspotting/gabbing.jpg Binary files differnew file mode 100644 index 0000000..9c3cf09 --- /dev/null +++ b/content/jetspotting/gabbing.jpg diff --git a/content/jetspotting/index.md b/content/jetspotting/index.md new file mode 100644 index 0000000..a2e419c --- /dev/null +++ b/content/jetspotting/index.md @@ -0,0 +1,37 @@ ++++ +title = "猜飞机" +date = 2026-03-09 +authors = ["135e2 (Mole Shang)"] +[taxonomies] +tags = ["城市天气的旅行"] +[extra] +enable_img_caption = true ++++ + + + +> 从路边看,安绒观景台就像一座架在高脚桩上的公车站——有长椅,还能享有“前排座位”,近距离观看数吨重的金属巨物呼啸着冲向天空。这里没有厕所,也没有商店。如果你运气好,可能会有小贩推着冰淇淋或饮料车经过,短短五分钟,这里仿佛变成了一个节日。 +> +> 这里的人群形形色色:孩子们惊叹不已,家长们来此“疗伤”,航空爱好者们带着扫描仪和三脚架,学生们消磨时间,偶尔还有摄影师把每一次降落都当成野生动物纪录片来拍摄。有人说这就像一种疗愈;另一些人则显然是为了在 Instagram 和 YouTube 上发布爆款视频而来。家长们带着折叠椅、零食和雨伞,就像在参加一个廉价版的航展。 +> +> 沿着路继续往前开,你会看到草地上随意停着汽车,孩子们仰着头凝望。在这里,飞机飞得如此之低,甚至能看清机身上的铆钉。它们径直从头顶呼啸而过,轰鸣声震耳欲聋,堪称一项壮丽的工程杰作。严格来说,这也是违法的。警察们定期巡逻这片区域,驱散人群,赶走车辆。为了拍到完美的照片,这里就像一场永不停歇的猫鼠游戏。 +> +> 时机至关重要。上午10点前和下午5、6点后,每隔几分钟就有一架飞机抵达,这里热闹非凡。但在正午的酷暑中,人们只能焦急地等待,汗流浃背,还要忍受孩子们每隔90秒就问一次“飞机在哪儿?”。运气好的傍晚,有人能在20分钟内数到十多架飞机降落;可如果你足够倒霉,等上45分钟也只能看到两架飞机,结果还被晒伤了。 +> +> -- [Review on Anjung Spotter Observation Deck, the pendatang](https://goo.gl/maps/rPTM13Xmqcx4ffko8?g_st=ac) + +<!-- more --> + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/content/jetspotting/kabut.jpg b/content/jetspotting/kabut.jpg Binary files differnew file mode 100644 index 0000000..874cfe8 --- /dev/null +++ b/content/jetspotting/kabut.jpg diff --git a/content/jetspotting/masuk.jpg b/content/jetspotting/masuk.jpg Binary files differnew file mode 100644 index 0000000..54333cc --- /dev/null +++ b/content/jetspotting/masuk.jpg diff --git a/content/jetspotting/parallel.jpg b/content/jetspotting/parallel.jpg Binary files differnew file mode 100644 index 0000000..6e52929 --- /dev/null +++ b/content/jetspotting/parallel.jpg diff --git a/content/jetspotting/scrapped-carriage.jpg b/content/jetspotting/scrapped-carriage.jpg Binary files differnew file mode 100644 index 0000000..fc1dc4c --- /dev/null +++ b/content/jetspotting/scrapped-carriage.jpg diff --git a/content/jetspotting/shoulder-bag.jpg b/content/jetspotting/shoulder-bag.jpg Binary files differnew file mode 100644 index 0000000..f5a3ed9 --- /dev/null +++ b/content/jetspotting/shoulder-bag.jpg diff --git a/content/mingw-code-golfing-quirks/asm_diff.png b/content/mingw-code-golfing-quirks/asm_diff.png Binary files differnew file mode 100644 index 0000000..6757c99 --- /dev/null +++ b/content/mingw-code-golfing-quirks/asm_diff.png diff --git a/content/mingw-code-golfing-quirks/correct_output.png b/content/mingw-code-golfing-quirks/correct_output.png Binary files differnew file mode 100644 index 0000000..fda3079 --- /dev/null +++ b/content/mingw-code-golfing-quirks/correct_output.png diff --git a/content/mingw-code-golfing-quirks/erroneous_output.png b/content/mingw-code-golfing-quirks/erroneous_output.png Binary files differnew file mode 100644 index 0000000..1f47bf5 --- /dev/null +++ b/content/mingw-code-golfing-quirks/erroneous_output.png diff --git a/content/mingw-code-golfing-quirks/index.md b/content/mingw-code-golfing-quirks/index.md new file mode 100644 index 0000000..464b767 --- /dev/null +++ b/content/mingw-code-golfing-quirks/index.md @@ -0,0 +1,70 @@ ++++ +title = "MinGW, x86_64 调用规范与代码高尔夫" +date = 2025-03-28 +authors = ["135e2 (Mole Shang)"] +[taxonomies] +tags = ["技术"] ++++ + +最近和友人研究短码竞赛,用 MinGW 跑测试的时候出现了诡异的现象,在此留作记录。 + +<!-- more --> + +由于常用的短码 OJ 均使用 [TCC](https://www.bellard.org/tcc/) 编译,自然为了模拟其行为,并节省字符数,我们选择了 C90 标准(不强制要求声明函数签名)并开启了 `-fno-builtin` 编译选项(以忽略烦人的编译器警告)。 + +跑了几段测试后,黑魔法出现: + + + +一开始我们都觉得是 MinGW 犯了什么毛病,于是拉进 GDB 里一通猛调: + +根据 [Windows x64 calling convention](https://learn.microsoft.com/en-us/cpp/build/x64-calling-convention?view=msvc-170#example-of-argument-passing-2---all-floats),`printf`函数的第二个浮点参数应当存在 `$xmm1` 中,调试一下却发现已经正确写入。 + + + +用 GDB 跳进 `printf` 实现里大概翻了一下,也没有注意到什么奇怪的地方。将各种寄存器倒腾一番之后,依然百思不得其解。 + +友人突然想起来看看编译参数;删掉 `-fno-builtin` 之后,尽管多了不少警告,MinGW 突然产出了正确的结果: + + + +那么问题来了:开不开 builtin 和 `printf` 的输出结果有什么关系? + +~~又到了喜闻乐见的编译原理检测时间~~ + +GCC 文档如此解释 `no-builtin` 选项: +``` +-fno-builtin +-fno-builtin-function + + Don't recognize built-in functions that do not begin with + __builtin_ as prefix. GCC normally generates special code to + handle certain built-in functions more efficiently; for + instance, calls to "alloca" may become single instructions + which adjust the stack directly, and calls to "memcpy" may + become inline copy loops. The resulting code is often both + smaller and faster, but since the function calls no longer + appear as such, you cannot set a breakpoint on those calls, nor + can you change the behavior of the functions by linking with a + different library. In addition, when a function is recognized + as a built-in function, GCC may use information about that + function to warn about problems with calls to that function, or + to generate more efficient code, even if the resulting code + still contains calls to that function. For example, warnings + are given with -Wformat for bad calls to "printf" when "printf" + is built in and "strlen" is known not to modify global memory. +``` + +再次仔细阅读 [Windows x64 calling convention](https://learn.microsoft.com/en-us/cpp/build/x64-calling-convention?view=msvc-170#varargs),注意到 `Varargs` 一节有这么一行小字: + +> For floating-point values only, both the integer register and the floating-point register must contain the value, in case the callee expects the value in the integer registers. + +如此对比两者产生的汇编,理由就很容易想清楚了: + + + +显然我们在没有函数签名定义的情况下,又开启了 `no-builtin` 选项,编译器因而无从获取 `printf` 的签名信息,只能从调用推断其签名为 `void printf(const char*, double)`,无法遵循正确的 `varargs` 调用规范设置通用寄存器 `$rdx`,导致 Windows 运行时标准库中的 `printf` 作为 callee 获取第二个参数时永远是全0(`$rdx` 原值);而一旦关闭这一选项,即使不写签名,编译器也能通过内建的函数匹配机制获得完整的 `printf` 签名信息(`int printf(const char*, ...)`),便能生成正确的汇编调用设置 `$rdx`,结果也自然没有问题了。 + +C,很奇妙吧。 xDDD + +> Compiler Explorer 复现链接: https://godbolt.org/z/eh9WK9eqG diff --git a/content/mingw-code-golfing-quirks/xmm1.png b/content/mingw-code-golfing-quirks/xmm1.png Binary files differnew file mode 100644 index 0000000..009719c --- /dev/null +++ b/content/mingw-code-golfing-quirks/xmm1.png diff --git a/content/scheduled-idling/index.md b/content/scheduled-idling/index.md new file mode 100644 index 0000000..4c2af1a --- /dev/null +++ b/content/scheduled-idling/index.md @@ -0,0 +1,15 @@ ++++ +title = "计划性空转" +date = 2025-03-23 +authors = ["135e2 (Mole Shang)"] +[taxonomies] +tags = ["随想"] ++++ + +> Surely idling is about doing what you feel? No, because if you do not schedule your idling, you will be easy prey for the attention merchants out there, the Silicon Valley platforms and scams, the advertising people, the distractors, who spend vast sums employing behavioural scientists to get you to hang around on their sites, clicking and spending. In scheduling is freedom. +> +> -- An Idler's Manual, Tom Hodgkinson + +可直觉上还是觉着「有计划地空转」是件挺不可理喻的事。 + +<!-- more --> diff --git a/content/shuju/index.md b/content/shuju/index.md new file mode 100644 index 0000000..1ce35af --- /dev/null +++ b/content/shuju/index.md @@ -0,0 +1,15 @@ ++++ +title = "书局" +date = 2026-05-07 +authors = ["135e2 (Mole Shang)"] +[taxonomies] +tags = ["随想"] ++++ + +卖书的地方,西西弗、新华、福伊尔,大多冠以「书店」之名;大些的则称「书馆」,洋人叫 book centre 的,像水石头那样包下一整幢大楼,听起来像艺术中心,又有几分山姆会员店的味道,国内很是少见;谓之「书局」者则寥寥可数。 + +bookstore, bookshop, 唯独「局」一字不好翻译,港岛[中華書局](https://www.chunghwabook.com.hk/)干脆直接略去。「局」之本意弯曲、局促、逼迫、狭小;这字却又常常与那些冠冕堂皇的机关连在一起,招商局、公安局,仿佛是如此神圣的。 + +而我偏爱这「书局」的曲径通幽处:金轮的大众书局老楼,一向是不缺这样的角落的。书架回廊间,闪过或蓝或红,偶尔的灰与绿,那样年轻的,那样神圣的,读书的人。 + +<!--more--> diff --git a/content/wo-travelling-on-malay-peninsula-ecml/border-plaque.jpg b/content/wo-travelling-on-malay-peninsula-ecml/border-plaque.jpg Binary files differnew file mode 100644 index 0000000..c6107ca --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/border-plaque.jpg diff --git a/content/wo-travelling-on-malay-peninsula-ecml/border-rail.jpg b/content/wo-travelling-on-malay-peninsula-ecml/border-rail.jpg Binary files differnew file mode 100644 index 0000000..178a1f5 --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/border-rail.jpg diff --git a/content/wo-travelling-on-malay-peninsula-ecml/class3-coach.jpg b/content/wo-travelling-on-malay-peninsula-ecml/class3-coach.jpg Binary files differnew file mode 100644 index 0000000..0e1994e --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/class3-coach.jpg diff --git a/content/wo-travelling-on-malay-peninsula-ecml/class3-ticket.jpg b/content/wo-travelling-on-malay-peninsula-ecml/class3-ticket.jpg Binary files differnew file mode 100644 index 0000000..38a61b5 --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/class3-ticket.jpg diff --git a/content/wo-travelling-on-malay-peninsula-ecml/express-vs-shuttle.png b/content/wo-travelling-on-malay-peninsula-ecml/express-vs-shuttle.png Binary files differnew file mode 100644 index 0000000..a3e59ae --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/express-vs-shuttle.png diff --git a/content/wo-travelling-on-malay-peninsula-ecml/index.md b/content/wo-travelling-on-malay-peninsula-ecml/index.md new file mode 100644 index 0000000..9d4b9d8 --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/index.md @@ -0,0 +1,109 @@ ++++ +title = "ว: Travelling on Malay Peninsula's ECML" +date = 2026-02-25 +authors = ["135e2 (Mole Shang)"] +[extra] +enable_img_caption = true ++++ + +**Disclaimer**: This post is mostly based on travel experiences back in **Feb 2026**. Information on specific routes can change quite frequently, so do double-check from official sources before you go. + +Most photos are taken on my old Xperia, so blame Sony if they look really bad :) + + + +<!-- more --> + +The Malay Peninsula has long been a popular destionation for visitors in SE Asia. However, much to the [historical conflicts](https://en.wikipedia.org/wiki/Southern_Thailand_insurgency) in southern Thailand, most tourists would prefer the [West Coast line](https://en.wikipedia.org/wiki/KTM_West_Coast_railway_line) to get from Malaysia/Singapore upto Thai border. On the other side of peninsula, you'll find rather minimal guide/log/notes on travelling East Coast, hence comes this post, hoping to be helpful to people travelling around these areas. + +## East Coast Main Line + +By calling it "East Coast Main Line" (much analogous to Britain's ECML), what I really mean are the two parts of meter-gauge single-track railway built during the colonial era: Malaysia KTM's [East Coast line (a.k.a. Jungle line)](https://en.wikipedia.org/wiki/KTM_East_Coast_railway_line) (Gemas - Tumpat), combined with Thailand SRT's [Southern line](https://en.wikipedia.org/wiki/Southern_Line_\(Thailand\)) (Sg. Kolok - Bangkok). This allows an alternative route for (almost) seamless rail travel from Singapore all the way north to Bangkok, and gives you a deeper look into east Muslim areas. + +> Interestingly, Malaysia does have a similar under-construction rail route called [ECRL](https://en.wikipedia.org/wiki/MRL_East_Coast_Rail_Link), which will be a standard-gauge double-track system. +> +> And by the way, if you dare to ask, the operating train stock would be China's [CR200J](https://en.wikipedia.org/wiki/China_Railway_CR200J) series. Oh no, not again... + +--- + +## Kuala Lumper - Kuala Lipis + +My journey starts from Malay's capital city Kuala Lumpur. To get onto the Jungle line (without turning/circling), nearest station would be Kuala Lipis. + + + +The sole operator on KL-KL (funny acronym though) route is [Pahang Lin Siong](https://www.pahanglinsiong.my/) departing from a rather small bus terminal, Perkeliling. + +<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d1991.85290473862!2d101.69520814859914!3d3.1719501525597904!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x31cc49005149a2e1%3A0xb316c03d6cceb6d7!2sPahang%20Lin%20Siong%20Motor%20Co%20Bhd%20Ticket%20Office!5e0!3m2!1szh-CN!2shk!4v1772028525196!5m2!1szh-CN!2shk" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe> + + + +I advise to better buy the ticket at kiosk (typically won't sell out anyways) or you need to print the digital order out. Trip takes around 3 hrs. + +## Kuala Lipis - Tumpat + +Kuala Lipis is somewhat a typical small town intersection as what you would expect. A creek, a roundabout, a station, and nothing better than tranquility. + +KTMB runs only 1 express/day on the East Coast Jungle route, which would be locomotive-hauled (and much more comfortable in my opinion). + + + +The only other commuter service is ran by a CRRC-built 4-car [Class 61 DMU](https://en.wikipedia.org/wiki/KTM_Class_61). + + + +And here comes a hilarious moment: Express is actually slower than Shuttle! + + + +Though I'd still suggest getting a sleeping berth on the express train (for the extra space and privacy), and they charge you only RM36 for a 8-hr journey. Enjoy the tropical views as the train shuttles through rainy jungles. + +## Messing around Kota Bharu + +Tumpat, to the end of KTM's EC line, is nowhere near kelantan's capital Kota Bharu region or the border checkpoints. It does have some fairly interesting attractions around (Wat Phikulthong, Wat Machimmaram, etc.), but not very walkable and has no other modes of public transport. + +The newly introduced bus [D21](https://bas.my/route/D21-Kota-Bharu-Pengkalan-Kubor-via-Tumpat.php) gets you to city center for RM2. Hop-on the bus at main station entry, or, if you decide to explore around a little bit, at the nearby bus stop. Google Maps is quite accurate in this case. + +<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d4555.426386838516!2d102.16680549666877!3d6.197607788871501!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x31b6ac0a3f42336d%3A0xd737c15d9f2d9014!2sOpp%20SK%20Seri%20Tumpat%201!5e0!3m2!1szh-CN!2shk!4v1772030549220!5m2!1szh-CN!2shk" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe> + +On the other direction, D21 ends at Pengkalan Kubor. If you plan to go across the border through waterways, checkout other guides with keyword "Tak Bai". + +I'm not going into details but KB does have some good places worth a visit. Once you're done, take bus [D32](https://bas.my/route/D32-Kota-Bharu-Rantau-Panjang.php) straight to Rantau Panjang. Trip takes 1.5 hr and costs RM5. + + + +All BAS.MY buses in KB region accept cash and credit cards. + +## Across the Border (Rantau Pajang - Sungai Kolok) + +Get off a stop earlier before bus D32 ends, at the exotic mosque Masjid Beijing. You can find some local food vendors before the border to spend all your Ringgits. + + + +Walk straight across the intersection and then here we are, finally at the Malay-Thai border. + +NOTE that you may be asked to be specially interviewed at the immigration counter, as this border is mostly for locals. Have a talk with the officers in charge and you are good to go. + + + +There is a cross-border railway bridge, but no real services in between as the rail on Malay side is almost completely abandoned. + + + +## Sungai Kolok - Hat Yai + +Once in Thai territory, be prepared for singal loss. Due to government regulations, all roaming services are not allowed in 3 Southern provinces in Thailand (Pattani, Narathiwat, and Yala) and 4 districts of Songkhla province (Chana, Na Thawi, Thepha, and Saba Yoi), so plan ahead accrodingly. + +I'd suggest to stay in Sg. Kolok for one night and take morning trains (Local. 448 or 452) straight to Hat Yai Junction. + + + +Most local trains are 3rd class only, and annoyingly cheap: 42 Bahts for a 4-hr ride. + + + +There's no A/C (or even electricity), but you generally won't feel very hot: wind would come in through windows anyway. + + + +Hat Yai is a large junction point in southern Thailand, and you'll get SIM singals back. From here, our line merges with West Coast line and together run up north to Bangkok. Catch any Express train and by next morning, you'll be in Thailand's capital.
\ No newline at end of file diff --git a/content/wo-travelling-on-malay-peninsula-ecml/kb-d32-route.jpg b/content/wo-travelling-on-malay-peninsula-ecml/kb-d32-route.jpg Binary files differnew file mode 100644 index 0000000..f61a074 --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/kb-d32-route.jpg diff --git a/content/wo-travelling-on-malay-peninsula-ecml/ktmb-dmu.jpg b/content/wo-travelling-on-malay-peninsula-ecml/ktmb-dmu.jpg Binary files differnew file mode 100644 index 0000000..e40c575 --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/ktmb-dmu.jpg diff --git a/content/wo-travelling-on-malay-peninsula-ecml/ktmb-network.jpg b/content/wo-travelling-on-malay-peninsula-ecml/ktmb-network.jpg Binary files differnew file mode 100644 index 0000000..d9188be --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/ktmb-network.jpg diff --git a/content/wo-travelling-on-malay-peninsula-ecml/ktmb-sleeper.jpg b/content/wo-travelling-on-malay-peninsula-ecml/ktmb-sleeper.jpg Binary files differnew file mode 100644 index 0000000..8e582e0 --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/ktmb-sleeper.jpg diff --git a/content/wo-travelling-on-malay-peninsula-ecml/masjid-beijing.jpg b/content/wo-travelling-on-malay-peninsula-ecml/masjid-beijing.jpg Binary files differnew file mode 100644 index 0000000..cb32650 --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/masjid-beijing.jpg diff --git a/content/wo-travelling-on-malay-peninsula-ecml/pahang-lin-siong.jpg b/content/wo-travelling-on-malay-peninsula-ecml/pahang-lin-siong.jpg Binary files differnew file mode 100644 index 0000000..6a7fb1c --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/pahang-lin-siong.jpg diff --git a/content/wo-travelling-on-malay-peninsula-ecml/scrapped-loco.jpg b/content/wo-travelling-on-malay-peninsula-ecml/scrapped-loco.jpg Binary files differnew file mode 100644 index 0000000..557dc7c --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/scrapped-loco.jpg diff --git a/content/wo-travelling-on-malay-peninsula-ecml/wo.jpg b/content/wo-travelling-on-malay-peninsula-ecml/wo.jpg Binary files differnew file mode 100644 index 0000000..93422d0 --- /dev/null +++ b/content/wo-travelling-on-malay-peninsula-ecml/wo.jpg diff --git a/static/giallo-dark.css b/static/giallo-dark.css new file mode 100644 index 0000000..9195290 --- /dev/null +++ b/static/giallo-dark.css @@ -0,0 +1,477 @@ +/* + * theme "one-dark-pro" generated by giallo + */ + +.z-code { + color: #ABB2BF; + background-color: #282C34; +} + +.z-hl { + background-color: #2C313C; +} + +.giallo-ln { + color: #495162; +} + +.z-keyword { color: #C678DD; } +.z-variable { color: #E06C75; } +.z-storage { color: #C678DD; } +.z-string { color: #98C379; } +.z-constant { color: #D19A66; } +.z-rgb-value { color: #56B6C2; } +.z-comment { color: #7F848E; font-style: italic; } +.z-md { color: #C678DD; } +.z-punctuation { color: #E06C75; } +.z-rgb-value { color: #D19A66; } +.z-rgb-value { color: #D19A66; } +.z-punctuation { color: #98C379; } +.z-punctuation { color: #98C379; } +.z-meta.z-embedded { color: #ABB2BF; } +.z-source.z-java { color: #E06C75; } +.z-keyword.z-operator { color: #ABB2BF; } +.z-variable.z-c { color: #ABB2BF; } +.z-variable.z-language { color: #E5C07B; } +.z-token.z-package { color: #ABB2BF; } +.z-meta.z-require { color: #61AFEF; } +.z-variable.z-function { color: #61AFEF; } +.z-support.z-class { color: #E5C07B; } +.z-keyword.z-control { color: #C678DD; } +.z-control.z-elements { color: #D19A66; } +.z-token.z-storage { color: #C678DD; } +.z-support.z-function { color: #56B6C2; } +.z-meta.z-tag { color: #ABB2BF; } +.z-constant.z-numeric { color: #D19A66; } +.z-meta.z-selector { color: #C678DD; } +.z-markup.z-heading { color: #E06C75; } +.z-markup.z-bold { color: #D19A66; } +.z-todo.z-bold { color: #D19A66; } +.z-markup.z-italic { color: #C678DD; } +.z-todo.z-emphasis { color: #C678DD; } +.z-string.z-regexp { color: #56B6C2; } +.z-variable.z-interpolation { color: #E06C75; } +.z-invalid.z-illegal { color: #FFFFFF; } +.z-invalid.z-broken { color: #FFFFFF; } +.z-invalid.z-deprecated { color: #FFFFFF; } +.z-invalid.z-unimplemented { color: #FFFFFF; } +.z-function.z-parameter { color: #ABB2BF; } +.z-function.z-brace { color: #ABB2BF; } +.z-selector.z-sass { color: #E06C75; } +.z-token.z-info-token { color: #61AFEF; } +.z-token.z-warn-token { color: #D19A66; } +.z-token.z-error-token { color: #F44747; } +.z-token.z-debug-token { color: #C678DD; } +.z-source.z-ini { color: #98C379; } +.z-source.z-makefile { color: #E5C07B; } +.z-text.z-variable { color: #E06C75; } +.z-text.z-bracketed { color: #E06C75; } +.z-invalid.z-xi { color: #ABB2BF; } +.z-accent.z-xi { color: #61AFEF; } +.z-wikiword.z-xi { color: #D19A66; } +.z-markup.z-deleted { color: #E06C75; } +.z-markup.z-inserted { color: #98C379; } +.z-markup.z-underline { text-decoration: underline; } +.z-string.z-regexp { color: #E06C75; } +.z-log.z-info { color: #98C379; } +.z-log.z-warning { color: #E5C07B; } +.z-log.z-error { color: #E06C75; } +.z-variable.z-parameter { font-style: italic; } +.z-markup.z-link { color: #5C6370; } +.z-punctuation.z-string { color: #E06C75; } +.z-storage.z-type.z-haskell { color: #D19A66; } +.z-variable.z-language.z-rust { color: #E06C75; } +.z-support.z-constant.z-edge { color: #C678DD; } +.z-keyword.z-operator.z-word { color: #C678DD; } +.z-variable.z-parameter.z-function { color: #ABB2BF; } +.z-markup.z-changed.z-diff { color: #E5C07B; } +.z-markup.z-inserted.z-diff { color: #98C379; } +.z-markup.z-deleted.z-diff { color: #E06C75; } +.z-meta.z-function.z-c { color: #E06C75; } +.z-meta.z-function.z-cpp { color: #E06C75; } +.z-punctuation.z-separator.z-key-value { color: #ABB2BF; } +.z-support.z-constant.z-math { color: #E5C07B; } +.z-variable.z-other.z-constant { color: #E5C07B; } +.z-punctuation.z-terminator.z-java { color: #ABB2BF; } +.z-meta.z-method-call.z-java { color: #ABB2BF; } +.z-meta.z-method.z-java { color: #61AFEF; } +.z-storage.z-type.z-java { color: #E5C07B; } +.z-keyword.z-operator.z-logical { color: #56B6C2; } +.z-keyword.z-operator.z-bitwise { color: #56B6C2; } +.z-keyword.z-operator.z-channel { color: #56B6C2; } +.z-keyword.z-operator.z-css { color: #56B6C2; } +.z-keyword.z-operator.z-scss { color: #56B6C2; } +.z-keyword.z-operator.z-less { color: #56B6C2; } +.z-support.z-module.z-node { color: #E5C07B; } +.z-support.z-module.z-node { color: #E5C07B; } +.z-variable.z-other.z-readwrite { color: #E06C75; } +.z-meta.z-object-literal.z-key { color: #E06C75; } +.z-support.z-variable.z-property { color: #E06C75; } +.z-support.z-constant.z-json { color: #D19A66; } +.z-keyword.z-operator.z-new { color: #C678DD; } +.z-keyword.z-operator.z-ternary { color: #C678DD; } +.z-keyword.z-operator.z-optional { color: #C678DD; } +.z-entity.z-name.z-function { color: #61AFEF; } +.z-support.z-function.z-console { color: #61AFEF; } +.z-keyword.z-operator.z-delete { color: #C678DD; } +.z-support.z-variable.z-dom { color: #E06C75; } +.z-keyword.z-operator.z-arithmetic { color: #56B6C2; } +.z-keyword.z-operator.z-comparison { color: #56B6C2; } +.z-keyword.z-operator.z-decrement { color: #56B6C2; } +.z-keyword.z-operator.z-increment { color: #56B6C2; } +.z-keyword.z-operator.z-relational { color: #56B6C2; } +.z-keyword.z-operator.z-c { color: #C678DD; } +.z-keyword.z-operator.z-cpp { color: #C678DD; } +.z-punctuation.z-separator.z-delimiter { color: #ABB2BF; } +.z-punctuation.z-separator.z-c { color: #C678DD; } +.z-punctuation.z-separator.z-cpp { color: #C678DD; } +.z-support.z-type.z-python { color: #56B6C2; } +.z-entity.z-name.z-namespace { color: #E5C07B; } +.z-import.z-storage.z-java { color: #E5C07B; } +.z-token.z-package.z-keyword { color: #C678DD; } +.z-entity.z-name.z-function { color: #61AFEF; } +.z-support.z-function.z-any-method { color: #61AFEF; } +.z-entity.z-name.z-class { color: #E5C07B; } +.z-entity.z-name.z-type { color: #E5C07B; } +.z-keyword.z-operator.z-less { color: #D19A66; } +.z-keyword.z-other.z-special-method { color: #61AFEF; } +.z-keyword.z-operator.z-new { color: #C678DD; } +.z-support.z-type.z-property-name { color: #ABB2BF; } +.z-support.z-constant.z-property-value { color: #ABB2BF; } +.z-support.z-constant.z-font-name { color: #D19A66; } +.z-constant.z-other.z-symbol { color: #56B6C2; } +.z-punctuation.z-definition.z-constant { color: #D19A66; } +.z-entity.z-name.z-tag { color: #E06C75; } +.z-entity.z-other.z-attribute-name { color: #D19A66; } +.z-entity.z-name.z-section { color: #61AFEF; } +.z-keyword.z-other.z-unit { color: #E06C75; } +.z-punctuation.z-definition.z-bold { color: #E5C07B; } +.z-punctuation.z-definition.z-italic { color: #C678DD; } +.z-markup.z-heading.z-setext { color: #ABB2BF; } +.z-punctuation.z-definition.z-asciidoc { color: #E5C07B; } +.z-markup.z-list.z-asciidoc { color: #E5C07B; } +.z-markup.z-link.z-asciidoc { color: #C678DD; } +.z-string.z-unquoted.z-asciidoc { color: #61AFEF; } +.z-punctuation.z-section.z-embedded { color: #E06C75; } +.z-meta.z-interface.z-php { color: #E5C07B; } +.z-storage.z-type.z-php { color: #E5C07B; } +.z-meta.z-function-call.z-php { color: #61AFEF; } +.z-support.z-other.z-php { color: #61AFEF; } +.z-function.z-parameter.z-ruby { color: #ABB2BF; } +.z-function.z-parameter.z-cs { color: #ABB2BF; } +.z-block.z-scope.z-end { color: #ABB2BF; } +.z-block.z-scope.z-begin { color: #ABB2BF; } +.z-storage.z-type.z-cs { color: #E5C07B; } +.z-punctuation.z-section.z-embedded { color: #C678DD; } +.z-meta.z-template.z-expression { color: #ABB2BF; } +.z-keyword.z-operator.z-module { color: #C678DD; } +.z-support.z-type.z-primitive { color: #E5C07B; } +.z-meta.z-property.z-object { color: #E06C75; } +.z-keyword.z-operator.z-assignment { color: #56B6C2; } +.z-support.z-constant.z-elm { color: #D19A66; } +.z-punctuation.z-quasi.z-element { color: #C678DD; } +.z-constant.z-character.z-entity { color: #E06C75; } +.z-entity.z-global.z-clojure { color: #E5C07B; } +.z-meta.z-symbol.z-clojure { color: #E06C75; } +.z-constant.z-keyword.z-clojure { color: #56B6C2; } +.z-meta.z-arguments.z-coffee { color: #E06C75; } +.z-meta.z-method.z-groovy { color: #61AFEF; } +.z-support.z-type.z-swift { color: #E5C07B; } +.z-constant.z-regexp.z-xi { color: #C678DD; } +.z-keyword.z-control.z-xi { color: #56B6C2; } +.z-constant.z-character.z-xi { color: #61AFEF; } +.z-meta.z-brace.z-square { color: #ABB2BF; } +.z-punctuation.z-definition.z-comment { color: #7F848E; font-style: italic; } +.z-markup.z-quote.z-markdown { color: #5C6370; } +.z-variable.z-other.z-object { color: #E5C07B; } +.z-entity.z-other.z-inherited-class { color: #E5C07B; } +.z-constant.z-other.z-php { color: #ABB2BF; } +.z-constant.z-character.z-escape { color: #56B6C2; } +.z-entity.z-name.z-label { color: #E06C75; } +.z-variable.z-language.z-super { font-style: italic; } +.z-comment.z-line.z-double-slash { font-style: italic; } +.z-comment.z-block.z-documentation { font-style: italic; } +.z-markup.z-italic.z-markdown { font-style: italic; } +.z-punctuation.z-definition.z-heading { color: #61AFEF; } +.z-string.z-quoted.z-json { color: #E06C75; } +.z-constant.z-language.z-json { color: #56B6C2; } +.z-constant.z-language.z-json { color: #56B6C2; } +.z-support.z-constant.z-laravel-blade { color: #C678DD; } +.z-string.z-quoted.z-json { color: #98C379; } +.z-string.z-quoted.z-json { color: #98C379; } +.z-punctuation.z-definition.z-delayed.z-unison { color: #E06C75; } +.z-punctuation.z-separator.z-pipe.z-unison { color: #E06C75; } +.z-punctuation.z-separator.z-delimiter.z-unison { color: #E06C75; } +.z-punctuation.z-definition.z-hash.z-unison { color: #E06C75; } +.z-variable.z-other.z-generic-type.z-haskell { color: #C678DD; } +.z-support.z-variable.z-magic.z-python { color: #E06C75; } +.z-punctuation.z-separator.z-period.z-python { color: #ABB2BF; } +.z-punctuation.z-separator.z-element.z-python { color: #ABB2BF; } +.z-punctuation.z-parenthesis.z-begin.z-python { color: #ABB2BF; } +.z-punctuation.z-parenthesis.z-end.z-python { color: #ABB2BF; } +.z-storage.z-modifier.z-lifetime.z-rust { color: #ABB2BF; } +.z-support.z-function.z-std.z-rust { color: #61AFEF; } +.z-entity.z-name.z-lifetime.z-rust { color: #E5C07B; } +.z-constant.z-other.z-character-class.z-regexp { color: #E06C75; } +.z-keyword.z-operator.z-quantifier.z-regexp { color: #D19A66; } +.z-meta.z-diff.z-header.z-from-file { color: #61AFEF; } +.z-meta.z-diff.z-header.z-to-file { color: #61AFEF; } +.z-punctuation.z-definition.z-from-file.z-diff { color: #61AFEF; } +.z-punctuation.z-definition.z-to-file.z-diff { color: #61AFEF; } +.z-punctuation.z-terminator.z-statement.z-c { color: #ABB2BF; } +.z-keyword.z-operator.z-expression.z-import { color: #61AFEF; } +.z-support.z-constant.z-property.z-math { color: #D19A66; } +.z-storage.z-type.z-annotation.z-java { color: #E5C07B; } +.z-meta.z-method.z-identifier.z-java { color: #ABB2BF; } +.z-punctuation.z-separator.z-period.z-java { color: #ABB2BF; } +.z-punctuation.z-bracket.z-angle.z-java { color: #ABB2BF; } +.z-punctuation.z-definition.z-annotation.z-java { color: #ABB2BF; } +.z-meta.z-method.z-body.z-java { color: #ABB2BF; } +.z-storage.z-modifier.z-import.z-java { color: #E5C07B; } +.z-storage.z-type.z-generic.z-java { color: #E5C07B; } +.z-keyword.z-operator.z-instanceof.z-java { color: #C678DD; } +.z-support.z-constant.z-property-value.z-scss { color: #D19A66; } +.z-support.z-constant.z-property-value.z-css { color: #D19A66; } +.z-support.z-type.z-object.z-module { color: #E5C07B; } +.z-entity.z-name.z-type.z-module { color: #E5C07B; } +.z-support.z-variable.z-object.z-process { color: #E06C75; } +.z-support.z-variable.z-object.z-node { color: #E06C75; } +.z-keyword.z-operator.z-expression.z-instanceof { color: #C678DD; } +.z-keyword.z-operator.z-expression.z-keyof { color: #C678DD; } +.z-support.z-type.z-object.z-console { color: #E06C75; } +.z-support.z-variable.z-property.z-process { color: #D19A66; } +.z-keyword.z-operator.z-misc.z-rust { color: #ABB2BF; } +.z-keyword.z-operator.z-sigil.z-rust { color: #C678DD; } +.z-support.z-type.z-object.z-dom { color: #56B6C2; } +.z-support.z-variable.z-property.z-dom { color: #E06C75; } +.z-keyword.z-operator.z-assignment.z-c { color: #C678DD; } +.z-keyword.z-operator.z-comparison.z-c { color: #C678DD; } +.z-keyword.z-operator.z-increment.z-c { color: #C678DD; } +.z-keyword.z-operator.z-decrement.z-c { color: #C678DD; } +.z-keyword.z-operator.z-assignment.z-cpp { color: #C678DD; } +.z-keyword.z-operator.z-comparison.z-cpp { color: #C678DD; } +.z-keyword.z-operator.z-increment.z-cpp { color: #C678DD; } +.z-keyword.z-operator.z-decrement.z-cpp { color: #C678DD; } +.z-support.z-type.z-posix-reserved.z-c { color: #56B6C2; } +.z-support.z-type.z-posix-reserved.z-cpp { color: #56B6C2; } +.z-keyword.z-operator.z-sizeof.z-c { color: #C678DD; } +.z-keyword.z-operator.z-sizeof.z-cpp { color: #C678DD; } +.z-keyword.z-operator.z-logical.z-python { color: #C678DD; } +.z-variable.z-parameter.z-function.z-python { color: #D19A66; } +.z-punctuation.z-separator.z-arguments.z-python { color: #ABB2BF; } +.z-meta.z-function-call.z-generic.z-python { color: #61AFEF; } +.z-keyword.z-operator.z-assignment.z-compound { color: #C678DD; } +.z-token.z-variable.z-parameter.z-java { color: #ABB2BF; } +.z-entity.z-name.z-type.z-namespace { color: #E5C07B; } +.z-entity.z-name.z-type.z-class { color: #E5C07B; } +.z-variable.z-other.z-class.z-js { color: #E5C07B; } +.z-variable.z-other.z-class.z-ts { color: #E5C07B; } +.z-variable.z-other.z-class.z-php { color: #E06C75; } +.z-keyword.z-operator.z-expression.z-delete { color: #C678DD; } +.z-keyword.z-operator.z-expression.z-in { color: #C678DD; } +.z-keyword.z-operator.z-expression.z-of { color: #C678DD; } +.z-keyword.z-operator.z-expression.z-instanceof { color: #C678DD; } +.z-keyword.z-operator.z-expression.z-typeof { color: #C678DD; } +.z-keyword.z-operator.z-expression.z-void { color: #C678DD; } +.z-token.z-storage.z-type.z-java { color: #E5C07B; } +.z-support.z-type.z-property-name.z-toml { color: #E06C75; } +.z-entity.z-other.z-attribute-name.z-id { color: #61AFEF; } +.z-entity.z-name.z-section.z-markdown { color: #E06C75; } +.z-punctuation.z-definition.z-heading.z-markdown { color: #E06C75; } +.z-punctuation.z-definition.z-bold.z-markdown { color: #D19A66; } +.z-markup.z-inline.z-raw.z-markdown { color: #98C379; } +.z-punctuation.z-definition.z-raw.z-markdown { color: #E5C07B; } +.z-punctuation.z-definition.z-list.z-markdown { color: #E5C07B; } +.z-punctuation.z-definition.z-metadata.z-markdown { color: #E06C75; } +.z-punctuation.z-definition.z-metadata.z-markdown { color: #E06C75; } +.z-markup.z-underline.z-link.z-markdown { color: #C678DD; } +.z-markup.z-raw.z-monospace.z-asciidoc { color: #98C379; } +.z-markup.z-other.z-url.z-asciidoc { color: #C678DD; } +.z-markup.z-other.z-url.z-asciidoc { color: #61AFEF; } +.z-punctuation.z-section.z-embedded.z-begin { color: #C678DD; } +.z-punctuation.z-section.z-embedded.z-end { color: #C678DD; } +.z-invalid.z-illegal.z-bad-ampersand.z-html { color: #ABB2BF; } +.z-invalid.z-illegal.z-unrecognized-tag.z-html { color: #E06C75; } +.z-support.z-type.z-property-name.z-json { color: #E06C75; } +.z-entity.z-other.z-alias.z-php { color: #E5C07B; } +.z-keyword.z-operator.z-error-control.z-php { color: #C678DD; } +.z-keyword.z-operator.z-type.z-php { color: #C678DD; } +.z-invalid.z-illegal.z-non-null-typehinted.z-php { color: #F44747; } +.z-keyword.z-other.z-type.z-php { color: #E5C07B; } +.z-meta.z-function-call.z-object.z-php { color: #61AFEF; } +.z-meta.z-function-call.z-static.z-php { color: #61AFEF; } +.z-punctuation.z-separator.z-delimiter.z-php { color: #ABB2BF; } +.z-punctuation.z-terminator.z-expression.z-php { color: #ABB2BF; } +.z-support.z-constant.z-core.z-rust { color: #D19A66; } +.z-support.z-constant.z-ext.z-php { color: #D19A66; } +.z-support.z-constant.z-std.z-php { color: #D19A66; } +.z-support.z-constant.z-core.z-php { color: #D19A66; } +.z-support.z-constant.z-parser-token.z-php { color: #D19A66; } +.z-entity.z-name.z-goto-label.z-php { color: #61AFEF; } +.z-keyword.z-operator.z-logical.z-php { color: #56B6C2; } +.z-keyword.z-operator.z-bitwise.z-php { color: #56B6C2; } +.z-keyword.z-operator.z-arithmetic.z-php { color: #56B6C2; } +.z-keyword.z-operator.z-regexp.z-php { color: #C678DD; } +.z-keyword.z-operator.z-comparison.z-php { color: #56B6C2; } +.z-keyword.z-operator.z-heredoc.z-php { color: #C678DD; } +.z-keyword.z-operator.z-nowdoc.z-php { color: #C678DD; } +.z-meta.z-function.z-decorator.z-python { color: #61AFEF; } +.z-support.z-token.z-decorator.z-python { color: #56B6C2; } +.z-constant.z-language.z-symbol.z-ruby { color: #56B6C2; } +.z-support.z-type.z-primitive.z-ts { color: #E5C07B; } +.z-support.z-type.z-builtin.z-ts { color: #E5C07B; } +.z-support.z-type.z-primitive.z-tsx { color: #E5C07B; } +.z-support.z-type.z-builtin.z-tsx { color: #E5C07B; } +.z-punctuation.z-definition.z-template-expression.z-begin { color: #C678DD; } +.z-punctuation.z-definition.z-template-expression.z-end { color: #C678DD; } +.z-support.z-type.z-type.z-flowtype { color: #61AFEF; } +.z-variable.z-parameter.z-function.z-js { color: #E06C75; } +.z-keyword.z-other.z-template.z-begin { color: #98C379; } +.z-keyword.z-other.z-template.z-end { color: #98C379; } +.z-keyword.z-other.z-substitution.z-begin { color: #98C379; } +.z-keyword.z-other.z-substitution.z-end { color: #98C379; } +.z-keyword.z-operator.z-assignment.z-go { color: #E5C07B; } +.z-keyword.z-operator.z-arithmetic.z-go { color: #C678DD; } +.z-keyword.z-operator.z-address.z-go { color: #C678DD; } +.z-keyword.z-operator.z-arithmetic.z-c { color: #C678DD; } +.z-keyword.z-operator.z-arithmetic.z-cpp { color: #C678DD; } +.z-entity.z-name.z-package.z-go { color: #E5C07B; } +.z-support.z-type.z-prelude.z-elm { color: #56B6C2; } +.z-entity.z-other.z-attribute-name.z-pseudo-element { color: #56B6C2; } +.z-entity.z-other.z-attribute-name.z-pseudo-class { color: #56B6C2; } +.z-variable.z-parameter.z-function.z-coffee { color: #E06C75; } +.z-meta.z-scope.z-prerequisites.z-makefile { color: #E06C75; } +.z-storage.z-modifier.z-import.z-groovy { color: #E5C07B; } +.z-support.z-variable.z-semantic.z-hlsl { color: #E5C07B; } +.z-support.z-type.z-texture.z-hlsl { color: #C678DD; } +.z-support.z-type.z-sampler.z-hlsl { color: #C678DD; } +.z-support.z-type.z-object.z-hlsl { color: #C678DD; } +.z-support.z-type.z-fx.z-hlsl { color: #C678DD; } +.z-support.z-type.z-object.z-hlsl { color: #C678DD; } +.z-support.z-type.z-vb.z-asp { color: #E5C07B; } +.z-entity.z-name.z-function.z-xi { color: #E5C07B; } +.z-entity.z-name.z-class.z-xi { color: #56B6C2; } +.z-punctuation.z-definition.z-tag.z-xi { color: #5C6370; } +.z-entity.z-name.z-label.z-cs { color: #E5C07B; } +.z-entity.z-name.z-label.z-cs { color: #E06C75; } +.z-constant.z-language.z-symbol.z-elixir { color: #56B6C2; } +.z-support.z-other.z-namespace.z-php { color: #ABB2BF; } +.z-variable.z-parameter.z-function.z-latex { color: #E06C75; } +.z-variable.z-other.z-constant.z-property { color: #E06C75; } +.z-variable.z-other.z-readwrite.z-c { color: #E06C75; } +.z-punctuation.z-separator.z-colon.z-php { color: #ABB2BF; } +.z-support.z-other.z-parenthesis.z-regexp { color: #D19A66; } +.z-keyword.z-operator.z-expression.z-is { color: #C678DD; } +.z-constant.z-character.z-math.z-tex { color: #98C379; } +.z-entity.z-other.z-attribute-name.z-js { font-style: italic; } +.z-entity.z-other.z-attribute-name.z-ts { font-style: italic; } +.z-entity.z-other.z-attribute-name.z-jsx { font-style: italic; } +.z-entity.z-other.z-attribute-name.z-tsx { font-style: italic; } +.z-entity.z-name.z-tag.z-laravel-blade { color: #C678DD; } +.z-punctuation.z-definition.z-list.z-begin.z-unison { color: #E06C75; } +.z-punctuation.z-definition.z-list.z-end.z-unison { color: #E06C75; } +.z-punctuation.z-definition.z-ability.z-begin.z-unison { color: #E06C75; } +.z-punctuation.z-definition.z-ability.z-end.z-unison { color: #E06C75; } +.z-punctuation.z-operator.z-assignment.z-as.z-unison { color: #E06C75; } +.z-storage.z-type.z-object.z-array.z-java { color: #E5C07B; } +.z-punctuation.z-section.z-block.z-begin.z-java { color: #ABB2BF; } +.z-punctuation.z-section.z-block.z-end.z-java { color: #ABB2BF; } +.z-punctuation.z-definition.z-method-parameters.z-begin.z-java { color: #ABB2BF; } +.z-punctuation.z-definition.z-method-parameters.z-end.z-java { color: #ABB2BF; } +.z-punctuation.z-section.z-method.z-begin.z-java { color: #ABB2BF; } +.z-punctuation.z-section.z-method.z-end.z-java { color: #ABB2BF; } +.z-punctuation.z-section.z-class.z-begin.z-java { color: #ABB2BF; } +.z-punctuation.z-section.z-class.z-end.z-java { color: #ABB2BF; } +.z-punctuation.z-section.z-inner-class.z-begin.z-java { color: #ABB2BF; } +.z-punctuation.z-section.z-inner-class.z-end.z-java { color: #ABB2BF; } +.z-meta.z-definition.z-variable.z-name.z-java { color: #E06C75; } +.z-support.z-constant.z-color.z-w3c-standard-color-name.z-css { color: #D19A66; } +.z-support.z-constant.z-color.z-w3c-standard-color-name.z-scss { color: #D19A66; } +.z-punctuation.z-separator.z-list.z-comma.z-css { color: #ABB2BF; } +.z-support.z-constant.z-color.z-w3c-standard-color-name.z-css { color: #D19A66; } +.z-support.z-type.z-vendored.z-property-name.z-css { color: #56B6C2; } +.z-keyword.z-operator.z-bitwise.z-shift.z-c { color: #C678DD; } +.z-keyword.z-operator.z-bitwise.z-shift.z-cpp { color: #C678DD; } +.z-variable.z-parameter.z-function.z-language.z-python { color: #D19A66; } +.z-punctuation.z-definition.z-arguments.z-begin.z-python { color: #ABB2BF; } +.z-punctuation.z-definition.z-arguments.z-end.z-python { color: #ABB2BF; } +.z-punctuation.z-definition.z-list.z-begin.z-python { color: #ABB2BF; } +.z-punctuation.z-definition.z-list.z-end.z-python { color: #ABB2BF; } +.z-keyword.z-operator.z-assignment.z-compound.z-js { color: #56B6C2; } +.z-keyword.z-operator.z-assignment.z-compound.z-ts { color: #56B6C2; } +.z-support.z-type.z-property-name.z-table.z-toml { color: #E06C75; } +.z-support.z-type.z-property-name.z-array.z-toml { color: #E06C75; } +.z-entity.z-other.z-attribute-name.z-class.z-css { color: #D19A66; } +.z-punctuation.z-definition.z-list.z-begin.z-markdown { color: #E5C07B; } +.z-markup.z-inline.z-raw.z-string.z-markdown { color: #98C379; } +.z-punctuation.z-definition.z-string.z-begin.z-markdown { color: #E06C75; } +.z-punctuation.z-definition.z-string.z-end.z-markdown { color: #E06C75; } +.z-beginning.z-punctuation.z-definition.z-list.z-markdown { color: #E06C75; } +.z-markup.z-underline.z-link.z-image.z-markdown { color: #C678DD; } +.z-string.z-other.z-link.z-title.z-markdown { color: #61AFEF; } +.z-string.z-other.z-link.z-description.z-markdown { color: #61AFEF; } +.z-support.z-other.z-namespace.z-use.z-php { color: #E5C07B; } +.z-support.z-other.z-namespace.z-use-as.z-php { color: #E5C07B; } +.z-punctuation.z-section.z-array.z-begin.z-php { color: #ABB2BF; } +.z-punctuation.z-section.z-array.z-end.z-php { color: #ABB2BF; } +.z-meta.z-other.z-type.z-phpdoc.z-php { color: #E5C07B; } +.z-keyword.z-other.z-array.z-phpdoc.z-php { color: #E5C07B; } +.z-punctuation.z-section.z-scope.z-begin.z-php { color: #ABB2BF; } +.z-punctuation.z-section.z-scope.z-end.z-php { color: #ABB2BF; } +.z-meta.z-function.z-decorator.z-identifier.z-python { color: #56B6C2; } +.z-constant.z-language.z-symbol.z-hashkey.z-ruby { color: #56B6C2; } +.z-entity.z-name.z-variable.z-local.z-cs { color: #E06C75; } +.z-meta.z-definition.z-variable.z-name.z-groovy { color: #E06C75; } +.z-support.z-type.z-object.z-rw.z-hlsl { color: #C678DD; } +.z-constant.z-character.z-character-class.z-regexp.z-xi { color: #E06C75; } +.z-constant.z-other.z-color.z-rgb-value.z-xi { color: #FFFFFF; } +.z-entity.z-name.z-scope-resolution.z-function.z-call { color: #E5C07B; } +.z-entity.z-name.z-scope-resolution.z-function.z-definition { color: #E5C07B; } +.z-markup.z-heading.z-setext.z-\31 .z-markdown { color: #E06C75; } +.z-markup.z-heading.z-setext.z-\32 .z-markdown { color: #E06C75; } +.z-constant.z-language.z-symbol.z-double-quoted.z-elixir { color: #56B6C2; } +.z-entity.z-name.z-variable.z-parameter.z-cs { color: #E5C07B; } +.z-entity.z-name.z-variable.z-field.z-cs { color: #E06C75; } +.z-punctuation.z-section.z-embedded.z-begin.z-php { color: #BE5046; } +.z-punctuation.z-section.z-embedded.z-end.z-php { color: #BE5046; } +.z-entity.z-name.z-variable.z-parameter.z-php { color: #ABB2BF; } +.z-constant.z-numeric.z-decimal.z-asm.z-x86_64 { color: #C678DD; } +.z-constant.z-other.z-general.z-math.z-tex { color: #61AFEF; } +.z-constant.z-character.z-format.z-placeholder.z-other.z-python { color: #D19A66; } +.z-entity.z-name.z-class.z-identifier.z-namespace.z-type { color: #E5C07B; } +.z-invalid.z-deprecated.z-entity.z-other.z-attribute-name.z-html { color: #D19A66; } +.z-punctuation.z-definition.z-begin.z-bracket.z-round.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-end.z-bracket.z-round.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-begin.z-bracket.z-curly.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-end.z-bracket.z-curly.z-php { color: #ABB2BF; } +.z-meta.z-definition.z-class.z-inherited.z-classes.z-groovy { color: #98C379; } +.z-beginning.z-punctuation.z-definition.z-quote.z-markdown.z-xi { color: #98C379; } +.z-beginning.z-punctuation.z-definition.z-list.z-markdown.z-xi { color: #7F848E; } +.z-punctuation.z-definition.z-block.z-sequence.z-item.z-yaml { color: #ABB2BF; } +.z-support.z-class.z-math.z-block.z-environment.z-latex { color: #61AFEF; } +.z-variable.z-parameter.z-function.z-language.z-special.z-self.z-python { color: #E5C07B; } +.z-variable.z-parameter.z-function.z-language.z-special.z-cls.z-python { color: #E5C07B; } +.z-punctuation.z-section.z-block.z-begin.z-bracket.z-curly.z-cpp { color: #ABB2BF; } +.z-punctuation.z-section.z-block.z-end.z-bracket.z-curly.z-cpp { color: #ABB2BF; } +.z-punctuation.z-section.z-block.z-begin.z-bracket.z-curly.z-c { color: #ABB2BF; } +.z-punctuation.z-section.z-block.z-end.z-bracket.z-curly.z-c { color: #ABB2BF; } +.z-punctuation.z-section.z-parens.z-begin.z-bracket.z-round.z-c { color: #ABB2BF; } +.z-punctuation.z-section.z-parens.z-end.z-bracket.z-round.z-c { color: #ABB2BF; } +.z-punctuation.z-section.z-parameters.z-begin.z-bracket.z-round.z-c { color: #ABB2BF; } +.z-punctuation.z-section.z-parameters.z-end.z-bracket.z-round.z-c { color: #ABB2BF; } +.z-punctuation.z-section.z-class.z-begin.z-bracket.z-curly.z-java { color: #ABB2BF; } +.z-punctuation.z-section.z-class.z-end.z-bracket.z-curly.z-java { color: #ABB2BF; } +.z-punctuation.z-section.z-method.z-begin.z-bracket.z-curly.z-java { color: #ABB2BF; } +.z-punctuation.z-section.z-method.z-end.z-bracket.z-curly.z-java { color: #ABB2BF; } +.z-punctuation.z-definition.z-parameters.z-begin.z-bracket.z-round.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-parameters.z-end.z-bracket.z-round.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-arguments.z-begin.z-bracket.z-round.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-arguments.z-end.z-bracket.z-round.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-storage-type.z-begin.z-bracket.z-round.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-storage-type.z-end.z-bracket.z-round.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-array.z-begin.z-bracket.z-round.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-array.z-end.z-bracket.z-round.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-section.z-switch-block.z-end.z-bracket.z-curly.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-section.z-switch-block.z-start.z-bracket.z-curly.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-section.z-switch-block.z-begin.z-bracket.z-curly.z-php { color: #ABB2BF; } +.z-punctuation.z-definition.z-section.z-switch-block.z-end.z-bracket.z-curly.z-php { color: #ABB2BF; } diff --git a/static/giallo-light.css b/static/giallo-light.css new file mode 100644 index 0000000..c81d704 --- /dev/null +++ b/static/giallo-light.css @@ -0,0 +1,65 @@ +/* + * theme "solarized-light" generated by giallo + */ + +.z-code { + color: #657B83; + background-color: #FDF6E3; +} + +.z-hl { + background-color: #EEE8D5; +} + +.z-comment { color: #93A1A1; font-style: italic; } +.z-string { color: #2AA198; } +.z-keyword { color: #859900; } +.z-storage { color: #586E75; font-weight: bold; } +.z-invalid { color: #DC322F; } +.z-meta.z-embedded { color: #657B83; } +.z-string.z-regexp { color: #DC322F; } +.z-constant.z-numeric { color: #D33682; } +.z-variable.z-language { color: #268BD2; } +.z-variable.z-other { color: #268BD2; } +.z-constant.z-language { color: #B58900; } +.z-meta.z-preprocessor { color: #B58900; } +.z-constant.z-character { color: #CB4B16; } +.z-constant.z-other { color: #CB4B16; } +.z-support.z-function { color: #268BD2; } +.z-support.z-type { color: #859900; } +.z-support.z-class { color: #859900; } +.z-meta.z-diff { color: #268BD2; font-style: italic; } +.z-markup.z-deleted { color: #DC322F; } +.z-markup.z-changed { color: #CB4B16; } +.z-markup.z-inserted { color: #859900; } +.z-markup.z-quote { color: #859900; } +.z-markup.z-list { color: #B58900; } +.z-markup.z-bold { color: #D33682; } +.z-markup.z-italic { color: #D33682; } +.z-markup.z-bold { font-weight: bold; } +.z-markup.z-italic { font-style: italic; } +.z-markup.z-strikethrough { text-decoration: line-through; } +.z-markup.z-heading { color: #268BD2; font-weight: bold; } +.z-source.z-groovy.z-embedded { color: #657B83; } +.z-entity.z-name.z-class { color: #CB4B16; } +.z-entity.z-name.z-type { color: #CB4B16; } +.z-entity.z-name.z-namespace { color: #CB4B16; } +.z-entity.z-name.z-scope-resolution { color: #CB4B16; } +.z-entity.z-name.z-function { color: #268BD2; } +.z-punctuation.z-definition.z-variable { color: #859900; } +.z-support.z-function.z-construct { color: #CB4B16; } +.z-keyword.z-other.z-new { color: #CB4B16; } +.z-entity.z-other.z-inherited-class { color: #6C71C4; } +.z-entity.z-name.z-tag { color: #268BD2; } +.z-punctuation.z-definition.z-tag { color: #93A1A1; } +.z-entity.z-other.z-attribute-name { color: #93A1A1; } +.z-punctuation.z-separator.z-continuation { color: #DC322F; } +.z-support.z-type.z-exception { color: #CB4B16; } +.z-meta.z-diff.z-header { color: #268BD2; font-style: italic; } +.z-markup.z-inline.z-raw { color: #2AA198; } +.z-markup.z-heading.z-setext { color: #268BD2; } +.z-variable.z-legacy.z-builtin.z-python { color: #657B83; } +.z-punctuation.z-section.z-embedded.z-begin { color: #DC322F; } +.z-punctuation.z-section.z-embedded.z-end { color: #DC322F; } +.z-punctuation.z-separator.z-namespace.z-ruby { color: #6C71C4; } +.z-meta.z-image.z-inline.z-markdown { color: #657B83; } diff --git a/static/syntax-theme-dark.css b/static/syntax-theme-dark.css deleted file mode 100644 index 3622c5c..0000000 --- a/static/syntax-theme-dark.css +++ /dev/null @@ -1,232 +0,0 @@ -/* - * theme "One Dark" generated by syntect - */ - -.z-code { - color: #6c7079; - background-color: #2b303b; -} - -.z-text, .z-source { - color: #abb2bf; -} -.z-variable.z-parameter.z-function { - color: #adb7c9; -} -.z-comment, .z-punctuation.z-definition.z-comment { - color: #5f697a; -font-style: italic; -} -.z-none { - color: #adb7c9; -} -.z-keyword.z-operator { - color: #adb7c9; -} -.z-keyword { - color: #cd74e8; -} -.z-variable { - color: #eb6772; -} -.z-entity.z-name.z-function, .z-meta.z-require, .z-support.z-function.z-any-method { - color: #5cb3fa; -} -.z-support.z-class, .z-entity.z-name.z-class, .z-entity.z-name.z-type.z-class { - color: #f0c678; -} -.z-meta.z-class { - color: #adb7c9; -} -.z-keyword.z-other.z-special-method { - color: #5cb3fa; -} -.z-storage { - color: #cd74e8; -} -.z-support.z-function { - color: #5ebfcc; -} -.z-string, .z-constant.z-other.z-symbol, .z-entity.z-other.z-inherited-class { - color: #9acc76; -} -.z-constant.z-numeric { - color: #db9d63; -} -.z-none { - color: #db9d63; -} -.z-none { - color: #db9d63; -} -.z-constant { - color: #db9d63; -} -.z-entity.z-name.z-tag { - color: #eb6772; -} -.z-entity.z-other.z-attribute-name { - color: #db9d63; -} -.z-entity.z-other.z-attribute-name.z-id, .z-punctuation.z-definition.z-entity { - color: #db9d63; -} -.z-meta.z-selector { - color: #cd74e8; -} -.z-none { - color: #db9d63; -} -.z-markup.z-heading .z-punctuation.z-definition.z-heading, .z-entity.z-name.z-section { - color: #5cb3fa; -} -.z-keyword.z-other.z-unit { - color: #db9d63; -} -.z-markup.z-bold, .z-punctuation.z-definition.z-bold { - color: #f0c678; -} -.z-markup.z-italic, .z-punctuation.z-definition.z-italic { - color: #cd74e8; -} -.z-markup.z-raw.z-inline { - color: #9acc76; -} -.z-string.z-other.z-link, .z-punctuation.z-definition.z-string.z-end.z-markdown { - color: #eb6772; -} -.z-meta.z-link { - color: #db9d63; -} -.z-markup.z-list { - color: #eb6772; -} -.z-markup.z-quote { - color: #db9d63; -} -.z-meta.z-separator { - color: #adb7c9; - background-color: #515151; -} -.z-markup.z-inserted { - color: #9acc76; -} -.z-markup.z-deleted { - color: #eb6772; -} -.z-markup.z-changed { - color: #cd74e8; -} -.z-constant.z-other.z-color { - color: #5ebfcc; -} -.z-string.z-regexp { - color: #5ebfcc; -} -.z-constant.z-character.z-escape { - color: #5ebfcc; -} -.z-punctuation.z-section.z-embedded, .z-variable.z-interpolation { - color: #c94e42; -} -.z-invalid.z-illegal { - color: #ffffff; - background-color: #e05252; -} -.z-invalid.z-broken { - color: #2d2d2d; - background-color: #f99157; -} -.z-invalid.z-deprecated { - color: #2c323d; - background-color: #d27b53; -} -.z-invalid.z-unimplemented { - color: #2c323d; - background-color: #747369; -} -.z-source.z-json .z-meta.z-structure.z-dictionary.z-json .z-string.z-quoted.z-double.z-json { - color: #eb6772; -} -.z-source.z-json .z-meta.z-structure.z-dictionary.z-json .z-meta.z-structure.z-dictionary.z-value.z-json .z-string.z-quoted.z-double.z-json { - color: #9acc76; -} -.z-source.z-json .z-meta.z-structure.z-dictionary.z-json .z-meta.z-structure.z-dictionary.z-value.z-json .z-meta.z-structure.z-dictionary.z-json .z-string.z-quoted.z-double.z-json { - color: #eb6772; -} -.z-source.z-json .z-meta.z-structure.z-dictionary.z-json .z-meta.z-structure.z-dictionary.z-value.z-json .z-meta.z-structure.z-dictionary.z-json .z-meta.z-structure.z-dictionary.z-value.z-json .z-string.z-quoted.z-double.z-json { - color: #9acc76; -} -.z-text.z-html.z-laravel-blade .z-source.z-php.z-embedded.z-line.z-html .z-entity.z-name.z-tag.z-laravel-blade { - color: #cd74e8; -} -.z-text.z-html.z-laravel-blade .z-source.z-php.z-embedded.z-line.z-html .z-support.z-constant.z-laravel-blade { - color: #cd74e8; -} -.z-source.z-python .z-meta.z-function.z-python .z-meta.z-function.z-parameters.z-python .z-variable.z-parameter.z-function.z-python { - color: #db9d63; -} -.z-source.z-python .z-meta.z-function-call.z-python .z-support.z-type.z-python { - color: #5ebfcc; -} -.z-source.z-python .z-keyword.z-operator.z-logical.z-python { - color: #cd74e8; -} -.z-source.z-python .z-meta.z-class.z-python .z-punctuation.z-definition.z-inheritance.z-begin.z-python { - color: #f0c678; -} -.z-source.z-python .z-meta.z-class.z-python .z-punctuation.z-definition.z-inheritance.z-end.z-python { - color: #f0c678; -} -.z-source.z-python .z-meta.z-function-call.z-python .z-meta.z-function-call.z-arguments.z-python .z-variable.z-parameter.z-function.z-python { - color: #db9d63; -} -.z-text.z-html.z-basic .z-source.z-php.z-embedded.z-block.z-html .z-support.z-constant.z-std.z-php { - color: #db9d63; -} -.z-text.z-html.z-basic .z-source.z-php.z-embedded.z-block.z-html .z-meta.z-namespace.z-php .z-entity.z-name.z-type.z-namespace.z-php { - color: #f0c678; -} -.z-source.z-js .z-meta.z-function.z-js .z-support.z-constant.z-js { - color: #db9d63; -} -.z-text.z-html.z-basic` .z-source.z-php.z-embedded.z-block.z-html .z-constant.z-other.z-php { - color: #cd74e8; -} -.z-text.z-html.z-basic .z-source.z-php.z-embedded.z-block.z-html .z-support.z-other.z-namespace.z-php { - color: #db9d63; -} -.z-text.z-tex.z-latex .z-meta.z-function.z-environment.z-math.z-latex .z-string.z-other.z-math.z-block.z-environment.z-latex .z-meta.z-definition.z-label.z-latex .z-variable.z-parameter.z-definition.z-label.z-latex { - color: #adb7c9; -} -.z-text.z-tex.z-latex .z-meta.z-function.z-emph.z-latex .z-markup.z-italic.z-emph.z-latex { - color: #cd74e8; -font-style: italic; -} -.z-source.z-js .z-variable.z-other.z-readwrite.z-js { - color: #adb7c9; -} -.z-source.z-js .z-meta.z-function-call.z-with-arguments.z-js .z-variable.z-function.z-js { - color: #adb7c9; -} -.z-source.z-js .z-meta.z-group.z-braces.z-round .z-meta.z-group.z-braces.z-curly .z-meta.z-function-call.z-method.z-without-arguments.z-js .z-variable.z-function.z-js { - color: #adb7c9; -} -.z-source.z-js .z-meta.z-group.z-braces.z-round .z-meta.z-group.z-braces.z-curly .z-variable.z-other.z-object.z-js { - color: #adb7c9; -} -.z-source.z-js .z-meta.z-group.z-braces.z-round .z-meta.z-group.z-braces.z-curly .z-constant.z-other.z-object.z-key.z-js .z-string.z-unquoted.z-label.z-js { - color: #adb7c9; -} -.z-source.z-js .z-meta.z-group.z-braces.z-round .z-meta.z-group.z-braces.z-curly .z-constant.z-other.z-object.z-key.z-js .z-punctuation.z-separator.z-key-value.z-js { - color: #adb7c9; -} -.z-source.z-js .z-meta.z-group.z-braces.z-round .z-meta.z-group.z-braces.z-curly .z-meta.z-function-call.z-method.z-with-arguments.z-js .z-variable.z-function.z-js { - color: #adb7c9; -} -.z-source.z-js .z-meta.z-function-call.z-method.z-with-arguments.z-js .z-variable.z-function.z-js { - color: #adb7c9; -} -.z-source.z-js .z-meta.z-function-call.z-method.z-without-arguments.z-js .z-variable.z-function.z-js { - color: #adb7c9; -} diff --git a/static/syntax-theme-light.css b/static/syntax-theme-light.css deleted file mode 100644 index 40ea69e..0000000 --- a/static/syntax-theme-light.css +++ /dev/null @@ -1,283 +0,0 @@ -/* - * theme "Solarized (light)" generated by syntect - */ - -.z-code { - color: #657b83; - background-color: #fdf6e3; -} - -.z-comment, .z-meta.z-documentation { - color: #93a1a1; -} -.z-string { - color: #2aa198; -} -.z-string.z-regexp { - color: #2aa198; -} -.z-constant.z-character.z-escape { - color: #dc322f; -} -.z-constant.z-numeric { - color: #6c71c4; -} -.z-variable { - color: #268bd2; -} -.z-variable.z-function { - color: #b58900; -} -.z-variable.z-language { - color: #d33682; -} -.z-keyword { - color: #859900; -} -.z-meta.z-import .z-keyword, .z-keyword.z-control.z-import, .z-keyword.z-control.z-import.z-from, .z-keyword.z-other.z-import, .z-keyword.z-control.z-at-rule.z-include, .z-keyword.z-control.z-at-rule.z-import { - color: #cb4b16; -} -.z-keyword.z-operator.z-comparison, .z-keyword.z-operator.z-assignment, .z-keyword.z-operator.z-arithmetic { - color: #657b83; -} -.z-storage { - color: #859900; -} -.z-storage.z-modifier { - color: #586e75; -} -.z-keyword.z-control.z-class, .z-entity.z-name, .z-entity.z-name.z-class, .z-entity.z-name.z-type.z-class { - color: #b58900; -} -.z-entity.z-other.z-inherited-class { - color: #268bd2; -} -.z-entity.z-other.z-attribute-name { - color: #b58900; -} -.z-support, .z-support.z-type, .z-support.z-class { - color: #859900; -} -.z-entity.z-name.z-function { - color: #b58900; -} -.z-punctuation.z-definition.z-variable { - color: #859900; -} -.z-constant, .z-constant.z-language, .z-meta.z-preprocessor { - color: #b58900; -} -.z-entity.z-name.z-section { - color: #cb4b16; -} -.z-support.z-function.z-construct, .z-keyword.z-other.z-new { - color: #dc322f; -} -.z-constant.z-character, .z-constant.z-other { - color: #cb4b16; -} -.z-entity.z-name.z-tag { - color: #268bd2; -} -.z-punctuation.z-definition.z-tag.z-html, .z-punctuation.z-definition.z-tag.z-begin, .z-punctuation.z-definition.z-tag.z-end { - color: #93a1a1; -} -.z-support.z-function { - color: #859900; -} -.z-punctuation.z-separator.z-continuation { - color: #dc322f; -} -.z-storage.z-type { - color: #268bd2; -} -.z-support.z-type.z-exception { - color: #cb4b16; -} -.z-keyword.z-other.z-special-method { - color: #cb4b16; -} -.z-invalid { - background-color: #ec9489; -} -.z-string.z-quoted.z-double, .z-string.z-quoted.z-single { - color: #2aa198; -} -.z-punctuation.z-definition.z-string { - color: #839496; -} -.z-meta.z-brace.z-square, .z-punctuation.z-section.z-brackets { - color: #268bd2; -} -.z-meta.z-brace.z-round, .z-meta.z-brace.z-curly, .z-punctuation.z-section, .z-punctuation.z-section.z-block, .z-punctuation.z-definition.z-parameters, .z-punctuation.z-section.z-group { - color: #657b83; -} -.z-support.z-constant.z-color, .z-invalid.z-deprecated.z-color.z-w3c-non-standard-color-name.z-scss { - color: #b58900; -} -.z-meta.z-selector.z-css { - color: #657b83; -} -.z-entity.z-name.z-tag.z-css, .z-entity.z-name.z-tag.z-scss, .z-source.z-less .z-keyword.z-control.z-html.z-elements, .z-source.z-sass .z-keyword.z-control.z-untitled { - color: #b58900; -} -.z-entity.z-other.z-attribute-name.z-class { - color: #b58900; -} -.z-entity.z-other.z-attribute-name.z-id { - color: #b58900; -} -.z-entity.z-other.z-attribute-name.z-pseudo-element, .z-entity.z-other.z-attribute-name.z-tag.z-pseudo-element, .z-entity.z-other.z-attribute-name.z-pseudo-class, .z-entity.z-other.z-attribute-name.z-tag.z-pseudo-class { - color: #268bd2; -} -.z-text.z-html.z-basic .z-meta.z-tag.z-other.z-html, .z-text.z-html.z-basic .z-meta.z-tag.z-any.z-html, .z-text.z-html.z-basic .z-meta.z-tag.z-block.z-any, .z-text.z-html.z-basic .z-meta.z-tag.z-inline.z-any, .z-text.z-html.z-basic .z-meta.z-tag.z-structure.z-any.z-html, .z-text.z-html.z-basic .z-source.z-js.z-embedded.z-html, .z-punctuation.z-separator.z-key-value.z-html { - color: #657b83; -} -.z-text.z-html.z-basic .z-entity.z-other.z-attribute-name.z-html, .z-meta.z-tag.z-xml .z-entity.z-other.z-attribute-name { - color: #b58900; -} -.z-keyword.z-other.z-special-method.z-ruby { - color: #859900; -} -.z-variable.z-other.z-constant.z-ruby { - color: #b58900; -} -.z-constant.z-other.z-symbol.z-ruby { - color: #2aa198; -} -.z-keyword.z-other.z-special-method.z-ruby { - color: #cb4b16; -} -.z-meta.z-array .z-support.z-function.z-construct.z-php { - color: #b58900; -} -.z-entity.z-name.z-function.z-preprocessor.z-c, .z-meta.z-preprocessor.z-c.z-include, .z-meta.z-preprocessor.z-macro.z-c { - color: #cb4b16; -} -.z-meta.z-preprocessor.z-c.z-include .z-string.z-quoted.z-other.z-lt-gt.z-include.z-c, .z-meta.z-preprocessor.z-c.z-include .z-punctuation.z-definition.z-string.z-begin.z-c, .z-meta.z-preprocessor.z-c.z-include .z-punctuation.z-definition.z-string.z-end.z-c { - color: #2aa198; -} -.z-other.z-package.z-exclude, .z-other.z-remove { - color: #dc322f; -} -.z-other.z-add { - color: #2aa198; -} -.z-punctuation.z-section.z-group.z-tex, .z-punctuation.z-definition.z-arguments.z-begin.z-latex, .z-punctuation.z-definition.z-arguments.z-end.z-latex, .z-punctuation.z-definition.z-arguments.z-latex { - color: #dc322f; -} -.z-meta.z-group.z-braces.z-tex { - color: #b58900; -} -.z-string.z-other.z-math.z-tex { - color: #b58900; -} -.z-variable.z-parameter.z-function.z-latex { - color: #cb4b16; -} -.z-punctuation.z-definition.z-constant.z-math.z-tex { - color: #dc322f; -} -.z-text.z-tex.z-latex .z-constant.z-other.z-math.z-tex, .z-constant.z-other.z-general.z-math.z-tex, .z-constant.z-other.z-general.z-math.z-tex, .z-constant.z-character.z-math.z-tex { - color: #2aa198; -} -.z-string.z-other.z-math.z-tex { - color: #b58900; -} -.z-punctuation.z-definition.z-string.z-begin.z-tex, .z-punctuation.z-definition.z-string.z-end.z-tex { - color: #dc322f; -} -.z-keyword.z-control.z-label.z-latex, .z-text.z-tex.z-latex .z-constant.z-other.z-general.z-math.z-tex { - color: #2aa198; -} -.z-variable.z-parameter.z-definition.z-label.z-latex { - color: #dc322f; -} -.z-support.z-function.z-be.z-latex { - color: #859900; -} -.z-support.z-function.z-section.z-latex { - color: #cb4b16; -} -.z-support.z-function.z-general.z-tex { - color: #2aa198; -} -.z-keyword.z-control.z-ref.z-latex { - color: #2aa198; -} -.z-storage.z-type.z-class.z-python, .z-storage.z-type.z-function.z-python, .z-storage.z-modifier.z-global.z-python { - color: #859900; -} -.z-support.z-type.z-exception.z-python { - color: #b58900; -} -.z-meta.z-scope.z-for-in-loop.z-shell, .z-variable.z-other.z-loop.z-shell { - color: #586e75; -} -.z-meta.z-scope.z-case-block.z-shell, .z-meta.z-scope.z-case-body.z-shell { - color: #586e75; -} -.z-punctuation.z-definition.z-logical-expression.z-shell { - color: #dc322f; -} -.z-storage.z-modifier.z-c++ { - color: #859900; -} -.z-support.z-function.z-perl { - color: #268bd2; -} -.z-meta.z-diff, .z-meta.z-diff.z-header { - color: #93a1a1; -} -.z-meta.z-diff.z-range { - color: #268bd2; -} -.z-markup.z-deleted { - color: #dc322f; -} -.z-markup.z-changed { - color: #b58900; -} -.z-markup.z-inserted { - color: #859900; -} -.z-markup.z-warning { - color: #b58900; -} -.z-markup.z-error { - color: #dc322f; -} -.z-markup.z-heading, .z-punctuation.z-definition.z-heading.z-markdown { - color: #b58900; -font-weight: bold; -} -.z-markup.z-quote { - color: #859900; -} -.z-markup.z-italic { -font-style: italic; -} -.z-markup.z-bold { -font-weight: bold; -} -.z-markup.z-underline.z-link.z-markdown, .z-meta.z-link.z-reference .z-constant.z-other.z-reference.z-link.z-markdown { - color: #2aa198; -} -.z-constant.z-other.z-reference.z-link.z-markdown { - color: #6c71c4; -} -.z-meta.z-paragraph.z-markdown .z-meta.z-dummy.z-line-break { - background-color: #eee8d5; -} -.z-brackethighlighter.z-all { - color: #93a1a1; -} -.z-entity.z-name.z-filename.z-find-in-files { - color: #2aa198; -} -.z-constant.z-numeric.z-line-number.z-find-in-files { - color: #93a1a1; -} -.z-variable.z-other.z-readwrite.z-js, .z-variable.z-other.z-object.z-js, .z-variable.z-other.z-constant.z-js { - color: #657b83; -} diff --git a/themes/Seje2 b/themes/Seje2 -Subproject 52c7f4ddb5b1355b98166d8b630e662c172c3e2 +Subproject a582b6ef76bfb79744716f5cdfafff8c41861ec |
