Handle intermediate tags through addons
This commit is contained in:
parent
8c0ead7a3a
commit
7ef0f4e881
@ -52,6 +52,10 @@ class Deinflection {
|
|||||||
for (const v of variants) {
|
for (const v of variants) {
|
||||||
let allowed = this.tags.length === 0;
|
let allowed = this.tags.length === 0;
|
||||||
for (const tag of this.tags) {
|
for (const tag of this.tags) {
|
||||||
|
//
|
||||||
|
// TODO: Handle addons through tags.json or rules.json
|
||||||
|
//
|
||||||
|
|
||||||
if (v.tagsIn.indexOf(tag) !== -1) {
|
if (v.tagsIn.indexOf(tag) !== -1) {
|
||||||
allowed = true;
|
allowed = true;
|
||||||
break;
|
break;
|
||||||
|
@ -41,8 +41,29 @@ class Dictionary {
|
|||||||
results = results.concat(
|
results = results.concat(
|
||||||
indices.map(index => {
|
indices.map(index => {
|
||||||
const [e, r, t, ...g] = dict.defs[index];
|
const [e, r, t, ...g] = dict.defs[index];
|
||||||
const tags = Dictionary.fixupTags(t.split(' '));
|
const addons = [];
|
||||||
return {id: index, expression: e, reading: r, glossary: g, tags: tags};
|
const tags = t.split(' ');
|
||||||
|
|
||||||
|
//
|
||||||
|
// TODO: Handle addons through data.
|
||||||
|
//
|
||||||
|
|
||||||
|
for (const tag of tags) {
|
||||||
|
if (tag.startsWith('v5') && tag !== 'v5') {
|
||||||
|
addons.push('v5');
|
||||||
|
} else if (tag.startsWith('vs-')) {
|
||||||
|
addons.push('vs');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
id: index,
|
||||||
|
expression: e,
|
||||||
|
reading: r,
|
||||||
|
glossary: g,
|
||||||
|
tags: tags.concat(addons),
|
||||||
|
addons: addons
|
||||||
|
};
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -63,19 +84,4 @@ class Dictionary {
|
|||||||
|
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
static fixupTags(tags) {
|
|
||||||
const results = [];
|
|
||||||
for (const tag of tags) {
|
|
||||||
if (tag.startsWith('v5') && tag !== 'v5') {
|
|
||||||
results.push('v5');
|
|
||||||
} else if (tag.startsWith('vs-')) {
|
|
||||||
results.push('vs');
|
|
||||||
}
|
|
||||||
|
|
||||||
results.push(tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -162,7 +162,7 @@ class Translator {
|
|||||||
let tagItems = [];
|
let tagItems = [];
|
||||||
for (const tag of entry.tags) {
|
for (const tag of entry.tags) {
|
||||||
const tagItem = this.tags[tag];
|
const tagItem = this.tags[tag];
|
||||||
if (tagItem) {
|
if (tagItem && entry.addons.indexOf(tag) === -1) {
|
||||||
tagItems.push({
|
tagItems.push({
|
||||||
class: tagItem.class || 'default',
|
class: tagItem.class || 'default',
|
||||||
order: tagItem.order || Number.MAX_SAFE_INTEGER,
|
order: tagItem.order || Number.MAX_SAFE_INTEGER,
|
||||||
@ -170,6 +170,11 @@ class Translator {
|
|||||||
name: tag
|
name: tag
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// TODO: Handle tagging as popular through data.
|
||||||
|
//
|
||||||
|
|
||||||
if (tag === 'P') {
|
if (tag === 'P') {
|
||||||
popular = true;
|
popular = true;
|
||||||
}
|
}
|
||||||
@ -195,7 +200,6 @@ class Translator {
|
|||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
if (matched) {
|
if (matched) {
|
||||||
groups[entry.id] = {
|
groups[entry.id] = {
|
||||||
expression: entry.expression,
|
expression: entry.expression,
|
||||||
|
Loading…
Reference in New Issue
Block a user