WARRIORS词条系统

本文由WARRIORS词条系统驱动

需求

已经有不少篇Warriors的文章,而各种名字翻译混乱,有必要整理一下。

作为OIer,我认为写个表处理会比较优美,虽然称为wiki,其实只是一个词条的表。

为了文章的简洁性,过时的代码已经被折叠。

C++设计

用文本文件config.txt保存表格,用|分割,每行有6个字段:

  • 英文名
  • 推荐翻译
  • (bool)暂译
  • URL
  • (bool)书名(char)条目类型
  • 别名

主体部分

首先,我决定用C++写,而不是并不熟悉的js去写hexo插件。因此,需要在_post下建个目录存放源文件,经过处理后再放到_post下。注意到_post下任何Markdown文件都会被渲染,所以我去掉了扩展名。为了及时更新代码,放到了downloads/code下。

查看折叠的代码
make.batview raw
1
2
3
4
5
@echo off
for %%s in (*.md) do (
echo processing %%s
wiki.exe %%s ..\..\_posts\%%s
)
wiki.cppview raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/*
config:
|origin|cn|temp|url|book|alias|
*/
#include <fstream>
#include <cctype>
#include <string>
#include <vector>
#include <sys/stat.h>
#include <utime.h>
#include <ctime>
using namespace std;
struct character
{
string name, cn, url, alias;
bool temp;
char book;
};
istream &operator>>(istream &is, character &x)
{
char c;
for (c = is.get(); isspace(c); c = is.get())
;
getline(is, x.name, '|');
getline(is, x.cn, '|');
is >> x.temp;
is.ignore(1);
getline(is, x.url, '|');
is >> x.book;
is.ignore(1);
getline(is, x.alias, '|');
return is;
}
int main(int argc, char *argv[])
{
if (argc < 3)
return 1;
vector<character> config;
ifstream fcon("config.txt");
character ch;
while (fcon >> ch)
config.push_back(ch);
vector<char> vis(config.size()); //to avoid using vector<bool>
fcon.close();

ifstream fin(argv[1]);
ofstream fout(argv[2]);
string line;
bool quote = false;
while (getline(fin, line))
{
size_t len = line.length();
if ()
if (line.find("{% end") != string::npos || line.find("<!-- end -->") != string::npos)
quote = false;
else if (line.find("{%") != string::npos || line.find("<!-- begin -->") != string::npos)
quote = true;
if (!quote && line.find("<!-- ignore -->") == string::npos && line.substr(0, 6) != "title:")
{
line += "^^^^^^^^^^^^^^^^^^^^^^^^^^^^";
for (size_t j = 0; j < len; j++)
{
if (line[j] == '^')
{
j = line.find('^', j + 1);
continue;
}
int r = 0;
for (size_t i = 0; i < config.size(); i++)
{
if (line.substr(j, 3) == "《")
{
r = line.find("》", j + 3);
if (config[i].book == '0' || line.substr(j + 3, r - j - 3) != config[i].cn)
continue;
r += 2;
}

if (config[i].cn != "" && line.substr(j, config[i].cn.length()) == config[i].cn)
r = j + config[i].cn.length() - 1;

if (config[i].name != "" && line.substr(j, config[i].name.length()) == config[i].name)
r = j + config[i].name.length() - 1;

if (config[i].alias != "" && line.substr(j, config[i].alias.length()) == config[i].alias)
r = j + config[i].alias.length() - 1;

if (line[j] == '*')
{
r = line.find('*', j + 1);
if ((line.substr(j + 1, r - j - 1) != config[i].name && (config[i].alias == "" || line.substr(j + 1, r - j - 1) != config[i].alias)))
continue;
}

if (line[r + 1] == '(')
r = line.find(')', r + 1);

if (!r || line[j - 1] == '\"')
continue;

string target = config[i].cn;
if (config[i].book == '1')
target = "《" + target + "》";

if (!vis[i])
{
if (config[i].temp)
target += "<abbr title=\"暂定翻译,主要参照灰机。\"><sup>暂译</sup></abbr>";

if (config[i].url != "")
target = '[' + target + "](" + config[i].url + ')';

target += "(*" + config[i].name + "*)";
vis[i] = true;
}
else
{
string title = config[i].name;
target = "<abbr title=\"" + title + "\">" + target + "</abbr>";
}
if (config[i].book != 'i')
{
line.replace(j, r - j + 1, target);
len += target.length() - (r - j + 1);
j += target.length() - 1;
}
else
j = r;
break;
}
}
}
for (size_t i = 0; i < len; i++)
if (line[i] != '^')
fout.put(line[i]);
fout << endl;
}
fin.close();
fout.close();
struct stat src;
stat(argv[1], &src);
utimbuf tar;
tar.actime = src.st_atime;
tar.modtime = src.st_mtime;
utime(argv[2], &tar);
return 0;
}

最后是当前的配置文件:配置文件旧版本在重构与转移,新版本在hexo-minimal-wiki

实用程序

一般这些程序都只用一次,即用于迁移。

手动输入表比较费劲,且容易出错,于是我写了genconfig.cpp,用于生成config.txt。实际上,由于编码问题,先写入config.out,再手动合并。

查看折叠的代码
genconfig.cppview raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <fstream>
#include <set>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
if (argc < 2)
return 1;
ifstream fin(argv[1]), fcon("config.txt");
set<string> S;
while (fcon)
{
fcon.ignore(1);
string key;
getline(fcon, key, '|');
S.insert(key);
getline(fcon, key);
}
fcon.close();
ofstream ofcon("config.out", ios_base::app);
string line;
while (getline(fin, line))
{
for (size_t i = 0; i < line.length(); i++)
if (line[i] == '*')
{
int r = line.find('*', i + 1);
string key = line.substr(i + 1, r - i - 1);
i = r;
if (S.find(key) == S.end())
{
cout << key << '?';
string ans;
getline(cin, ans);
if (ans[0] == 'N' || ans[0] == 'n')
continue;
cout << "cn=";
string cn;
getline(cin, cn);
cout << "temp=";
string temp; //0 or 1
getline(cin, temp);
if (temp == "")
temp = "0";
cout << "url=";
string url;
getline(cin, url);
cout << "book=";
string book; //0 or 1
getline(cin, book);
if (book == "")
book = "0";
cout << "alias=";
string alias;
getline(cin, alias);
ofcon << '|' << key << '|' << cn << '|' << temp << '|' << url << '|' << book << '|' << alias << '|' << endl;
S.insert(key);
}
}
}
return 0;
}

需要特判中文为前后缀的情况,用check.cpp检查:

查看折叠的代码
check.cppview raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <fstream>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
ifstream fcon("config.txt");
vector<string> con;
while (fcon)
{
fcon.ignore(1);
string s;
getline(fcon, s, '|');
getline(fcon, s, '|');
if (s == "")
break;
con.push_back(s);
getline(fcon, s);
}
for (size_t i = 0; i < con.size(); i++)
for (size_t j = 0; j < con.size(); j++)
if (i != j && con[i].find(con[j]) != string::npos)
cout << j + 1 << ' ' << i + 1 << endl;
return 0;
}

现行的条目类型如下:

字符 含义 示例
b 书名 《黑莓星的风暴》(Bramblestar's Storm)
m 公猫 鸦羽(Crowfeather)
f 母猫,以及午夜(Midnight) 冬青叶(Hollyleaf)
h 药草 琉璃苣(Borage)
d 疾病 绿咳(Greencough)
g 群体 天族(SkyClan)
o 其他 调解者(Mediator)
i 忽略,用于占位 探索

用于将旧配置转换为新配置的book2type.cpp:

查看折叠的代码
book2type.cppview raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
|origin|cn|temp|url|book|alias|==>|origin|cn|temp|url|type|alias|
after using this, config.txt won't be updated.
char type::=(b)ook|(i)gnored|(m)ale|(f)emale|(h)erb|(d)isease|(g)roup|(o)ther
book: 《》
male: ♂
female: ♀
*/
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
struct character
{
string name, cn, url, alias;
bool temp;
char book;
};
istream &operator>>(istream &is, character &x)
{
char c;
for (c = is.get(); isspace(c); c = is.get())
;
getline(is, x.name, '|');
getline(is, x.cn, '|');
is >> x.temp;
is.ignore(1);
getline(is, x.url, '|');
is >> x.book;
is.ignore(1);
getline(is, x.alias, '|');
return is;
}
int main()
{
ifstream fin("config.txt");
ofstream fout("config");
character ch;
while (fin >> ch)
{
char type;
if (ch.book == '1')
type = 'b';
else if (ch.book == 'i')
type = 'i';
else
{
cout << ch.name << ' ' << ch.cn << '?';
cin >> type;
}
fout << '|' << ch.name << '|' << ch.cn << '|' << ch.temp << '|' << ch.url << '|' << type << '|' << ch.alias << "|\n";
}
return 0;
}

移植到Linux

C++基本没有问题,反正用的都是GCC编译。但是批处理在Linux必须改成shell脚本:

查看折叠的代码
make.shview raw
1
2
3
4
5
6
#!/bin/bash
for file in `ls *.md`;
do
echo processing $file
./wiki $file ../../_posts/$file
done

重构与转移

重构了代码,将两个循环换了一下,不再需要任何特判。此外引入了占位词,例如“探索”来防止被“日神(Sol)”覆盖。此外只需保证被包含的短串在配置文件中在长串后面即可。

为迁移到Node.js做准备。原版本代码和数据不再维护,如下:

查看折叠的代码
wiki_old.cppview raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
/*
config:
|origin|cn|temp|url|book|alias|
*/
#include <fstream>
#include <cctype>
#include <string>
#include <vector>
#include <sys/stat.h>
#include <utime.h>
#include <ctime>
using namespace std;
struct character
{
string name, cn, url, alias;
bool temp, book;
};
istream &operator>>(istream &is, character &x)
{
char c;
for (c = is.get(); isspace(c); c = is.get())
;
getline(is, x.name, '|');
getline(is, x.cn, '|');
is >> x.temp;
is.ignore(1);
getline(is, x.url, '|');
is >> x.book;
is.ignore(1);
getline(is, x.alias, '|');
return is;
}
int main(int argc, char *argv[])
{
if (argc < 3)
return 1;
vector<character> config;
ifstream fcon("config.txt");
character ch;
while (fcon >> ch)
config.push_back(ch);
vector<char> vis(config.size()); //to avoid using vector<bool>
fcon.close();

ifstream fin(argv[1]);
ofstream fout(argv[2]);
string line;
bool quote = false;
while (getline(fin, line))
{
if (line.find("{% end") != string::npos || line.find("<!-- end -->") != string::npos)
quote = false;
else if (line.find("{%") != string::npos || line.find("<!-- begin -->") != string::npos)
quote = true;
if (!quote && line.find("<!-- ignore -->") == string::npos && line.substr(0, 6) != "title:")
for (size_t i = 0; i < config.size(); i++)
{
for (size_t j = 0; j < line.length(); j++)
{
int r = 0;
if (line[j] == '^')
{
j = line.find('^', j + 1);
continue;
}
if (line.substr(j, 3) == "《")
{
r = line.find("》", j + 3);
if (!config[i].book || line.substr(j + 3, r - j - 3) != config[i].cn)
{
j = r + 2;
continue;
}
r += 2;
}
if (line.substr(j, config[i].cn.length()) == config[i].cn)
{
if (config[i].name == "Eaglepaw")
{
if (line[j - 1] == '>')
continue;
//特判<abbr>
size_t t = line.find('(', j);
if (t != string::npos)
{
t++;
if (line[t] == '*')
t++;
if (line[t] == 'H')
continue;
}
}
//特判鹰爪
if ((config[i].name == "Crowfeather" && j >= 3 && line.substr(j - 3, 3) == "松") || (config[i].name == "Mae" && (line.substr(j + 3, 3) == "柳" || line.substr(j + 3, 3) == "花" || line.substr(j + 3, 3) == "爪")) || (config[i].name == "Leader" && j >= 3 && line.substr(j - 3, 3) == "副") || (config[i].name == "Spire" && ((j >= 3 && line.substr(j - 3, 3) == "小") || line.substr(j + 6, 3) == "望")))
continue;
//特判(松)鸦羽、梅(柳、花、爪)、(副)族长、(小)塔尖(望)
r = j + config[i].cn.length() - 1;
}
if (line.substr(j, config[i].name.length()) == config[i].name)
{
r = j + config[i].name.length() - 1;
}
if (config[i].alias != "" && line.substr(j, config[i].alias.length()) == config[i].alias)
{
if (config[i].name == "Sol" && j >= 3 && line.substr(j - 3, 3) == "探")
continue;
//特判(探)索
r = j + config[i].alias.length() - 1;
}
if (line[j] == '*')
{
r = line.find('*', j + 1);
if ((line.substr(j + 1, r - j - 1) != config[i].name && (config[i].alias == "" || line.substr(j + 1, r - j - 1) != config[i].alias)))
{
j = r;
continue;
}
}
if (line[r + 1] == '(')
r = line.find(')', r + 1);
if (!r || line[j - 1] == '\"')
continue;
string target = config[i].cn;
if (config[i].book)
target = "《" + target + "》";
if (!vis[i])
{
if (config[i].temp)
target += "<abbr title=\"暂定翻译,主要参照灰机。\"><sup>暂译</sup></abbr>";
if (config[i].url != "")
target = '[' + target + "](" + config[i].url + ')';
target += "(*" + config[i].name + "*)";
vis[i] = true;
}
else
{
string title = config[i].name;
target = "<abbr title=\"" + title + "\">" + target + "</abbr>";
}
line.replace(j, r - j + 1, target);
j += target.length() - 1;
}
}
for (size_t i = 0; i < line.length(); i++)
if (line[i] != '^')
fout.put(line[i]);
fout << endl;
}
fin.close();
fout.close();
struct stat src;
stat(argv[1], &src);
utimbuf tar;
tar.actime = src.st_atime;
tar.modtime = src.st_mtime;
utime(argv[2], &tar);
return 0;
}
config.txtview raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
|Jayfeather|松鸦羽|0||0|Jf|
|Cinderpelt|炭毛|0|/2018/02/15/character-analysis/#%E7%82%AD%E6%AF%9B-Cinderpelt|0|Cp|
|Hollyleaf|冬青叶|0|/2018/02/15/character-analysis/#%E5%86%AC%E9%9D%92%E5%8F%B6|0|Hl|
|Crowfeather|鸦羽|0|/2018/02/15/character-analysis/#%E9%B8%A6%E7%BE%BD|0|Cf|
|Rock|岩石|0||0||
|Fallen Leaves|落叶|0||0|FL|
|Jay's Wing|松鸦翅|0||0|JW|
|Introduction to Algorithms|算法导论|0||1||
|Erin Hunter|艾琳·亨特|0||0||
|Half Moon|半月|0||0|HM|
|The Prophecies Begin|预言开始|0||1|TPB|
|The New Prophecy|新预言|0||1|TNP|
|Power of Three|三力量|0||1|P3|
|Omen of the Stars|星预言|0||1|OTS|
|A Vision of Shadows|暗影幻象|0||1|AVoS|
|Firestar's Quest|火星的探索|0||1|FQ|
|Cloudstar's Journey|云星的旅程|0||1|CJ|
|Tigerheart's Shadow|虎心的阴影|1|/2018/03/31/tigerhearts-shadow-review/|1|TS|
|Furled Bracken|卷蕨|0||0|FB|
|Stone Song|石歌|0||0||
|Firestar|火星|0||0|F*|
|Brambleclaw|黑莓掌|0||0|Bc|
|Squirrelpaw|鼠爪|0||0|S-|
|Tawnypelt|褐皮|0||0|Tp|
|Crowpaw|鸦爪|0||0|C-|
|Feathertail|羽尾|0||0|Ft|
|Stormfur|暴毛|0||0|Sf|
|Ravenpaw|乌爪|0||0|R-|
|Purdy|波弟|0||0||
|Leafpaw|叶爪|0||0|L-|
|Sharptooth|尖牙|0||0||
|Silverstream|银溪|0||0|Ss|
|Leafpool|叶池|0||0|Lp|
|Long Dry Day|长旱日|1||0||
|Rusty|拉斯特|0||0||
|Spottedleaf|斑叶|0||0|Sl|
|Bluestar|蓝星|0||0|B*|
|Squirrelflight|松鼠飞|0||0|Sf|
|Yellowfang|黄牙|0||0|Yf|
|Lionblaze|狮焰|0||0|Lb|
|Skywatcher|护天|0||0||
|Dovewing|鸽翅|0||0|Dw|
|Ivypool|藤池|0||0||
|Flametail|焰尾|0||0|Ft|
|Cloud with Storm in Belly|暴肚云|0||0|孕育暴雨之云|
|Alderheart|赤杨心|0||0|桤心|
|Twigpaw|枝爪|0||0|T-|
|Violetpaw|紫罗兰爪|0||0|V-|
|The Ultimate Guide|终极指南|1||1|TUG|
|Tales from the Clans|族群的传说|1||1||
|Hawkwing's Journey|鹰翅的旅程|1|/2018/04/25/hawkwings-journey-review/|1|HJ|
|Into the Wild|呼唤野性|0||1||
|Fire and Ice|寒冰烈火|0||1||
|Forest of Secrets|疑云重重|0||1||
|Rising Storm|风起云涌|0||1||
|A Dangerous Path|险路惊魂|0||1||
|The Darkest Hour|力挽狂澜|0||1||
|Moonrise|新月危机|0||1||
|Midnight|午夜追踪|0||1||
|Dawn of the Clans|族群黎明|0||1|DotC|
|Dawn|重现家园|0||1||
|Starlight|星光指路|0||1||
|Twilight|黄昏战争|0||1||
|Sunset|日落和平|0||1||
|The Sight|预视力量|0||1||
|Dark River|暗河汹涌|0||1||
|Outcast|驱逐之战|0||1||
|Eclipse|天蚀遮月|0||1||
|Long Shadows|暗夜长影|0||1||
|Sunrise|拂晓之光|0||1||
|The Fourth Apprentice|第四学徒|0||1||
|Fading Echoes|战声渐近|0||1||
|Night Whispers|暗夜密语|0||1||
|Sign of the Moon|月光印记|0||1||
|The Forgotten Warrior|武士归来|0||1||
|The Last Hope|群星之战|0||1|TLH|
|The Apprentice's Quest|学徒探索|0||1|TAQ|
|Thunder and Shadow|雷影交加|0||1|TAS|
|Shattered Sky|天空破碎|0||1|SS|
|Darkest Night|极夜无光|1|/2018/04/25/darkest-night-review/|1||
|Teller of the Pointed Stones|尖石巫师|0||0|Stoneteller|
|Bramblestar|黑莓星|0||0|B*|
|Redtail|红尾|0||0||
|Lionheart|狮心|0||0||
|Tigerclaw|虎掌|0||0||
|Fireheart|火心|0||0||
|Whitestorm|白风|0||0||
|Graystripe|灰条|0||0||
|Brokenstar|断星|0||0||
|Nightstar|夜星|0||0||
|Tigerstar|虎星|0||0||
|Blackstar|黑星|0||0||
|Rowanstar|花楸星|0||0||
|Blackfoot|黑脚|0||0||
|Cinderfur|灰毛|0||0||
|Russetfur|黄毛|0||0||
|Rowanclaw|花楸掌|0||0||
|Crowfrost|乌霜|0||0||
|Runningnose|奔鼻|0||0||
|Littlecloud|小云|0||0||
|Puddleshine|洼光|0||0||
|Tallstar|高星|0||0||
|Onestar|一星|0||0||
|Harestar|兔星|0||0||
|Deadfoot|坏脚|0||0||
|Mudclaw|泥掌|0||0||
|Onewhisker|一根须|0||0||
|Ashfoot|灰脚|0||0||
|Harespring|兔泉|0||0||
|Barkface|青面|0||0||
|Kestrelflight|隼飞|0||0||
|Crookedstar|钩星|0||0||
|Leopardstar|豹星|0||0||
|Mistystar|雾星|0||0||
|Oakheart|橡心|0||0||
|Leopardfur|豹毛|0||0||
|Stonefur|石毛|0||0||
|Mistyfoot|雾脚|0||0||
|Hawkfrost|鹰霜|0||0||
|Reedwhisker|芦苇须|0||0||
|Mudfur|泥毛|0||0||
|Mothwing|蛾翅|0||0||
|Willowshine|柳光|0||0||
|Leafstar|叶星|0||0||
|Sharpclaw|锐掌|0||0||
|Hawkwing|鹰翅|0||0||
|Echosong|回声之歌|0||0||
|Tigerheart|虎心|0||0||
|Alderpaw|赤杨爪|0||0||
|Sparkpaw|烁爪|0||0||
|Molewhisker|鼹鼠须|0||0||
|Cherryfall|樱桃落|0||0||
|Sandstorm|沙风|0||0||
|Needlepaw|松针爪|0||0|针爪|
|Darktail|暗尾|0||0||
|Mistfeather|雾羽|0||0||
|Violetkit|小紫罗兰|0||0||
|Twigkit|小枝|0||0||
|Sorreltail|栗尾|0||0||
|Cinderheart|炭心|0|/2018/02/15/character-analysis/#%E7%82%AD%E5%BF%83|0||
|Clawface|爪脸|0||0||
|Cinderpaw|炭爪|0||0||
|Brackenfur|蕨毛|0||0||
|Whitethroat|白喉|0||0||
|Cloudkit|云崽|0||0||
|Breezepelt|风皮|0||0||
|Leafpool's Wish|叶池的希望|1||1||
|Hollyleaf's Story|冬青叶的故事|0||1||
|Hollytuft|冬青簇|0||0||
|Redwillow|红柳|0||0||
|Ashfur|蜡毛|0||0||
|Briarlight|荆棘光|0||0||
||探索|0||i||
|Sol|日神|0||0|索|
|Snowtuft|雪簇|0||0||
|Thistleclaw|蓟掌|0||0||
|Shredtail|细尾|0||0||
|Mousefur|鼠毛|0||0||
|Ferncloud|香薇云|0||0||
|River of Fire|烈火焚河|1|/2018/06/09/river-of-fire-review/|1|RoF|
|Moth Flight|蛾飞|0||0|Mothflight|
|Spiresight|塔尖望|1||0||
|Spirekit|小塔尖|1||0||
|Spire|塔尖|1||0||
|Furzepelt|荆豆皮|0||0||
|Sleekpaw|滑爪|0||0||
|Rain|雨|0||0||
|Fernsong|香薇歌|0||0||
|yellowcough|黄咳|0||0||
|Lungwort|肺草|0||0||
|Kinkfur|杂毛|0||0||
|Wasptail|黄蜂尾|0||0||
|Bluestar's Prophecy|蓝星的预言|0||1||
|Juniperclaw|杜松掌|0||0||
|Scorchfur|焦毛|0||0||
|Plumwillow|梅柳|0||0||
|Fuzzball|毛球|1||0||
|Thundersnake|雷鬼蛇|1||0||
|Silverpath|银路|1||0||
|The Guardian Cats|守护猫|1|/2018/02/20/warriors-groups/#%E5%AE%88%E6%8A%A4%E7%8C%AB%E6%9A%82%E8%AF%91-The-Guardian-Cats|0|守护者|
|Fierce|暴烈|1||0||
|Shadowkit|小影|1||0||
|Pouncekit|小扑|1||0||
|Lightkit|小光|1||0||
|Fog|迷雾|1||0||
|Rippletail|涟尾|0||0||
|Berryheart|莓心|0||0||
|Cloverfoot|苜蓿足|0||0||
|Hollowkit|小空|1||0||
|Sunkit|小日|1||0||
|Rose|罗丝|1||0||
|Ajax|埃阿斯|1||0||
|Dash|疾奔|1||0||
|Blossomheart|梅花心|1||0||
|Plumkit|小李树|0||0|小梅|
|Plumpaw|梅爪|1||0|梅花爪|
|Mae|梅|1||0||
|Floyd|弗洛伊德|1||0||
|Scrap|残羹|1||0||
|Streak|条纹|1||0||
|Tuna|金枪鱼|1||0||
|Blaze|炽焰|1||0||
|Cinnamon|肉桂|1||0||
|Ant|蚂蚁|1||0||
|Sparrowtail|雀尾|0||0||
|The Tribe of Rushing Water|急水部落|0||0|TR|
|The Ancients|远古猫|0||0||
|Kittypets|宠物猫|0||0||
|Rogues|泼皮猫|0||0||
|Loners|独行猫|0||0|独行者|
|StarClan|星族|0||0|*C|
|The Warrior Code|武士守则|0||0||
|Dark Forest|黑森林|0||0||
|Place of No Stars|无星之地|0||0||
|Deputy|副族长|0|/2018/02/20/warriors-groups/#%E5%89%AF%E6%97%8F%E9%95%BF-Deputy|0|族长代表|
|Leader|族长|0|/2018/02/20/warriors-groups/#%E6%97%8F%E9%95%BF-Leader|0||
|Medicine Cat|巫医|0|/2018/02/20/warriors-groups/#%E5%B7%AB%E5%8C%BB|0||
|Queen|猫后|0|/2018/02/20/warriors-groups/#%E7%8C%AB%E5%90%8E-Queen|0||
|Elder|长老|0|/2018/02/20/warriors-groups/#%E9%95%BF%E8%80%81-Elder|0|老年猫|
|Apprentice|学徒|0|/2018/02/20/warriors-groups/#%E5%AD%A6%E5%BE%92|0||
|Kit|幼崽|0|/2018/02/20/warriors-groups/#%E5%B9%BC%E5%B4%BD|0||
|ThunderClan|雷族|0|/2018/02/20/warriors-groups/#%E9%9B%B7%E6%97%8F-ThunderClan|0|TC|
|ShadowClan|影族|0|/2018/02/20/warriors-groups/#%E5%BD%B1%E6%97%8F|0|SC|
|WindClan|风族|0|/2018/02/20/warriors-groups/#%E9%A3%8E%E6%97%8F-WindClan|0|WC|
|RiverClan|河族|0|/2018/02/20/warriors-groups/#%E6%B2%B3%E6%97%8F-RiverClan|0|RC|
|SkyClan|天族|0|2018/02/20/warriors-groups/#%E5%A4%A9%E6%97%8F|0|SkC|
|Gathering|森林大会|0|/2018/02/20/warriors-groups/#%E6%A3%AE%E6%9E%97%E5%A4%A7%E4%BC%9A|0||
|Daylight Warrior|日光武士|0|/2018/02/20/warriors-groups/#%E6%97%A5%E5%85%89%E6%AD%A6%E5%A3%AB-Daylight-Warrior|0||
|The Kin|至亲|0|/2018/02/20/warriors-groups/#%E8%87%B3%E4%BA%B2-The-Kin|0|同胞|
|Barley|巴利|0||0||
|BloodClan|血族|0|/2018/02/20/warriors-groups/#%E8%A1%80%E6%97%8F|0||
|Jingo|金戈|0||0||
|Moonstone|月亮石|0||0||
|Moonpool|月池|0||0||
|Skystar|天星|0||0|Clear Sky|
|Hawkpaw|鹰爪|1||0||
|Duskpaw|暮爪|1||0||
|Waspwhisker|黄蜂须|1||0||
|Cloudpaw|云爪|0||0||
|Pebblepaw|卵石爪|0||0||
|Ebonyclaw|乌木掌|1||0||
|Cloudmist|云雾|1||0||
|Billystorm|比利风|0||0||
|Betsy|贝特西|1||0||
|Sandynose|沙鼻|0||0||
|Rabbitleap|兔跃|1||0||
|Finpaw|鳍爪|1||0||
|Tinycloud|微云|0||0||
|Needletail|松针尾|0||0|针尾|
|Cloudtail|云尾|0||0||
|Sorrelstripe|栗条|0||0||
|Speckletail|纹尾|0||0||
|Nightcloud|夜云|0||0||
|Tree|阿树|1||0||
|Shadowstar|影星|0||0||
|Larksong|云雀鸣|0||0||
|Cherrytail|樱尾|0||0|樱桃尾|
|Fidgetpaw|烦躁爪|1||0||
|Frecklewish|斑愿|1||0||
|Zelda|赛尔达|0||0||
|Loki|罗基|0||0||
|Jasper|贾斯帕|1||0||
|Dawnpelt|曙皮|0||0||
|Sparkpelt|烁皮|0||0||
|Snowbush|雪丛|0||0||
|Sleekwhisker|滑须|0||0|光滑须|
|Yarrowleaf|蓍叶|0||0||
|Nettle|荨麻|0||0||
|Violetshine|紫罗兰光|1||0||
|Twigbranch|枝杈|1||0||
|Spikefur|尖毛|0||0||
|Velvet|绒毛|1||0||
|Softpaw|柔爪|1||0||
|The Great Storm|大风暴|0||0||
|Burdock Root|牛蒡根|0||0||
|Catmint|猫薄荷|0||0||
|Watermint|水薄荷|0||0||
|Stemkit|小茎|0||0||
|Shellkit|小贝壳|0||0||
|Eaglekit|小鹰|0||0||
|Stempaw|茎爪|1||0||
|Shellpaw|贝壳爪|1||0||
|Eaglepaw|鹰爪|1||0||
|Brindlewing|纹翅|1||0||
|Smokehaze|烟霭|1||0||
|Dewspring|露跃|1||0|露跳|
|Reedclaw|芦苇掌|1||0||
|Mediator|调解者|1||0||
|Bristlekit|小鬃|1||0||
|Thriftkit|小海石竹|1||0||
|Flipkit|小翻|1||0||
|Millie|米莉|0||0||
|Jacques|雅克|0||0||
|Susan|苏珊|0||0||
|Raven|渡鸦|0||0||
|Bramblestar's Storm|黑莓星的风暴|0||1||

hexo-minimal-wiki

经过三天的努力终于翻译、调试完毕,基本可以与原来的版本媲美。丢到gist上做版本控制。

configview raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
|Jayfeather|松鸦羽|0||m|Jf|
|Cinderpelt|炭毛|0|/2018/02/15/character-analysis/#%E7%82%AD%E6%AF%9B%E2%99%80-Cinderpelt|f|Cp|
|Hollyleaf|冬青叶|0|/2018/02/15/character-analysis/#%E5%86%AC%E9%9D%92%E5%8F%B6|f|Hl|
|Crowfeather's Trial|鸦羽的试炼|1|/2018/09/02/crowfeathers-trial-review/|b||
|Crowfeather|鸦羽|0|/2018/02/15/character-analysis/#%E9%B8%A6%E7%BE%BD|m|Cf|
|Rock|岩石|0||m||
|Leaf-fall|落叶季|0||o||
|Fallen Leaves|落叶|0||m|FL|
|Jay's Wing|松鸦翅|0||m|JW|
|Introduction to Algorithms|算法导论|0||b||
|Erin Hunter|艾琳·亨特|0||o||
|Half Moon|半月|0||f|HM|
|The Prophecies Begin|预言开始|0||b|TPB|
|The New Prophecy|新预言|0||b|TNP|
|Power of Three|三力量|0||b|P3|
|Omen of the Stars|星预言|0||b|OTS|
|A Vision of Shadows|暗影幻象|0||b|AVoS|
|Firestar's Quest|火星的探索|0||b|FQ|
|Cloudstar's Journey|云星的旅程|0||b|CJ|
|Tigerheart's Shadow|虎心的阴影|1|/2018/03/31/tigerhearts-shadow-review/|b|TS|
|Furled Bracken|卷蕨|0||m|FB|
|Stone Song|石歌|0||m||
|Firestar|火星|0||m|F*|
|Brambleclaw|黑莓掌|0||m|Bc|
|Squirrelpaw|鼠爪|0||f|S-|
|Tawnypelt's Clan|褐皮的族群|1||b||
|Tawnypelt|褐皮|0||f|Tp|
|Crowpaw|鸦爪|0||m|C-|
|Feathertail|羽尾|0||f|Ft|
|Stormfur|暴毛|0||m|Sf|
|Ravenpaw|乌爪|0||m|R-|
|Purdy|波弟|0||m||
|Leafpaw|叶爪|0||f|L-|
|Sharptooth|尖牙|0||o||
|Silverstream|银溪|0||f|Ss|
|Leafpool|叶池|0||f|Lp|
|The Long Dry|长旱日|1||o||
|Rusty|拉斯特|0||m||
|Spottedleaf|斑叶|0||f|Sl|
|Bluestar's Prophecy|蓝星的预言|0||b||
|Bluestar|蓝星|0||f|B*|
|Squirrelflight's Hope|松鼠飞的希望|1||b||
|Squirrelflight|松鼠飞|0||f|Sf|
|Yellowfang's Secret|黄牙的秘密|0||b||
|Yellowfang|黄牙|0||f|Yf|
|Lionblaze|狮焰|0||m|Lb|
|Skywatcher|护天|0||m||
|Dovewing|鸽翅|0||f|Dw|
|Ivypool|藤池|0||f||
|Flametail|焰尾|0||m|Ft|
|Cloud with Storm in Belly|暴肚云|0||f|孕育暴雨之云|
|Alderheart|赤杨心|0||m|桤心|
|Twigpaw|枝爪|0||f|T-|
|Violetpaw|紫罗兰爪|0||f|V-|
|The Ultimate Guide|终极指南|1||b|TUG|
|Tales from the Clans|族群的传说|1||b||
|Hawkwing's Journey|鹰翅的旅程|1|/2018/04/25/hawkwings-journey-review/|b|HJ|
|Into the Wild|呼唤野性|0||b||
|Fire and Ice|寒冰烈火|0||b||
|Forest of Secrets|疑云重重|0||b||
|Rising Storm|风起云涌|0||b||
|A Dangerous Path|险路惊魂|0||b||
|The Darkest Hour|力挽狂澜|0||b||
|Moonrise|新月危机|0||b||
|Midnight|午夜追踪|0||b||
|Journey to Midnight|午夜之旅|0|/2017/11/26/introduction-to-warriors/#%E5%8D%88%E5%A4%9C%E4%B9%8B%E6%97%85-Journey-to-Midnight|o||
|Midnight|午夜|0||f||
|Dawn of the Clans|族群黎明|0||b|DotC|
|Dawn|重现家园|0||b||
|Starlight|星光指路|0||b||
|Twilight|黄昏战争|0||b||
|Sunset|日落和平|0||b||
|The Sight|预视力量|0||b||
|Dark River|暗河汹涌|0||b||
|Outcast|驱逐之战|0||b||
|Eclipse|天蚀遮月|0||b||
|Long Shadows|暗夜长影|0||b||
|Sunrise|拂晓之光|0||b||
|The Fourth Apprentice|第四学徒|0||b||
|Fading Echoes|战声渐近|0||b||
|Night Whispers|暗夜密语|0||b||
|Sign of the Moon|月光印记|0||b||
|The Forgotten Warrior|武士归来|0||b||
|The Last Hope|群星之战|0|/2018/02/15/last-hope-review/|b|TLH|
|The Great Battle|群星之战|0||o||
|The Apprentice's Quest|学徒探索|0|/2018/02/15/apprentices-quest-review/|b|TAQ|
|Thunder and Shadow|雷影交加|0|/2018/02/25/thunder-and-shadow-review/|b|TAS|
|Shattered Sky|天空破碎|0|/2018/07/31/shattered-sky-review/|b|SS|
|Darkest Night|极夜无光|0|/2018/04/25/darkest-night-review/|b||
|Teller of the Pointed Stones|尖石巫师|0||m|Stoneteller|
|Bramblestar's Storm|黑莓星的风暴|0|/2018/07/31/bramblestars-storm-review/|b||
|Bramblestar|黑莓星|0||m|B*|
|Redtail|红尾|0||m||
|Lionheart|狮心|0||m||
|Tigerclaw|虎掌|0||m||
|Fireheart|火心|0||m||
|Whitestorm|白风|0||m||
|Graystripe|灰条|0||m||
|Brokenstar|断星|0||m||
|Nightstar|夜星|0||m||
|Tigerstar|虎星|0||m||
|Blackstar|黑星|0||m||
|Rowanstar|花楸星|0||m||
|Blackfoot|黑脚|0||m||
|Cinderfur|灰毛|0||m||
|Russetfur|黄毛|0||f||
|Rowanclaw|花楸掌|0||m||
|Crowfrost|乌霜|0||m||
|Runningnose|奔鼻|0||m||
|Littlecloud|小云|0||m||
|Puddleshine|洼光|0||m||
|Tallstar's Revenge|高星的复仇|0||b||
|Tallstar|高星|0||m||
|Onestar|一星|0||m||
|Harestar|兔星|0||m||
|Deadfoot|坏脚|0||m||
|Mudclaw|泥掌|0||m||
|Onewhisker|一根须|0||m||
|Ashfoot|灰脚|0||f||
|Harespring|兔泉|0||m||
|Barkface|青面|0||m||
|Kestrelflight|隼飞|0||m||
|Crookedstar's Promise|钩星的承诺|0||b||
|Crookedstar|钩星|0||m||
|Leopardstar|豹星|0||f||
|Mistystar|雾星|0||f||
|Oakheart|橡心|0||m||
|Leopardfur|豹毛|0||f||
|Stonefur|石毛|0||m||
|Mistyfoot|雾脚|0||f||
|Hawkfrost|鹰霜|0||m||
|Reedwhisker|芦苇须|0||m||
|Mudfur|泥毛|0||m||
|Mothwing|蛾翅|0||f||
|Willowshine|柳光|0||f||
|Leafstar|叶星|0||f||
|Sharpclaw|锐掌|0||m||
|Hawkwing|鹰翅|0||m||
|Echosong|回声之歌|0||f||
|Tigerheart|虎心|0||m||
|Alderpaw|赤杨爪|0||m||
|Sparkpaw|烁爪|0||f||
|Molewhisker|鼹鼠须|0||m||
|Cherryfall|樱桃落|0||f||
|Sandstorm|沙风|0||f||
|Needlepaw|松针爪|0||f|针爪|
|Darktail|暗尾|0||m||
|Mistfeather|雾羽|0||m||
|Violetkit|小紫罗兰|0||f||
|Twigkit|小枝|0||f||
|Sorreltail|栗尾|0||f||
|Cinderheart|炭心|0|/2018/02/15/character-analysis/#%E7%82%AD%E5%BF%83|f||
|Clawface|爪脸|0||m||
|Cinderpaw|炭爪|0||f||
|Brackenfur|蕨毛|0||m||
|Whitethroat|白喉|0||m||
|Cloudkit|云崽|0||m||
|Breezepelt|风皮|0||m||
|Leafpool's Wish|叶池的希望|1||b||
|Hollyleaf's Story|冬青叶的故事|0||b||
|Hollytuft|冬青簇|0||f||
|Redwillow|红柳|0||m||
|Ashfur|蜡毛|0||m||
|Briarlight|荆棘光|0||f||
||探索|0||i||
|Sol|日神|0||m|索|
|Snowtuft|雪绺|0||m|雪簇|
|Thistleclaw|蓟掌|0||m||
|Shredtail|细尾|0||m||
|Mousefur|鼠毛|0||f||
|Ferncloud|香薇云|0||f||
|River of Fire|烈焰焚河|0|/2018/06/09/river-of-fire-review/|b|烈火焚河|
|Moth Flight's Vision|蛾飞的幻象|1||b||
|Moth Flight|蛾飞|0||f|Mothflight|
|Spiresight|塔尖望|1||m||
|Spirekit|小塔尖|0||m||
|Spire|塔尖|1||m||
|Furzepelt|荆豆皮|0||f||
|Sleekpaw|滑爪|0||f||
|Rain|雨|0||m||
|Fernsong|香薇歌|0||m||
|Yellowcough|黄咳|0||d||
|Lungwort|肺草|0||h||
|Kinkfur|杂毛|0||f||
|Wasptail|黄蜂尾|0||f||
|Juniperclaw|杜松掌|0||m||
|Scorchfur|焦毛|0||m||
|Plumwillow|梅柳|0||f||
|Fuzzball|毛球|1||m||
|Thundersnake|雷鬼蛇|1||o||
|Silverpath|银路|1||o||
|The Guardian Cats|守护猫|1|/2018/02/20/warriors-groups/#%E5%AE%88%E6%8A%A4%E7%8C%AB%E6%9A%82%E8%AF%91-The-Guardian-Cats|g|守护者|
|Fierce|暴烈|1||f||
|Shadowkit|小影|0||m||
|Pouncekit|小扑|0||f||
|Lightkit|小光|0||f||
|Fog|迷雾|1||f||
|Rippletail|涟尾|0||m||
|Berryheart|莓心|0||f||
|Cloverfoot|苜蓿足|0||f||
|Hollowkit|小空|1||m||
|Sunkit|小日|0||f||
|Rose|罗丝|1||f||
|Ajax|埃阿斯|1||m||
|Dash|疾奔|1||m||
|Blossomheart|梅花心|0||f||
|Blossomfall|梅花落|0||f||
|Plumkit|小李树|0||f|小梅|
|Plumpaw|梅爪|1||f|梅花爪|
|Mae|梅|1||f||
|Floyd|弗洛伊德|1||m||
|Scrap|残羹|1||m||
|Streak|条纹|1||m||
|Tuna|金枪鱼|1||m||
|Blaze|炽焰|1||m||
|Cinnamon|肉桂|1||f||
|Ant|蚂蚁|1||m||
|Sparrowtail|雀尾|0||m||
|The Tribe of Rushing Water|急水部落|0||g|TR|
|The Ancients|远古猫|0||g||
|Kittypets|宠物猫|0||g||
|Rogues|泼皮猫|0||g||
|Loners|独行猫|0||g|独行者|
|StarClan|星族|0||g|*C|
|The Warrior Code|武士守则|0||o||
|Dark Forest|黑森林|0||g||
|Place of No Stars|无星之地|0||g||
|Deputy|副族长|0|/2018/02/20/warriors-groups/#%E5%89%AF%E6%97%8F%E9%95%BF-Deputy|o|族长代表|
|Leader|族长|0|/2018/02/20/warriors-groups/#%E6%97%8F%E9%95%BF-Leader|o||
|Medicine Cat|巫医|0|/2018/02/20/warriors-groups/#%E5%B7%AB%E5%8C%BB|o||
|Queen|猫后|0|/2018/02/20/warriors-groups/#%E7%8C%AB%E5%90%8E-Queen|o||
|Elder|长老|0|/2018/02/20/warriors-groups/#%E9%95%BF%E8%80%81-Elder|o|老年猫|
|Apprentice|学徒|0|/2018/02/20/warriors-groups/#%E5%AD%A6%E5%BE%92|o||
|Kit|幼崽|0|/2018/02/20/warriors-groups/#%E5%B9%BC%E5%B4%BD|o||
|ThunderClan|雷族|0|/2018/02/20/warriors-groups/#%E9%9B%B7%E6%97%8F-ThunderClan|g|TC|
|ShadowClan|影族|0|/2018/02/20/warriors-groups/#%E5%BD%B1%E6%97%8F|g|SC|
|WindClan|风族|0|/2018/02/20/warriors-groups/#%E9%A3%8E%E6%97%8F-WindClan|g|WC|
|RiverClan|河族|0|/2018/02/20/warriors-groups/#%E6%B2%B3%E6%97%8F-RiverClan|g|RC|
|SkyClan's Destiny|天族外传|0||b|天族的命运|
|SkyClan|天族|0|/2018/02/20/warriors-groups/#%E5%A4%A9%E6%97%8F|g|SkC|
|Gathering|森林大会|0|/2018/02/20/warriors-groups/#%E6%A3%AE%E6%9E%97%E5%A4%A7%E4%BC%9A|o||
|Daylight Warrior|日光武士|0|/2018/02/20/warriors-groups/#%E6%97%A5%E5%85%89%E6%AD%A6%E5%A3%AB-Daylight-Warrior|o||
|The Kin|至亲|0|/2018/02/20/warriors-groups/#%E8%87%B3%E4%BA%B2-The-Kin|g|同胞|
|Barley|巴利|0||m||
|BloodClan|血族|0|/2018/02/20/warriors-groups/#%E8%A1%80%E6%97%8F|g||
|Jingo|金戈|0||f||
|Moonstone|月亮石|0||o||
|Moonpool|月池|0||o||
|Skystar|天星|0||m|Clear Sky|
|Hawkpaw|鹰爪|1||m||
|Duskpaw|暮爪|1||m||
|Waspwhisker|黄蜂须|0||m||
|Cloudpaw|云爪|0||f||
|Pebblepaw|卵石爪|0||f||
|Ebonyclaw|乌木掌|0||f||
|Cloudmist|云雾|1||f||
|Billystorm|比利风|0||m||
|Betsy|贝特西|1||f||
|Sandynose|砂鼻|0||m|沙鼻|
|Rabbitleap|兔跃|1||m||
|Finpaw|鳍爪|0||m||
|Tinycloud|微云|0||f||
|Needletail|松针尾|0||f|针尾|
|Cloudtail|云尾|0||m||
|Sorrelstripe|栗条|0||f||
|Speckletail|纹尾|0||f||
|Nightcloud|夜云|0||f||
|Tree|阿树|0||m||
|Shadowstar|影星|0||f||
|Larksong|云雀鸣|0||m||
|Cherrytail|樱尾|0||f|樱桃尾|
|Fidgetpaw|躁爪|0||m|烦躁爪|
|Frecklewish|斑愿|0||f||
|Zelda|赛尔达|0||f||
|Loki|罗基|0||m||
|Jasper|贾斯帕|1||m||
|Dawnpelt|曙皮|0||f||
|Sparkpelt|烁皮|0||f||
|Snowbush|雪丛|0||m||
|Sleekwhisker|滑须|0||f|光滑须|
|Yarrowleaf|蓍叶|0||f||
|Nettlesplash|荨麻斑|0||m||
|Nettle|荨麻|0||m||
|Violetshine|紫罗兰光|0||f||
|Twigbranch|桠枝|0||f|枝杈|
|Spikefur|尖毛|0||m||
|Velvet|绒毛|1||f||
|Softpaw|柔爪|0||f||
|The Great Storm|大风暴|0||o||
|Burdock Root|牛蒡根|0||h||
|Catmint|猫薄荷|0||h||
|Watermint|水薄荷|0||h||
|Stemkit|小茎|0||m||
|Shellkit|小贝壳|0||f||
|Eaglekit|小鹰|0||f||
|Stempaw|茎爪|1||m||
|Shellpaw|贝壳爪|1||f||
|Eaglepaw|鹰爪|1||f||
|Brindlewing|纹翅|0||f||
|Smokehaze|烟霭|0||f||
|Dewspring|露泉|0||m|露跃|
|Reedclaw|芦苇掌|0||f||
|Mediator|调解者|0||o||
|Bristlekit|小鬃|0||f||
|Thriftkit|小海石竹|0||f||
|Flipkit|小翻|0||m||
|Millie|米莉|0||f||
|Jacques|雅克|0||m||
|Susan|苏珊|0||f||
|Raven|渡鸦|0||f||
|Finleap|鳍跃|0||m||
|Slatefur|石板毛|0||m||
|Birchfall|桦落|0||m||
|Buster|巴斯特|1||m||
|Thyme|百里香|0||h||
|Half-Moon Meeting|月半集会|0|/2018/02/20/warriors-groups/#%E6%9C%88%E5%8D%8A%E9%9B%86%E4%BC%9A-Half-Moon-Meeting|o||
|Secrets of the Clans|族群的秘密|0||b||
|Cats of the Clans|族群的猫|0||b||
|Code of the Clans|族群的守则|0||b||
|Battles of the Clans|族群的战争|0||b||
|Pebbleshine|卵石光|0||f||
|Scourge|长鞭|0||m||
|Bone|壮骨|0||m||
|Honeytail|蜜尾|1||f||
|Toad|蟾蜍|1||m||
|Snipkit|小喀嚓|1||f||
|Harveymoon|哈维月|0||m||
|Mintfur|薄荷毛|0||f||
|Curlypaw|卷爪|1||f||
|Dodge|道奇|0||m||
|Stick|斯迪克|0||m||
|Shorty|短尾|0||m||
|Cora|科拉|0||f||
|Harley|哈雷|0||m||
|Max|麦克斯|1||m||
|Dewkit|小露珠|1||m||
|Finkit|小鳍|1||m||
|Reedkit|小芦苇|1||f||
|Bellaleaf|贝拉叶|0||f||
|Harrybrook|哈利溪|0||m||
|Parsleyseed|西芹籽|1||m||
|Clovertail|苜蓿尾|0||f||
|Birdwing|鸟翅|1||f||
|Macgyver|麦吉弗|0||m||
|Rileypool|莱利池|1||m||
|Borage|琉璃苣|0||h||
|Firefern|火蕨|1||f||
|Comfrey|紫草|0||h|聚合草|
|Fallowfern|闲蕨|0||f||
|Newleaf|新叶季|0||o||
|Greenleaf|绿叶季|0||o||
|Leaf-bare|秃叶季|0||o||
||线索|0||i||
|Cloudstar|云星|0||m||
|Greencough|绿咳|0||d||
|Toadstep|蟾步|0||m||
|Icecloud|冰云|0||f||
|Hazeltail|榛尾|0||f||
|Berrynose|莓鼻|0||m||
|Rosepetal|玫瑰瓣|0||f||
|Petalfur|花瓣毛|0||f||
|Stick of the Fallen|陨落者木棍|1||o||
|Dustpelt|尘毛|0||m||
|Minty|明蒂|1||f||
|Seedpaw|种爪|1||f||
|Lilypaw|百合爪|1||f||
|Whitecough|白咳|0||d||
|Frankie|弗兰基|1||m||
|Jessy|杰西|1||f||
|Mousewhisker|鼠须|0||m||
|Mapleshade|枫荫|0||f||
|Heathertail|石楠尾|0||f||
|Honeyfern|蜜蕨|0||f||
|The Early Settlers|早期定居者|0||g||
|Sharpclaw|利爪|0||o||
|Softpaw|柔掌|1||o||
|The Tribe of Endless Hunting|杀无尽部落|0||g||
|Prey-hunter|狩猎猫|0||o||
|Cave-guard|护穴猫|0||o||
|Benny|本尼|1||m||
|Stormpaw|暴爪|1||m||
|Stormcloud|暴云|0||m||
|Lilyheart|百合心|0||f||
|The Raging Storm|风暴来袭|0|/2018/12/16/the-raging-storm-review/|b|风暴肆虐|
|The Broken Code|破灭守则|1||b||
|Lost Stars|迷失群星|1|/2019/08/05/lost-stars-review/|b||
|Shadowpaw|影爪|1||m||
|Bristlepaw|鬃爪|1||f||
|Bristlefrost|鬃霜|1||f||
|Rootpaw|根爪|1||m||
|Codebreaker|守则破坏者|1||o||
|Stemleaf|茎叶|1||m||
|Spotfur|斑毛|1||f||
|Bumblestripe|黄蜂条|0||m||
|Spireclaw|塔尖掌|1||m||
|Hollowspring|空泉|1||m||
|Sunbeam|日束|1||f||
|Sparrowpelt|雀毛|0||m||
|Larkwing|云雀翅|0||f||
|Mallownose|锦葵鼻|0||m||
|Curlfeather|卷羽|0||f||
|Mosspelt|藓毛|0||f||
|Beetlewhisker|甲虫须|0||m||
|Fidgetflake|躁片|0||m||
|Ambermoon|琥珀月|0||f||
|Whitetail|白尾|0||f||
|rockslide|滑坡|0||o|泥石流|
|The Sisters|姐妹会|1||g||

已知问题

  • <!-- ignore --> is deprecated. 其实是我懒得修。请使用类似^Crowfeather^的转义。