Pache 的配置文件

開始編寫 Node.js 端 Pache 的時候就想過配置信息該如何存放當時有這幾種方案

  • 使用 .json 文件
  • 使用 .js 文件
  • 使用專有配置文件

.json 文件的好處是無依賴低門檻.js 文件的好處是支持注釋而用專有配置文件看起來似乎只能用來裝逼用的

然後還真的裝逼了我寫了一個自己用的配置文件格式名字叫 suc[1]

後綴名也是 .suc

先說說它該怎麼寫[2]

《suc從入門到精通》

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# #號開頭的一整行都會是注釋
# 除了數組模式以外,其他地方的空行都會跳過
propertyName >stringHaHa
propertyName2 > aHaHgnirts
Akko Kagari >hello
[i_am_number] 9
[non-zero] .3
[hoshino yumemi] 1400
[圓周率(近似)] 3.1415927
[list]
cat
dog
pig
[propertyFalse] FALSE
[propertyTrue] TRUE

第 4 ~ 6 行是字符串的類型> 的左邊為屬性名但屬性名會被 trim 處理> 右邊則是字符串值直至換行為止

如果屬性名被 [ ] 包住並且後邊接上數值則是數字類型
如果屬性名被 [ ] 包住並且後邊接上TRUE或者FALSE字符則是布爾型
如果屬性名被 [ ] 包住並且直至換行也沒接上數字或者布爾值則進入數組模式下一行就是數組第一個元素的值再下一行就是數字第二個元素的值若下一行中不輸入任何字符直接換行則結束數組模式數組元素都是字符串類型

經過 node-suc 解析后會返回一個 JS 對象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"propertyName": "stringHaHa",
"propertyName2": " aHaHgnirts",
"Akko Kagari": "hello",
"i_am_number": 9,
"non-zero": 0.3,
"hoshino yumemi": 1400,
"圓周率(近似)": 3.1415927,
"list": [
" cat",
" dog",
" pig"
],
"propertyFalse": false,
"propertyTrue": true
}

特性

有那麼點學習成本再因為我的表達能力所以是有點學習成本的[3]

某個 README.md 上說「SUC 是 Simple Unmanual Config 的缩写,Simple 意为 简单;Unmanual 则是作者 Vec 的中式英语,意思是 无需手册;根据这英文名可理解为 简单的、不需要手册的配置(语法)」

沒有對象這樣的數據類型數組不能嵌套並且數組元素只有字符串類型

不過對於我來說影響不大首先因為是自製的所以很清楚它的語法加上配置文件也不會要求的那麼複雜這樣的數據類型夠用了[4]

除了 Pache Alias

所以呢

所以呢上面那三個特性.js.json 都具備了其它的配置文件[5]

yaml、ini 等

也都具備這樣的特性所以再搞出這個就比較浪費精力和時間了另外一個較為重要的問題沒有任何一款編輯器對 suc 有高亮支持

也就是說是為了裝逼用的裝的還挺辛苦的[6]

之前比較嚴謹的文檔也沒寫。。git 倉庫好像也丟了,只在 npm 上有

……

    1