作者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/m.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