洛谷 C 和 C++ 代码 DEV-C++ 主题
123asdf123 · · 科技·工程
你是否想在洛谷再次看到 DEV-C++ 的经典代码高亮?
那就试试这个脚本!(脚本请根据其它类似文章安装。)
默认只更改 C 和 C++,其它的请见下方 FAQ。
其实之前早做好了。
这是测试链接。
:::success[效果图]{open} :::
| :::info[更新日志] | 时间 | 版本 | 备注 |
|---|---|---|---|
| 2025/7/25 | v1.1 | 没想到洛谷变量默认是灰色的……没看清。 | |
| ^ | v1 | 第一版代码。 |
:::
代码
因为应该不会更新很多次,故不在其他地方更新代码,以后就在这里更新。
:::warning[注意]{open} 不保证洛谷以后不会再换渲染引擎,换了很可能会失效。 :::
// ==UserScript==
// @name 洛谷 C 和 C++ 代码 DEV-C++ 主题
// @namespace https://www.luogu.com.cn/user/576074
// @license SATA
// @version 1.1
// @description 使得洛谷 C 和 C++ 代码变成 DEV-C++ 的主题。
// @author 123asdf123
// @match *://www.luogu.com.cn/*
// @icon https://payment.luogu.com.cn/favicon.ico
// @grant none
// ==/UserScript==
const onlycpp=1;
var sty=document.createElement('style');
function upd(){
if(document.getElementById("LuoguDEVCppStyleCode")==null){
document.body.appendChild(sty);
}
}
(function(){
'use strict';
sty.id="LuoguDEVCppStyleCode";
if(onlycpp){
sty.innerHTML=
`/*dev-c++ classic plus style code*/
code.language-cpp span.token.macro.property span{
color:green;
font-weight: normal;
}
code.language-cpp span.token.boolean,
code.language-cpp span.token.keyword{
color:black;
font-weight: bold;
}
code.language-cpp,
code.language-cpp span.token.constant,
code.language-cpp span.token.class-name,
code.language-cpp span.token.function,
code.language-cpp span.token.char{
color:black;
font-weight: normal;
}
code.language-cpp span.token.number{
color:purple;
}
code.language-cpp span.token.string{
color:blue;
font-weight: bold;
}
code.language-cpp span.token.punctuation,
code.language-cpp span.token.operator{
color:red;
font-weight: bold;
}
code.language-cpp span.token.comment{
color:rgb(0, 120, 215);
font-style: italic;
}
code.language-c span.token.macro.property span{
color:green;
font-weight: normal;
}
code.language-c span.token.boolean,
code.language-c span.token.keyword{
color:black;
font-weight: bold;
}
code.language-c,
code.language-c span.token.constant,
code.language-c span.token.class-name,
code.language-c span.token.function,
code.language-c span.token.char{
color:black;
font-weight: normal;
}
code.language-c span.token.number{
color:purple;
}
code.language-c span.token.string{
color:blue;
font-weight: bold;
}
code.language-c span.token.punctuation,
code.language-c span.token.operator{
color:red;
font-weight: bold;
}
code.language-c span.token.comment{
color:rgb(0, 120, 215);
font-style: italic;
}
`;
}
else{
sty.innerHTML=
`/*dev-c++ classic plus style code*/
span.token.macro.property span{
color:green;
font-weight: normal;
}
span.token.boolean,
span.token.keyword{
color:black;
font-weight: bold;
}
code,
span.token.constant,
span.token.class-name,
span.token.function,
span.token.char{
color:black;
font-weight: normal;
}
span.token.number{
color:purple;
}
span.token.string{
color:blue;
font-weight: bold;
}
span.token.punctuation,
span.token.operator{
color:red;
font-weight: bold;
}
span.token.comment{
color:rgb(0, 120, 215);
font-style: italic;
}
`;
}
setInterval(upd,50);
})();
FAQ
:::info[为什么写成脚本而不是直接放 CSS?]{open}
因为我没装 Stylus……而且脚本也更适应动态刷新的界面。
:::
:::info[我想其他语言也用 DEV 的高亮]{open}
更改上方高亮的代码为 onlycpp=0; 即可。
但效果很不好,我也懒得改,不建议使用! :::
:::info[为什么之前没有这个脚本]{open} 因为就在今天,洛谷把代码渲染引擎改为了 prismjs,它的划分更细,才方便操控。
之前的渲染引擎把不高亮的 <<a<<b; 缩在一起,我不想重头开始手搓代码渲染引擎。
:::
:::error[有 BUG]{open}
欢迎反馈!会及时在这里更新!
:::