Last active
June 11, 2019 00:36
-
-
Save dohyunkim/85f0a548368239021fe43d2da9492135 to your computer and use it in GitHub Desktop.
xindex korean config. v1. Archived. See https://gist.github.com/dohyunkim/2c779cce17cc5c2cca19604d1d7276ed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --[[ | |
| -- xindex-ko.lua | |
| -- written by Dohyun Kim | |
| -- license: LPPL | |
| -- reference: KS X 1026-1:2007 | |
| -- | |
| -- usage: xindex -c ko -l ko file.idx | |
| -- | |
| -- todo: hanja (?) | |
| --]] | |
| local jamo_sort_order = { | |
| [0x1100] = { 0x1100, 0 }, | |
| [0x1101] = { 0x1100, 1 }, | |
| [0x1102] = { 0x1102, 0 }, | |
| [0x1103] = { 0x1103, 0 }, | |
| [0x1104] = { 0x1103, 2 }, | |
| [0x1105] = { 0x1105, 0 }, | |
| [0x1106] = { 0x1106, 0 }, | |
| [0x1107] = { 0x1107, 0 }, | |
| [0x1108] = { 0x1107, 7 }, | |
| [0x1109] = { 0x1109, 0 }, | |
| [0x110A] = { 0x1109, 9 }, | |
| [0x110B] = { 0x110B, 0 }, | |
| [0x110C] = { 0x110C, 0 }, | |
| [0x110D] = { 0x110C, 4 }, | |
| [0x110E] = { 0x110E, 0 }, | |
| [0x110F] = { 0x110F, 0 }, | |
| [0x1110] = { 0x1110, 0 }, | |
| [0x1111] = { 0x1111, 0 }, | |
| [0x1112] = { 0x1112, 0 }, | |
| [0x1113] = { 0x1102, 1 }, | |
| [0x1114] = { 0x1102, 2 }, | |
| [0x1115] = { 0x1102, 3 }, | |
| [0x1116] = { 0x1102, 5 }, | |
| [0x1117] = { 0x1103, 1 }, | |
| [0x1118] = { 0x1105, 5 }, | |
| [0x1119] = { 0x1105, 9 }, | |
| [0x111A] = { 0x1105, 30 }, | |
| [0x111B] = { 0x1105, 33 }, | |
| [0x111C] = { 0x1106, 7 }, | |
| [0x111D] = { 0x1106, 15 }, | |
| [0x111E] = { 0x1107, 1 }, | |
| [0x111F] = { 0x1107, 2 }, | |
| [0x1120] = { 0x1107, 3 }, | |
| [0x1121] = { 0x1107, 8 }, | |
| [0x1122] = { 0x1107, 9 }, | |
| [0x1123] = { 0x1107, 10 }, | |
| [0x1124] = { 0x1107, 11 }, | |
| [0x1125] = { 0x1107, 12 }, | |
| [0x1126] = { 0x1107, 13 }, | |
| [0x1127] = { 0x1107, 15 }, | |
| [0x1128] = { 0x1107, 16 }, | |
| [0x1129] = { 0x1107, 18 }, | |
| [0x112A] = { 0x1107, 19 }, | |
| [0x112B] = { 0x1107, 21 }, | |
| [0x112C] = { 0x1107, 22 }, | |
| [0x112D] = { 0x1109, 1 }, | |
| [0x112E] = { 0x1109, 2 }, | |
| [0x112F] = { 0x1109, 3 }, | |
| [0x1130] = { 0x1109, 4 }, | |
| [0x1131] = { 0x1109, 5 }, | |
| [0x1132] = { 0x1109, 6 }, | |
| [0x1133] = { 0x1109, 7 }, | |
| [0x1134] = { 0x1109, 13 }, | |
| [0x1135] = { 0x1109, 15 }, | |
| [0x1136] = { 0x1109, 16 }, | |
| [0x1137] = { 0x1109, 17 }, | |
| [0x1138] = { 0x1109, 18 }, | |
| [0x1139] = { 0x1109, 19 }, | |
| [0x113A] = { 0x1109, 20 }, | |
| [0x113B] = { 0x1109, 21 }, | |
| [0x113C] = { 0x1109, 22 }, | |
| [0x113D] = { 0x1109, 23 }, | |
| [0x113E] = { 0x1109, 24 }, | |
| [0x113F] = { 0x1109, 25 }, | |
| [0x1140] = { 0x1109, 26 }, | |
| [0x1141] = { 0x110B, 1 }, | |
| [0x1142] = { 0x110B, 2 }, | |
| [0x1143] = { 0x110B, 4 }, | |
| [0x1144] = { 0x110B, 5 }, | |
| [0x1145] = { 0x110B, 6 }, | |
| [0x1146] = { 0x110B, 7 }, | |
| [0x1147] = { 0x110B, 8 }, | |
| [0x1148] = { 0x110B, 9 }, | |
| [0x1149] = { 0x110B, 10 }, | |
| [0x114A] = { 0x110B, 11 }, | |
| [0x114B] = { 0x110B, 12 }, | |
| [0x114C] = { 0x110B, 14 }, | |
| [0x114D] = { 0x110C, 3 }, | |
| [0x114E] = { 0x110C, 6 }, | |
| [0x114F] = { 0x110C, 7 }, | |
| [0x1150] = { 0x110C, 8 }, | |
| [0x1151] = { 0x110C, 9 }, | |
| [0x1152] = { 0x110E, 1 }, | |
| [0x1153] = { 0x110E, 2 }, | |
| [0x1154] = { 0x110E, 3 }, | |
| [0x1155] = { 0x110E, 4 }, | |
| [0x1156] = { 0x1111, 1 }, | |
| [0x1157] = { 0x1111, 5 }, | |
| [0x1158] = { 0x1112, 6 }, | |
| [0x1159] = { 0x1112, 7 }, | |
| [0x115A] = { 0x1100, 3 }, | |
| [0x115B] = { 0x1102, 6 }, | |
| [0x115C] = { 0x1102, 8 }, | |
| [0x115D] = { 0x1102, 11 }, | |
| [0x115E] = { 0x1103, 4 }, | |
| [0x115F] = { 0x115F, 0 }, | |
| [0x1160] = { 0x1160, 0 }, | |
| [0x1161] = { 0x1161, 0 }, | |
| [0x1162] = { 0x1161, 4 }, | |
| [0x1163] = { 0x1163, 0 }, | |
| [0x1164] = { 0x1163, 4 }, | |
| [0x1165] = { 0x1165, 0 }, | |
| [0x1166] = { 0x1165, 4 }, | |
| [0x1167] = { 0x1167, 0 }, | |
| [0x1168] = { 0x1167, 4 }, | |
| [0x1169] = { 0x1169, 0 }, | |
| [0x116A] = { 0x1169, 1 }, | |
| [0x116B] = { 0x1169, 2 }, | |
| [0x116C] = { 0x1169, 12 }, | |
| [0x116D] = { 0x116D, 0 }, | |
| [0x116E] = { 0x116E, 0 }, | |
| [0x116F] = { 0x116E, 3 }, | |
| [0x1170] = { 0x116E, 5 }, | |
| [0x1171] = { 0x116E, 9 }, | |
| [0x1172] = { 0x1172, 0 }, | |
| [0x1173] = { 0x1173, 0 }, | |
| [0x1174] = { 0x1173, 7 }, | |
| [0x1175] = { 0x1175, 0 }, | |
| [0x1176] = { 0x1161, 1 }, | |
| [0x1177] = { 0x1161, 2 }, | |
| [0x1178] = { 0x1163, 1 }, | |
| [0x1179] = { 0x1163, 2 }, | |
| [0x117A] = { 0x1165, 1 }, | |
| [0x117B] = { 0x1165, 2 }, | |
| [0x117C] = { 0x1165, 3 }, | |
| [0x117D] = { 0x1167, 2 }, | |
| [0x117E] = { 0x1167, 3 }, | |
| [0x117F] = { 0x1169, 5 }, | |
| [0x1180] = { 0x1169, 6 }, | |
| [0x1181] = { 0x1169, 8 }, | |
| [0x1182] = { 0x1169, 9 }, | |
| [0x1183] = { 0x1169, 11 }, | |
| [0x1184] = { 0x116D, 3 }, | |
| [0x1185] = { 0x116D, 4 }, | |
| [0x1186] = { 0x116D, 6 }, | |
| [0x1187] = { 0x116D, 7 }, | |
| [0x1188] = { 0x116D, 8 }, | |
| [0x1189] = { 0x116E, 1 }, | |
| [0x118A] = { 0x116E, 2 }, | |
| [0x118B] = { 0x116E, 4 }, | |
| [0x118C] = { 0x116E, 7 }, | |
| [0x118D] = { 0x116E, 8 }, | |
| [0x118E] = { 0x1172, 1 }, | |
| [0x118F] = { 0x1172, 3 }, | |
| [0x1190] = { 0x1172, 4 }, | |
| [0x1191] = { 0x1172, 5 }, | |
| [0x1192] = { 0x1172, 6 }, | |
| [0x1193] = { 0x1172, 8 }, | |
| [0x1194] = { 0x1172, 9 }, | |
| [0x1195] = { 0x1173, 5 }, | |
| [0x1196] = { 0x1173, 6 }, | |
| [0x1197] = { 0x1173, 8 }, | |
| [0x1198] = { 0x1175, 1 }, | |
| [0x1199] = { 0x1175, 2 }, | |
| [0x119A] = { 0x1175, 7 }, | |
| [0x119B] = { 0x1175, 10 }, | |
| [0x119C] = { 0x1175, 12 }, | |
| [0x119D] = { 0x1175, 14 }, | |
| [0x119E] = { 0x119E, 0 }, | |
| [0x119F] = { 0x119E, 2 }, | |
| [0x11A0] = { 0x119E, 4 }, | |
| [0x11A1] = { 0x119E, 5 }, | |
| [0x11A2] = { 0x119E, 6 }, | |
| [0x11A3] = { 0x1161, 3 }, | |
| [0x11A4] = { 0x1163, 3 }, | |
| [0x11A5] = { 0x1167, 1 }, | |
| [0x11A6] = { 0x1169, 3 }, | |
| [0x11A7] = { 0x1169, 4 }, | |
| [0x11A8] = { 0x1100, 0 }, | |
| [0x11A9] = { 0x1100, 1 }, | |
| [0x11AA] = { 0x1100, 6 }, | |
| [0x11AB] = { 0x1102, 0 }, | |
| [0x11AC] = { 0x1102, 8 }, | |
| [0x11AD] = { 0x1102, 11 }, | |
| [0x11AE] = { 0x1103, 0 }, | |
| [0x11AF] = { 0x1105, 0 }, | |
| [0x11B0] = { 0x1105, 1 }, | |
| [0x11B1] = { 0x1105, 11 }, | |
| [0x11B2] = { 0x1105, 15 }, | |
| [0x11B3] = { 0x1105, 22 }, | |
| [0x11B4] = { 0x1105, 28 }, | |
| [0x11B5] = { 0x1105, 29 }, | |
| [0x11B6] = { 0x1105, 30 }, | |
| [0x11B7] = { 0x1106, 0 }, | |
| [0x11B8] = { 0x1107, 0 }, | |
| [0x11B9] = { 0x1107, 8 }, | |
| [0x11BA] = { 0x1109, 0 }, | |
| [0x11BB] = { 0x1109, 9 }, | |
| [0x11BC] = { 0x110B, 0 }, | |
| [0x11BD] = { 0x110C, 0 }, | |
| [0x11BE] = { 0x110E, 0 }, | |
| [0x11BF] = { 0x110F, 0 }, | |
| [0x11C0] = { 0x1110, 0 }, | |
| [0x11C1] = { 0x1111, 0 }, | |
| [0x11C2] = { 0x1112, 0 }, | |
| [0x11C3] = { 0x1100, 4 }, | |
| [0x11C4] = { 0x1100, 7 }, | |
| [0x11C5] = { 0x1102, 1 }, | |
| [0x11C6] = { 0x1102, 3 }, | |
| [0x11C7] = { 0x1102, 6 }, | |
| [0x11C8] = { 0x1102, 7 }, | |
| [0x11C9] = { 0x1102, 10 }, | |
| [0x11CA] = { 0x1103, 1 }, | |
| [0x11CB] = { 0x1103, 4 }, | |
| [0x11CC] = { 0x1105, 3 }, | |
| [0x11CD] = { 0x1105, 5 }, | |
| [0x11CE] = { 0x1105, 6 }, | |
| [0x11CF] = { 0x1105, 8 }, | |
| [0x11D0] = { 0x1105, 9 }, | |
| [0x11D1] = { 0x1105, 12 }, | |
| [0x11D2] = { 0x1105, 13 }, | |
| [0x11D3] = { 0x1105, 18 }, | |
| [0x11D4] = { 0x1105, 20 }, | |
| [0x11D5] = { 0x1105, 21 }, | |
| [0x11D6] = { 0x1105, 23 }, | |
| [0x11D7] = { 0x1105, 24 }, | |
| [0x11D8] = { 0x1105, 27 }, | |
| [0x11D9] = { 0x1105, 31 }, | |
| [0x11DA] = { 0x1106, 1 }, | |
| [0x11DB] = { 0x1106, 5 }, | |
| [0x11DC] = { 0x1106, 7 }, | |
| [0x11DD] = { 0x1106, 9 }, | |
| [0x11DE] = { 0x1106, 10 }, | |
| [0x11DF] = { 0x1106, 11 }, | |
| [0x11E0] = { 0x1106, 13 }, | |
| [0x11E1] = { 0x1106, 14 }, | |
| [0x11E2] = { 0x1106, 15 }, | |
| [0x11E3] = { 0x1107, 4 }, | |
| [0x11E4] = { 0x1107, 19 }, | |
| [0x11E5] = { 0x1107, 20 }, | |
| [0x11E6] = { 0x1107, 21 }, | |
| [0x11E7] = { 0x1109, 1 }, | |
| [0x11E8] = { 0x1109, 3 }, | |
| [0x11E9] = { 0x1109, 4 }, | |
| [0x11EA] = { 0x1109, 6 }, | |
| [0x11EB] = { 0x1109, 26 }, | |
| [0x11EC] = { 0x110B, 15 }, | |
| [0x11ED] = { 0x110B, 16 }, | |
| [0x11EE] = { 0x110B, 20 }, | |
| [0x11EF] = { 0x110B, 21 }, | |
| [0x11F0] = { 0x110B, 14 }, | |
| [0x11F1] = { 0x110B, 18 }, | |
| [0x11F2] = { 0x110B, 19 }, | |
| [0x11F3] = { 0x1111, 1 }, | |
| [0x11F4] = { 0x1111, 5 }, | |
| [0x11F5] = { 0x1112, 1 }, | |
| [0x11F6] = { 0x1112, 2 }, | |
| [0x11F7] = { 0x1112, 3 }, | |
| [0x11F8] = { 0x1112, 4 }, | |
| [0x11F9] = { 0x1112, 7 }, | |
| [0x11FA] = { 0x1100, 2 }, | |
| [0x11FB] = { 0x1100, 5 }, | |
| [0x11FC] = { 0x1100, 8 }, | |
| [0x11FD] = { 0x1100, 9 }, | |
| [0x11FE] = { 0x1100, 10 }, | |
| [0x11FF] = { 0x1102, 2 }, | |
| [0x3131] = { 0x1100, 0, 0x1160, 0, 4, 4 }, | |
| [0x3132] = { 0x1100, 1, 0x1160, 0, 4, 4 }, | |
| [0x3133] = { 0x1100, 6, 0x1160, 0, 4, 4 }, | |
| [0x3134] = { 0x1102, 0, 0x1160, 0, 4, 4 }, | |
| [0x3135] = { 0x1102, 8, 0x1160, 0, 4, 4 }, | |
| [0x3136] = { 0x1102, 11, 0x1160, 0, 4, 4 }, | |
| [0x3137] = { 0x1103, 0, 0x1160, 0, 4, 4 }, | |
| [0x3138] = { 0x1103, 2, 0x1160, 0, 4, 4 }, | |
| [0x3139] = { 0x1105, 0, 0x1160, 0, 4, 4 }, | |
| [0x313A] = { 0x1105, 1, 0x1160, 0, 4, 4 }, | |
| [0x313B] = { 0x1105, 11, 0x1160, 0, 4, 4 }, | |
| [0x313C] = { 0x1105, 15, 0x1160, 0, 4, 4 }, | |
| [0x313D] = { 0x1105, 22, 0x1160, 0, 4, 4 }, | |
| [0x313E] = { 0x1105, 28, 0x1160, 0, 4, 4 }, | |
| [0x313F] = { 0x1105, 29, 0x1160, 0, 4, 4 }, | |
| [0x3140] = { 0x1105, 30, 0x1160, 0, 4, 4 }, | |
| [0x3141] = { 0x1106, 0, 0x1160, 0, 4, 4 }, | |
| [0x3142] = { 0x1107, 0, 0x1160, 0, 4, 4 }, | |
| [0x3143] = { 0x1107, 7, 0x1160, 0, 4, 4 }, | |
| [0x3144] = { 0x1107, 8, 0x1160, 0, 4, 4 }, | |
| [0x3145] = { 0x1109, 0, 0x1160, 0, 4, 4 }, | |
| [0x3146] = { 0x1109, 9, 0x1160, 0, 4, 4 }, | |
| [0x3147] = { 0x110B, 0, 0x1160, 0, 4, 4 }, | |
| [0x3148] = { 0x110C, 0, 0x1160, 0, 4, 4 }, | |
| [0x3149] = { 0x110C, 4, 0x1160, 0, 4, 4 }, | |
| [0x314A] = { 0x110E, 0, 0x1160, 0, 4, 4 }, | |
| [0x314B] = { 0x110F, 0, 0x1160, 0, 4, 4 }, | |
| [0x314C] = { 0x1110, 0, 0x1160, 0, 4, 4 }, | |
| [0x314D] = { 0x1111, 0, 0x1160, 0, 4, 4 }, | |
| [0x314E] = { 0x1112, 0, 0x1160, 0, 4, 4 }, | |
| [0x314F] = { 0x115F, 0, 0x1161, 0, 4, 4 }, | |
| [0x3150] = { 0x115F, 0, 0x1161, 4, 4, 4 }, | |
| [0x3151] = { 0x115F, 0, 0x1163, 0, 4, 4 }, | |
| [0x3152] = { 0x115F, 0, 0x1163, 4, 4, 4 }, | |
| [0x3153] = { 0x115F, 0, 0x1165, 0, 4, 4 }, | |
| [0x3154] = { 0x115F, 0, 0x1165, 4, 4, 4 }, | |
| [0x3155] = { 0x115F, 0, 0x1167, 0, 4, 4 }, | |
| [0x3156] = { 0x115F, 0, 0x1167, 4, 4, 4 }, | |
| [0x3157] = { 0x115F, 0, 0x1169, 0, 4, 4 }, | |
| [0x3158] = { 0x115F, 0, 0x1169, 1, 4, 4 }, | |
| [0x3159] = { 0x115F, 0, 0x1169, 2, 4, 4 }, | |
| [0x315A] = { 0x115F, 0, 0x1169, 12, 4, 4 }, | |
| [0x315B] = { 0x115F, 0, 0x116D, 0, 4, 4 }, | |
| [0x315C] = { 0x115F, 0, 0x116E, 0, 4, 4 }, | |
| [0x315D] = { 0x115F, 0, 0x116E, 3, 4, 4 }, | |
| [0x315E] = { 0x115F, 0, 0x116E, 5, 4, 4 }, | |
| [0x315F] = { 0x115F, 0, 0x116E, 9, 4, 4 }, | |
| [0x3160] = { 0x115F, 0, 0x1172, 0, 4, 4 }, | |
| [0x3161] = { 0x115F, 0, 0x1173, 0, 4, 4 }, | |
| [0x3162] = { 0x115F, 0, 0x1173, 7, 4, 4 }, | |
| [0x3163] = { 0x115F, 0, 0x1175, 0, 4, 4 }, | |
| [0x3164] = { 0x115F, 0, 0x1160, 0, 4, 4 }, | |
| [0x3165] = { 0x1102, 2, 0x1160, 0, 4, 4 }, | |
| [0x3166] = { 0x1102, 3, 0x1160, 0, 4, 4 }, | |
| [0x3167] = { 0x1102, 6, 0x1160, 0, 4, 4 }, | |
| [0x3168] = { 0x1102, 7, 0x1160, 0, 4, 4 }, | |
| [0x3169] = { 0x1105, 3, 0x1160, 0, 4, 4 }, | |
| [0x316A] = { 0x1105, 6, 0x1160, 0, 4, 4 }, | |
| [0x316B] = { 0x1105, 18, 0x1160, 0, 4, 4 }, | |
| [0x316C] = { 0x1105, 24, 0x1160, 0, 4, 4 }, | |
| [0x316D] = { 0x1105, 31, 0x1160, 0, 4, 4 }, | |
| [0x316E] = { 0x1106, 7, 0x1160, 0, 4, 4 }, | |
| [0x316F] = { 0x1106, 9, 0x1160, 0, 4, 4 }, | |
| [0x3170] = { 0x1106, 11, 0x1160, 0, 4, 4 }, | |
| [0x3171] = { 0x1106, 15, 0x1160, 0, 4, 4 }, | |
| [0x3172] = { 0x1107, 1, 0x1160, 0, 4, 4 }, | |
| [0x3173] = { 0x1107, 3, 0x1160, 0, 4, 4 }, | |
| [0x3174] = { 0x1107, 9, 0x1160, 0, 4, 4 }, | |
| [0x3175] = { 0x1107, 10, 0x1160, 0, 4, 4 }, | |
| [0x3176] = { 0x1107, 15, 0x1160, 0, 4, 4 }, | |
| [0x3177] = { 0x1107, 18, 0x1160, 0, 4, 4 }, | |
| [0x3178] = { 0x1107, 21, 0x1160, 0, 4, 4 }, | |
| [0x3179] = { 0x1107, 22, 0x1160, 0, 4, 4 }, | |
| [0x317A] = { 0x1109, 1, 0x1160, 0, 4, 4 }, | |
| [0x317B] = { 0x1109, 2, 0x1160, 0, 4, 4 }, | |
| [0x317C] = { 0x1109, 3, 0x1160, 0, 4, 4 }, | |
| [0x317D] = { 0x1109, 6, 0x1160, 0, 4, 4 }, | |
| [0x317E] = { 0x1109, 16, 0x1160, 0, 4, 4 }, | |
| [0x317F] = { 0x1109, 26, 0x1160, 0, 4, 4 }, | |
| [0x3180] = { 0x110B, 8, 0x1160, 0, 4, 4 }, | |
| [0x3181] = { 0x110B, 14, 0x1160, 0, 4, 4 }, | |
| [0x3182] = { 0x110B, 18, 0x1160, 0, 4, 4 }, | |
| [0x3183] = { 0x110B, 19, 0x1160, 0, 4, 4 }, | |
| [0x3184] = { 0x1111, 5, 0x1160, 0, 4, 4 }, | |
| [0x3185] = { 0x1112, 6, 0x1160, 0, 4, 4 }, | |
| [0x3186] = { 0x1112, 7, 0x1160, 0, 4, 4 }, | |
| [0x3187] = { 0x115F, 0, 0x116D, 3, 4, 4 }, | |
| [0x3188] = { 0x115F, 0, 0x116D, 4, 4, 4 }, | |
| [0x3189] = { 0x115F, 0, 0x116D, 8, 4, 4 }, | |
| [0x318A] = { 0x115F, 0, 0x1172, 5, 4, 4 }, | |
| [0x318B] = { 0x115F, 0, 0x1172, 6, 4, 4 }, | |
| [0x318C] = { 0x115F, 0, 0x1172, 9, 4, 4 }, | |
| [0x318D] = { 0x115F, 0, 0x119E, 0, 4, 4 }, | |
| [0x318E] = { 0x115F, 0, 0x119E, 5, 4, 4 }, | |
| [0xA960] = { 0x1103, 5 }, | |
| [0xA961] = { 0x1103, 6 }, | |
| [0xA962] = { 0x1103, 7 }, | |
| [0xA963] = { 0x1103, 9 }, | |
| [0xA964] = { 0x1105, 1 }, | |
| [0xA965] = { 0x1105, 2 }, | |
| [0xA966] = { 0x1105, 6 }, | |
| [0xA967] = { 0x1105, 7 }, | |
| [0xA968] = { 0x1105, 11 }, | |
| [0xA969] = { 0x1105, 15 }, | |
| [0xA96A] = { 0x1105, 17 }, | |
| [0xA96B] = { 0x1105, 21 }, | |
| [0xA96C] = { 0x1105, 22 }, | |
| [0xA96D] = { 0x1105, 26 }, | |
| [0xA96E] = { 0x1105, 27 }, | |
| [0xA96F] = { 0x1106, 1 }, | |
| [0xA970] = { 0x1106, 4 }, | |
| [0xA971] = { 0x1106, 9 }, | |
| [0xA972] = { 0x1107, 14 }, | |
| [0xA973] = { 0x1107, 17 }, | |
| [0xA974] = { 0x1107, 20 }, | |
| [0xA975] = { 0x1109, 12 }, | |
| [0xA976] = { 0x110B, 3 }, | |
| [0xA977] = { 0x110B, 13 }, | |
| [0xA978] = { 0x110C, 5 }, | |
| [0xA979] = { 0x1110, 1 }, | |
| [0xA97A] = { 0x1111, 4 }, | |
| [0xA97B] = { 0x1112, 5 }, | |
| [0xA97C] = { 0x1112, 8 }, | |
| [0xD7B0] = { 0x1169, 7 }, | |
| [0xD7B1] = { 0x1169, 10 }, | |
| [0xD7B2] = { 0x116D, 1 }, | |
| [0xD7B3] = { 0x116D, 2 }, | |
| [0xD7B4] = { 0x116D, 5 }, | |
| [0xD7B5] = { 0x116E, 6 }, | |
| [0xD7B6] = { 0x116E, 10 }, | |
| [0xD7B7] = { 0x1172, 2 }, | |
| [0xD7B8] = { 0x1172, 7 }, | |
| [0xD7B9] = { 0x1173, 1 }, | |
| [0xD7BA] = { 0x1173, 2 }, | |
| [0xD7BB] = { 0x1173, 3 }, | |
| [0xD7BC] = { 0x1173, 4 }, | |
| [0xD7BD] = { 0x1175, 3 }, | |
| [0xD7BE] = { 0x1175, 4 }, | |
| [0xD7BF] = { 0x1175, 5 }, | |
| [0xD7C0] = { 0x1175, 6 }, | |
| [0xD7C1] = { 0x1175, 8 }, | |
| [0xD7C2] = { 0x1175, 9 }, | |
| [0xD7C3] = { 0x1175, 11 }, | |
| [0xD7C4] = { 0x1175, 13 }, | |
| [0xD7C5] = { 0x119E, 1 }, | |
| [0xD7C6] = { 0x119E, 3 }, | |
| [0xD7CB] = { 0x1102, 4 }, | |
| [0xD7CC] = { 0x1102, 9 }, | |
| [0xD7CD] = { 0x1103, 2 }, | |
| [0xD7CE] = { 0x1103, 3 }, | |
| [0xD7CF] = { 0x1103, 6 }, | |
| [0xD7D0] = { 0x1103, 7 }, | |
| [0xD7D1] = { 0x1103, 8 }, | |
| [0xD7D2] = { 0x1103, 9 }, | |
| [0xD7D3] = { 0x1103, 10 }, | |
| [0xD7D4] = { 0x1103, 11 }, | |
| [0xD7D5] = { 0x1105, 2 }, | |
| [0xD7D6] = { 0x1105, 4 }, | |
| [0xD7D7] = { 0x1105, 10 }, | |
| [0xD7D8] = { 0x1105, 14 }, | |
| [0xD7D9] = { 0x1105, 16 }, | |
| [0xD7DA] = { 0x1105, 19 }, | |
| [0xD7DB] = { 0x1105, 25 }, | |
| [0xD7DC] = { 0x1105, 32 }, | |
| [0xD7DD] = { 0x1105, 33 }, | |
| [0xD7DE] = { 0x1106, 2 }, | |
| [0xD7DF] = { 0x1106, 3 }, | |
| [0xD7E0] = { 0x1106, 6 }, | |
| [0xD7E1] = { 0x1106, 8 }, | |
| [0xD7E2] = { 0x1106, 12 }, | |
| [0xD7E3] = { 0x1107, 3 }, | |
| [0xD7E4] = { 0x1107, 5 }, | |
| [0xD7E5] = { 0x1107, 6 }, | |
| [0xD7E6] = { 0x1107, 7 }, | |
| [0xD7E7] = { 0x1107, 10 }, | |
| [0xD7E8] = { 0x1107, 15 }, | |
| [0xD7E9] = { 0x1107, 16 }, | |
| [0xD7EA] = { 0x1109, 5 }, | |
| [0xD7EB] = { 0x1109, 8 }, | |
| [0xD7EC] = { 0x1109, 10 }, | |
| [0xD7ED] = { 0x1109, 11 }, | |
| [0xD7EE] = { 0x1109, 14 }, | |
| [0xD7EF] = { 0x1109, 16 }, | |
| [0xD7F0] = { 0x1109, 17 }, | |
| [0xD7F1] = { 0x1109, 19 }, | |
| [0xD7F2] = { 0x1109, 21 }, | |
| [0xD7F3] = { 0x1109, 27 }, | |
| [0xD7F4] = { 0x1109, 28 }, | |
| [0xD7F5] = { 0x110B, 17 }, | |
| [0xD7F6] = { 0x110B, 22 }, | |
| [0xD7F7] = { 0x110C, 1 }, | |
| [0xD7F8] = { 0x110C, 2 }, | |
| [0xD7F9] = { 0x110C, 4 }, | |
| [0xD7FA] = { 0x1111, 2 }, | |
| [0xD7FB] = { 0x1111, 3 }, | |
| } | |
| local function is_hangul (c) | |
| return c >= 0xAC00 and c <= 0xD7A3 | |
| end | |
| local function is_jamoV (c) | |
| return c >= 0x1160 and c <= 0x11A7 | |
| or c >= 0xD7B0 and c <= 0xD7C6 | |
| end | |
| local function is_jamoT (c) | |
| return c >= 0x11A8 and c <= 0x11FF | |
| or c >= 0xD7CB and c <= 0xD7FB | |
| end | |
| local SBase = 0xAC00 | |
| local LBase = 0x1100 | |
| local VBase = 0x1161 | |
| local TBase = 0x11A7 | |
| local VCount = 21 | |
| local TCount = 28 | |
| local NCount = VCount * TCount | |
| local function append_chars (t, v) | |
| if type(v) == "table" then | |
| for _, c in ipairs(v) do | |
| table.insert(t, c) | |
| end | |
| else | |
| for i = 1, 2 do | |
| table.insert(t, v) | |
| end | |
| end | |
| end | |
| function SORTprehook (data) | |
| for _, v in ipairs(data) do | |
| v.origEntry = v.Entry | |
| local t, was_jamoV = {}, false | |
| for _, c in utf8.codes(v.Entry) do | |
| if is_jamoV(c) then | |
| was_jamoV = true | |
| else | |
| if was_jamoV and not is_jamoT(c) then | |
| append_chars(t, 0) | |
| end | |
| was_jamoV = false | |
| end | |
| if is_hangul(c) then | |
| local SIndex = c - SBase | |
| local LPart = SIndex // NCount + LBase | |
| local VPart = (SIndex % NCount) // TCount + VBase | |
| local TPart = SIndex % TCount + TBase | |
| for _, i in ipairs{LPart, VPart, TPart} do | |
| if i == TBase then | |
| append_chars(t, 0) | |
| else | |
| append_chars(t, jamo_sort_order[i]) | |
| end | |
| end | |
| elseif is_jamoT(c) and t[#t-3] == 0x115F and t[#t-1] == 0x1160 then | |
| -- jongsong alone -> end of chosong alone | |
| t[#t-3], t[#t-2] = table.unpack(jamo_sort_order[c]) | |
| append_chars(t, 1) | |
| elseif jamo_sort_order[c] then | |
| append_chars(t, jamo_sort_order[c]) | |
| else | |
| table.insert(t, c) | |
| end | |
| end | |
| if was_jamoV then | |
| append_chars(t, 0) | |
| end | |
| v.Entry = utf8.char(table.unpack(t)) | |
| local c = utf8.codepoint(v.sortChar) | |
| if t[1] and (is_hangul(c) or jamo_sort_order[c]) then | |
| v.sortChar = utf8.char(t[1]) | |
| end | |
| end | |
| return data | |
| end | |
| local headers = { | |
| [0x1100] = 0x3131, | |
| [0x1102] = 0x3134, | |
| [0x1103] = 0x3137, | |
| [0x1105] = 0x3139, | |
| [0x1106] = 0x3141, | |
| [0x1107] = 0x3142, | |
| [0x1109] = 0x3145, | |
| [0x110B] = 0x3147, | |
| [0x110C] = 0x3148, | |
| [0x110E] = 0x314A, | |
| [0x110F] = 0x314B, | |
| [0x1110] = 0x314C, | |
| [0x1111] = 0x314D, | |
| [0x1112] = 0x314E, | |
| [0x115F] = 0x314F, | |
| } | |
| function SORTposthook (data) | |
| for _, v in ipairs(data) do | |
| v.Entry = v.origEntry | |
| v.origEntry = nil | |
| local c = utf8.codepoint(v.sortChar) | |
| if headers[c] then | |
| v.sortChar = utf8.char( headers[c] ) | |
| end | |
| end | |
| return data | |
| end | |
| function SORTendhook (data) | |
| local en_begin, ko_begin | |
| for i, v in ipairs(data) do | |
| if not en_begin and string.find(v.sortChar, "%a") then | |
| en_begin = i | |
| elseif utf8.codepoint(v.sortChar) >= LBase then | |
| ko_begin = i | |
| break | |
| end | |
| end | |
| if en_begin and ko_begin then | |
| local t = {} | |
| table.move(data, 1, en_begin-1, 1, t) | |
| table.move(data, ko_begin, #data, #t+1, t) | |
| table.move(data, en_begin, ko_begin-1, #t+1, t) | |
| return t | |
| end | |
| return data | |
| end | |
| indexheader = indexheader or {} | |
| indexheader.ko = { "기호", "숫자" } | |
| --[[ | |
| -- below is copied from xindex-cfg.lua | |
| --]] | |
| itemPageDelimiter = "," -- Hello, 14 | |
| compressPages = true -- something like 12--15, instaead of 12,13,14,15. the |( ... |) syntax is still valid | |
| fCompress = false -- 3f -> page 3, 4 and 3ff -> page 3, 4, 5 | |
| minCompress = 2 -- 14--16 or | |
| numericPage = true -- for non numerical pagenumbers, like "VI-17" | |
| sublabels = {"", "", "", ""} -- for the (sub(sub(sub-items first one is for item | |
| pageNoPrefixDel = "" -- a delimiter for page numbers like "VI-17" -- not used !!! | |
| indexOpening = "" -- commands after \begin{theindex} | |
| --[[ | |
| Each character's position in this array-like table determines its 'priority'. | |
| Several characters in the same slot have the same 'priority'. | |
| --]] | |
| alphabet_lower = { -- for sorting | |
| { ' ' }, -- only for internal tests | |
| { 'a', 'á', 'à', 'ä', 'å', 'æ', }, | |
| { 'b' }, | |
| { 'c', 'ç' }, | |
| { 'd' }, | |
| { 'e', 'é', 'è', 'ë' }, | |
| { 'f' }, | |
| { 'g' }, | |
| { 'h' }, | |
| { 'i', 'í', 'ì', 'ï' }, | |
| { 'j' }, | |
| { 'k' }, | |
| { 'l' }, | |
| { 'm' }, | |
| { 'n', 'ñ' }, | |
| { 'o', 'ó', 'ò', 'ö', 'ø', 'œ'}, | |
| { 'p' }, | |
| { 'q' }, | |
| { 'r' }, | |
| { 's', 'š', 'ß' }, | |
| { 't' }, | |
| { 'u', 'ú', 'ù', 'ü' , 'û'}, | |
| { 'v' }, | |
| { 'w' }, | |
| { 'x' }, | |
| { 'y', 'ý', 'ÿ' }, | |
| { 'z', 'ž' }, | |
| } | |
| alphabet_upper = { -- for sorting | |
| { ' ' }, | |
| { 'A', 'Á', 'À', 'Ä', 'Å', 'Æ'}, | |
| { 'B' }, | |
| { 'C', 'Ç' }, | |
| { 'D' }, | |
| { 'E', 'È', 'È', 'Ë' }, | |
| { 'F' }, | |
| { 'G' }, | |
| { 'H' }, | |
| { 'I', 'Í', 'Ì', 'Ï' }, | |
| { 'J' }, | |
| { 'K' }, | |
| { 'L' }, | |
| { 'M' }, | |
| { 'N', 'Ñ' }, | |
| { 'O', 'Ó', 'Ò', 'Ö', 'Ø','Œ' }, | |
| { 'P' }, | |
| { 'Q' }, | |
| { 'R' }, | |
| { 'S', 'Š' }, | |
| { 'T' }, | |
| { 'U', 'Ú', 'Ù', 'Ü' }, | |
| { 'V' }, | |
| { 'W' }, | |
| { 'X' }, | |
| { 'Y', 'Ý', 'Ÿ' }, | |
| { 'Z', 'Ž' } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment