-
-
Notifications
You must be signed in to change notification settings - Fork 23
/
moran.schema.yaml
413 lines (374 loc) · 12.6 KB
/
moran.schema.yaml
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
409
410
411
412
413
schema:
schema_id: moran
name: 魔然
version: "20241105"
author:
- 自然碼發明人:周志農
- 方案製作:ksqsf
description: |
爲傳承字設計的自然碼及輔助碼智能整句輸入方案。
dependencies:
- moran_fixed
- moran_sentence
- moran_reverse
- moran_charset
- moran_english
#- moran_japanese # 日語混輸
- stroke
- tiger
- cangjie5
- bopomofo
- zrlf
switches:
- name: ascii_mode
states: [ 中文, 西文 ]
- name: full_shape
states: [ 半角, 全角 ]
- name: simplification
states: [ 漢字, 汉字 ]
- name: ascii_punct
states: [ 。,, ., ]
- name: extended_charset
states: [ 通用, 增廣 ]
- name: inflexible
states: [ 動詞, 固詞 ] # 「固詞」表示「固頂詞」
# 默認情況下,輸入 4 碼時,會禁止碼表輸出(「動詞」模式)。
# 這是因爲碼表最大碼長爲 4,可能會產生較低頻的多字詞,覆蓋過用戶自造的常用詞語。
# 當固詞模式啓動後,輸入 4 碼時會優先輸出碼表中的二字詞,這些輸出帶有「⚡️」標記。
- name: emoji
states: [ 🈚, 🈶 ]
- name: chaifen
states: [ 不拆, 扌斥 ]
- name: pinyinhint
states: [ 🔇, 🔊 ]
- name: unicode_comment
states: [ U關, U開 ]
- options: [ std_opencc, std_tw, std_hk, std_dzing ]
reset: 0
states: [ 通, 臺, 港, 寍 ]
engine:
processors:
- key_binder
- lua_processor@*moran_pin*pin_processor
- lua_processor@*moran_semicolon_processor
- ascii_composer
- recognizer
- speller
- punctuator
- lua_processor@*moran_launcher # 輸入 omorj 或 ogrwh 後回車打開魔然官網
- selector
- navigator
- express_editor
segmentors:
- ascii_segmentor
- matcher
- matcher@recognizer_secondary
- affix_segmentor@japanese_o
- abc_segmentor
- punct_segmentor
- fallback_segmentor
translators:
- punct_translator
- reverse_lookup_translator@reverse_tick
- reverse_lookup_translator@reverse_universal
- reverse_lookup_translator@reverse_tiger
- reverse_lookup_translator@reverse_stroke
- reverse_lookup_translator@reverse_cangjie5
- reverse_lookup_translator@reverse_zrlf
- reverse_lookup_translator@reverse_bopomofo
- table_translator@custom_phrase # 自定義短語
- table_translator@english # 英語混輸
#- table_translator@japanese_o # 日語引導輸入
#- table_translator@japanese # 日語混輸
- lua_translator@*moran_express_translator@with_reorder # 翻譯器
- lua_translator@*moran_shijian # 日期orq 節氣ojq 星期oxq 時間osj
- lua_translator@*moran_number # 數字轉大寫, 大寫S引導, 如 S123
- lua_translator@*moran_unicode # Unicode輸入, 大寫U引導, 如 U9b54
- lua_translator@*moran_pin*panacea_translator
- history_translator@quick_repeat
filters:
- lua_filter@*moran_charset_filter
- lua_filter@*moran_pin*pin_filter
- lua_filter@*moran_reorder_filter
- lua_filter@*moran_quick_code_hint
- lua_filter@*moran_aux_hint
- lua_filter@*moran_ijrq_filter
- simplifier@emoji
- simplifier@chaifen
- simplifier@pinyinhint
- simplifier@std_hk
- simplifier@std_tw
- simplifier@std_dzing
- simplifier@simplifier
- lua_filter@*moran_charset_comment_filter # Unicode 區位提示
- lua_filter@*moran_unicode_display_filter # Unicode 編碼提示
- uniquifier
speller:
alphabet: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/;
delimiter: " '"
auto_select: true
auto_select_pattern: ^;(\w+|;)
algebra:
__patch:
- moran:/algebra/user_force_top?
- moran:/algebra/user_sentence_top?
- moran:/algebra/generate_code
- moran:/algebra/user_sentence_bottom?
- moran:/algebra/user_force_bottom?
translator: # 整句輸入模式設置,在 top_translator 中被調用
dictionary: moran.extended
prism: moran
initial_quality: 5
max_homophones: 7
spelling_hints: 3
contextual_suggestions: true
preedit_format:
- xform/([a-z][a-z][a-z][a-z])o/$1°/
fixed: # 固頂輸入模式設置,在 top_translator 中被調用
dictionary: moran_fixed
initial_quality: 100
enable_completion: false
enable_sentence: false
enable_user_dict: false
enable_encoder: false
encode_commit_history: true
custom_phrase: # 自定義短語
dictionary: ""
user_dict: moran_custom_phrases
db_class: stabledb
enable_completion: false
enable_sentence: false
initial_quality: 1000
english:
# tag: english # librime>=0.12 方可取消註釋
dictionary: moran_english
prism: moran_english
enable_completion: true
enable_sentence: false
enable_user_dict: true
initial_quality: 1
enable_encoder: false
encode_commit_history: false
comment_format:
- xform/.*//
japanese:
dictionary: moran_japanese
enable_completion: false
enable_sentence: true
enable_user_dict: true
initial_quality: 0
enable_encoder: false
encode_commit_history: false
comment_format:
- xform/.*//
japanese_o:
__include: japanese
tag: japanese_o
prefix: ojp
suffix: /jp
tips: "〔日本語〕"
enable_completion: true
quick_repeat: # 快速重複上屏
input: ";d"
size: 1
initial_quality: 0
simplifier:
option_name: simplification
opencc_config: moran_t2s.json
tags: [abc]
chaifen:
option_name: chaifen
opencc_config: moran_chaifen.json
tips: char
show_in_comment: true
comment_form:
- "xform/-/ /"
pinyinhint:
option_name: pinyinhint
opencc_config: moran_pinyinhint.json
tips: char
show_in_comment: true
emoji:
opencc_config: moran_emoji.json
option_name: emoji
tips: none
tags: [has_emoji]
std_hk:
opencc_config: t2hk.json
option_name: std_hk
#tips: all
tags: [abc]
std_tw:
opencc_config: t2tw.json
option_name: std_tw
#tips: all
tags: [abc]
std_dzing:
opencc_config: moran_dzing.json
option_name: std_dzing
tips: all
tags: [abc]
reverse_format:
comment_format:
- xform/(\w\w);(\w\w)/$1[$2]/
preedit_format:
- xform/^o(lf|bh|cj|vy|hm)//
reverse_tiger:
tag: reverse_tiger
dictionary: tiger
enable_completion: true
prefix: "ohm"
tips: 〔虎碼〕
__include: reverse_format
reverse_universal:
tag: reverse_universal
dictionary: moran.chars
tips: 〔通配〕
__include: reverse_format
reverse_stroke:
tag: reverse_stroke
dictionary: stroke
prefix: "obh"
enable_completion: true
tips: 〔橫h豎s撇p捺n折z〕
__include: reverse_format
reverse_cangjie5:
tag: reverse_cangjie5
dictionary: cangjie5
prefix: "ocj"
enable_completion: true
tips: 〔倉頡五代〕
__include: reverse_format
reverse_zrlf:
tag: reverse_zrlf
dictionary: zrlf
prefix: "olf"
enable_completion: true
tips: 〔兩分〕
__include: reverse_format
reverse_bopomofo:
tag: reverse_bopomofo
dictionary: terra_pinyin
prism: bopomofo
prefix: "ovy"
enable_completion: true
tips: 〔注音符號〕
comment_format:
- xform/(\w\w);(\w\w)/$1[$2]/
preedit_format:
- xform/^o(lf|bh|cj|vy)//
- "xlit|1qaz2wsxedcrfv5tgbyhnujm8ik,9ol.0p;/- 6347'|ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄧㄨㄩㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦˉˊˇˋ˙ |"
reverse_tick:
__include: reverse_tiger
tag: reverse_tick
prefix: "`"
reverse_lookup:
extra_tags:
- reverse_tick
- reverse_universal
- reverse_tiger
- reverse_stroke
- reverse_cangjie5
- reverse_zrlf
- reverse_bopomofo
punctuator:
import_preset: symbols
key_binder:
import_preset: default
custom_bindings:
__append:
# 在這裏添加只在本方案中生效的按鍵綁定
bindings:
__patch:
- :/key_binder/custom_bindings?
- moran:/key_bindings/moran_tab
- moran:/key_bindings/moran_switches
- moran:/key_bindings/moran_keypad
# 大寫字母追加輔助碼到上一音節
# 該功能可使用 Shift-tab 替代
# - moran:/key_bindings/moran_capital_for_last_syllable
recognizer:
import_preset: default
patterns:
unicode: "^U[a-fA-F0-9]+"
punct: '^/([0-9]0?|[A-Za-z]+)$'
# 反查
reverse_universal: "(^(`[a-z`]+))|(^([a-z]{2}(`[a-z`]?|[a-z`]`)))"
reverse_tick: "(^`$)|(^`[a-zA-Z]+$)"
reverse_tiger: "^ohm[a-z]+$"
reverse_stroke: "^obh[A-Za-z]*$"
reverse_cangjie5: "^ocj[A-Za-z]*$"
reverse_zrlf: "^olf[A-Za-z]*$"
reverse_bopomofo: '^ovy[A-Za-z0-9,.;/\-]*$'
# CAVEAT: 排除 ^; 避免 ;d 無法自動上屏
# CAVEAT: ^o 只保留 ^ou 和 ^o$,避免反查被干擾
has_emoji: '(^[a-np-z][a-z/]*$)|(^[a-z]$)|(^ou[a-z/]*$)'
# ojp 引導日語輸入
japanese_o: '(^ojp[a-z]*$)'
recognizer_secondary:
patterns:
# {4} 表示輸入長度達到 4 後開始輸出英語
english: '^[A-Za-z]{4}[A-Za-z]*'
moran:
# 簡快碼提示符
# 修改爲 "" 可取消提示符
# 建議在熟悉簡碼後再取消
quick_code_indicator: "⚡️"
# 詞輔功能
# 當輸入二字或三字詞時,允許詞末輸入 *一位* 輔助碼篩選詞語。
# 例如輸入 lmjxz 得到「連接」,輸入 lmjxj 得到「鏈接」。
# 但是與字輔輸入方法不同,詞輔在生效後 *不能* 在句末繼續輸入形成整
# 句——這個功能僅用於「詞語篩選」。因此,這個功能僅適合習慣於以詞語
# 爲單位輸入的用戶,因此默認是關閉的。
#
# 開啓後,詞輔篩選的詞語會帶有輔助碼提示,例如「鏈接」後會有「jf」,
# 意思是輸入 j *或* f 都可以定位到這個詞,而不是說要同時輸入 jf 兩個碼
# (相反,同時輸入 jf 兩碼後反而無法得到該選項)。
enable_word_filter: false
# 「出簡讓全」相關設置
# 當一個字具有簡碼時,打其全碼(不論是 yyxx 還是 yyxxo)都會導致該
# 字讓出首位,而被推遲到後位。
ijrq:
enable: true # 是否啓用單字的出簡讓全?
#defer: 5 # 延遲多少位?若不設置该项,或值小於等於 0,則推遲到第二頁的首選
show_hint: true # 若讓全,則提示簡碼打法
# 詞語級「讓全」,對二、三、四字詞有效
# 例:假設 lmjx 的輸出是 1.連接 2.鏈接
# 想要「鏈接」時,增加 f ,但是由於這兩個候選仍然共享 lmjxf 編碼,因此順序不變。
# 若開啓詞語級讓全,則 lmjxf 的首選會被調整爲「鏈接」
enable_word: false
# 單字輔助碼提示
# 注:會顯示出所有可能的輔助碼,且不顯示拆分
# 建議使用 Ctrl+i 切換輔助碼拆分提示功能
enable_aux_hint: false
# 簡快碼提示(包括字和詞)
# 例如 輸入 yy te er 英特爾 會提示「⚡yte」,即使用 yte 可以打出這個詞
enable_quick_code_hint: false
# 輸入四碼時,如果簡碼碼表中含有對應條目,則放置在第二選項。
show_chars_anyway: false # 是否輸出簡碼碼表單字,例:輸入 jwrg 時,次選爲「佳」
show_words_anyway: true # 是否輸出簡碼碼表詞語,例:輸入 lmsd 時,次選爲「兩面三刀」
# 「置頂」功能相關設置
# 輸入時通過快捷鍵 Ctrl+t 可以將高亮顯示的候選置頂,被置頂的候選位置固定,不再參與調頻
# 對同一輸入碼最高支持8個置頂詞,當嘗試置頂第9個詞時,最早被置頂的詞將會失效
pin:
# 「置頂」功能開關
enable: true
# 置頂詞提示符
indicator: "📌"
# 「萬靈藥」加詞功能
# 通過輸入 「編碼A」//「編碼B」 實現造詞功能,編碼A是這個新詞的新編碼 編碼B是目前可以打出該詞的編碼
# 例如 輸入 tnfb 不能得到「頭腦風暴」這一候選, 此時我們可以輸入 tnfb//tbnkfgbk 按下空格 讓「頭腦風暴」候選上屏,上屏的詞會被加入用戶詞庫中,之後我們可以用 tnfb 來得到「頭腦風暴」這一候選了
# 造出的詞與置頂詞是等同的
panacea:
# 加詞狀態提示
prompt: "〔加詞〕"
# 加詞中綴引導符
infix: "//"
# 自由加詞模式開關,開啓此模式後,輸入「編碼A」//並空格上屏後會進入加詞狀態,此時可以連續地、不受束縛地輸入,再次按下x//空格退出加詞狀態,期間輸入的內容將會被記錄爲「編碼A」的新置頂詞
# 此模式適合造一些混合詞,如「A4紙」、「KOS-MOS」等
freestyle: false
# 默認啓用語言模型
__include: moran:/octagram/enable_for_sentence
# 若要禁用,可直接刪掉上面的 __include,或在 custom 文件中寫入:
# patch:
# __include: moran:/octagram/disable