作者pinefruit (莫使惹尘埃)
看板C_and_CPP
标题[分享] BBS 程式码上色器
时间Thu Mar 11 18:39:35 2021
软体名称:BBS 程式码上色器
软体连结:
https://bbs-code-highlighter.netlify.app
安装方式:网页版免安装
前阵子想找类似的工具没找到,
後来想想这题目也蛮有趣的,就自己动手写了一个。
由於 BBS 的颜色较少且较鲜艳,
所以上色时我有稍微节制一些,尽可能不要弄得太花。
另外,程式码的解析是我从头写的,
所以严谨度可能还无法跟一些成熟的工具相比,
而且目前也只支援 C++(Qt/STL) 等几种语言选项而已。
好了废话不多说,先给大家看看上色後的程式码:
01.
/***************************
02.
* C++ Sample Code
03.
* Date Modified: 2021/3/11
04.
***************************/
05.
06.
#include <string.h>
07.
#include <stdio.h>
08.
09.
class Movie {
10.
public:
11.
unsigned long id;
12.
char name[
32];
13.
float rating;
14.
char site[
64];
15. };
16.
17.
// <param name="m">Reference to Movie object</param>
18.
void printMovie(
const Movie &m) {
19.
printf(
"Movie(%ld, %s, %.3f, %s)\n", m.id, m.name, m.rating, m.site);
20. }
21.
22.
int main() {
23.
Movie *m =
new Movie();
24. m->id =
0xCF164uL;
25.
strcpy(m->name,
"The Avengers");
26. m->rating =
0x.0Fp8f -
70.0e-1F;
27.
strcpy(m->site,
"\"https://www.imdb.com/title/tt0848228/\"");
28.
29.
if (m->rating >
6.0f ?
true :
false) {
30. printMovie(*m);
31. }
32.
delete m;
33.
return 0;
34. }
左边要不要加上行号是可以勾选的。
如果有行号的话,在手机上阅读应该会清楚一些。
最後补充说明一点,
目前後端程式是跑在免费的伺服器上,所以会有时数上的限制。
另外如果超过 30 分钟没有收到任何请求,後端也会被自动关闭。
如此一来,下次收到请求时会因为需要重启,反应会稍微慢一些,请大家见谅。
恩,大概是这样子,如果有什麽问题或建议,也欢迎大家留言告诉我。
祝大家上色愉快!:)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.218.168.129 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1615459179.A.C16.html
1F:推 nh60211as: 推推,等等试用 03/11 18:55
2F:推 cuteSquirrel: 好美 有vs code的感觉 03/11 19:50
谢谢,我也是 VS Code 的爱用者 ^^
3F:推 hare1039: 推 03/11 21:45
4F:推 CP64: 推 03/11 21:54
5F:推 eye5002003: 挺有趣的,这个之前没人做过吗?? 03/11 22:13
我只查到 2007 年 L 大的这篇文章:
#16R0_pwG (EZsoft)
不过连结已经年久失修了...
6F:→ yoche2000: 好用诶 太棒了 推 03/11 22:35
7F:→ nh60211as: 试用过很好看,不晓得能不能加上PTT每行字的字数限制 03/11 23:01
8F:→ nh60211as: 超过自动换行或是警告使用者 03/11 23:02
已加上程式码超过画面宽度的警告 (全形字及行号也有考虑在内)。
另外若侦测到 tab 字元也会跳出警告。
9F:推 ck574b027: 楼上就是formatter吧,如果可以整合现成的工具,扩充 03/12 06:27
10F:→ ck574b027: 或新增语言就快很多 03/12 06:27
感谢建议,不过目前还没有整合其它工具的规划。
话说回来,如果有天整合了 formatter 进来,
这软体的名称应该要从"上色器"升级成"美化器"了~
11F:推 KaryuuIssen: 推!! 不过应该只有保留字有颜色吧? 感觉有点花 03/12 15:34
12F:→ KaryuuIssen: 我自己目前都是用pietty的贴上指定格式来上色 03/12 15:35
有上色的部分大概就如 sample code 所显示的那样~
至於有点花的问题,如内文所述我有试着处理,但无法做到很理想,
例如程式码的关键字密集度如果很高,画面就容易变得花。
但如果把部分颜色换成暗色,又觉得有点太暗,不太好拿捏...
13F:推 alan23273850: 好爱这个作品!不知道有没有开放 GitHub repo 供参? 03/13 02:44
14F:→ alan23273850: 光复制到剪贴簿这个功能就是一个很有趣的问题。 03/13 02:45
谢谢!不过很抱歉没有...
至於复制到剪贴簿这功能,确实有不少东西可以探讨。
但我在这边只简单用了 document.execCommand("copy") 来实作,
在比较旧的浏览器其实有复制失败的可能性。
不过我相信有在写程式的人应该不会用太旧的浏览器的 ^^
15F:推 gale27: 推推 这个好棒! 03/14 02:35
16F:推 b90022790: 推 好棒的工具! 03/14 15:16
17F:推 LiloHuang: 的确2007年那时我有写一个,後来把kuso.cc收掉就没了XD 03/15 23:32
竟然意外钓出 L 大本尊!!
18F:推 a82611141: 推 03/16 10:59
※ 编辑: pinefruit (180.218.168.129 台湾), 03/16/2021 15:24:30
19F:推 pichubaby: 推 03/16 23:50
20F:推 howareuuu: 推 03/17 10:40
21F:推 yam276: 推 实用 03/17 14:45
22F:推 descent: cool 03/17 23:03
23F:推 pmove: 先推,以後可能试用 03/21 21:27