- gf24240 的博客
《梦溪笔谈·科技》卷六:模拟洛谷新特性
- @ 2025-8-15 10:33:13
前言
洛谷的 Markdown 格式手册更新了,新增了一些 BCOI 不能直接实现的内容。这里是一些模拟。关联 blog : HTML 部分标签 。
居中显示
这用 HTML 的 <center> 就能完全实现。例如:
<center>
<img src="https://www.bcoi.cn/nav_logo_dark.png">
鸡你太美
</center>
显示效果为:
鸡你太美
居右显示
这可以根据 HTML 标签 <p> 实现。例如:
<p align="right">
<img src="https://www.bcoi.cn/nav_logo_dark.png">
</p>
<p align="right">
鸡你太美
</p>
显示效果为:
鸡你太美
引言
这是洛谷中引言的效果:

目前只能想到 <p> 标签了。例如:
<p align="right">大家好啊,我是说的道理,今天来点大家想看的东西。</p>
<p align="right">—————————————————————————</p>
<p align="right">——otto</p>
显示效果为:
大家好啊,我是说的道理,今天来点大家想看的东西。
—————————————————————————
——otto
非常不兼容,非常不格式化。
折叠框
这是洛谷折叠框的效果:

这个只能用 HTML 来简单实现了。例如:
<details>
<summary >折叠框</summary>
鸡你太美
</details>
显示效果为:
折叠框
鸡你太美
也可以设置默认展开。例如:
<details open>
<summary >折叠框</summary>
鸡你太美
</details>
折叠框
鸡你太美
也可以利用 <font> 标签改变颜色。例如:
<font color='red'>
<details open>
<summary > 警告</summary>
鸡你太美
</details>
</font>
显示效果为:
警告
鸡你太美
如果你追求完美:
<blockquote>
<font color='red'>
<details open>
<summary > <strong>错误</strong></summary>
<h1></h1>
<font color='black'>
鸡你太美
</font>
</details>
</font>
</blockquote>
显示效果为:
错误
鸡你太美
对于三角形的形状也无能为力了。可以用下面这些颜色改变 <font> 中的 'red' :
- 默认,蓝 : #3498db
- 正确,绿: #52c41a
- 警告,黄: #ffc116
- 错误,红: #e74c3c
但这也有好处:你可以任意改变颜色。
代码显示行号及高亮
Markdown 版本
实际上,HydroOJ 也支持使用 Markdown 实现代码块的代码高亮及表行。格式:
```cpp|2,3|line-numbers
#include <iostream>
using namespace std;
int main()
{
return 0;
}
```
显示效果为:
#include <iostream>
using namespace std;
int main()
{
return 0;
}
具体信息请看下面 HTML 版本。
默认格式
<pre>
<code class="language-cpp">#include <iostream>
using namespace std;
int main()
{
return 0;
}</code>
</pre>
显示效果为:
#include <iostream>
using namespace std;
int main()
{
return 0;
}
注意头文件要改为 <文件名> ,否则会识别为 HTML 标签,然后隐藏。
可以等同为:
```cpp
#include <iostream>
using namespace std;
int main()
{
return 0;
}
```
自动改头文件
- 保存下面的代码;
- 在代码同目录下建立一个
code.in文件; - 在
code.in中放你要改格式的代码; - 运行代码;
- 此时该代码目录下会增加一个
code.out文件,这就是已经改格式后的代码。
#include <iostream>
using namespace std;
int main()
{
freopen("code.in", "r", stdin);
freopen("code.out", "w", stdout);
string line;
getline(cin, line);
while (getline(cin, line))
{
for (char ch : line)
{
if (ch == '<')cout << "<";
else if (ch == '>')cout << ">";
else cout << ch;
}
cout << "\n";
}
return 0;
}
增加行号、高亮
例如:
<code class="language-cpp">#include <iostream>
using namespace std;
int main()
{
return 0;
}</code>
</pre>
只需要把上面的第一行的 language-cpp ,格式改为:
<code class="language-语言ID|高亮行号,英文逗号隔开|line-numbers">
代码
</code>
例如:
<pre>
<code class="language-cpp|2,3|line-numbers">#include <iostream>
using namespace std;
int main()
{
return 0;
}</code>
</pre>
显示效果为:
#include <iostream>
using namespace std;
int main()
{
return 0;
}