diff --git a/src/App.svelte b/src/App.svelte
index 28844dc..94b8d08 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -11,17 +11,18 @@
let title = "Foo bar";
let hases = [];
+ let hasesCandidates = [];
let frontmatter = {}
- frontmatter['triad'] = {};
- frontmatter['ascriptions'] = {};
+ frontmatter['triad'] = [];
+ frontmatter['ascriptions'] = [];
function keyUp(e) {
if (e.key == "Escape") {
window.history.back()
}
}
-
- function diffArrr(arr, arrr) {
+
+ function diffArrr(arr, arrr) {
let diff = new Set(arr)
for (let e of arrr) {
diff.delete(e)
@@ -30,9 +31,10 @@
}
function newHasTiers(arrgs) {
- let [fmKeyType, oldFmKey, newFmKey] = arrgs.detail;
- frontmatter[fmKeyType][oldFmKey]['candidates'] = METASP[newFmKey].tiers;
- frontmatter[fmKeyType][oldFmKey]['tiers'] = [];
+ let [fmKeyType, index, oldFmKey, newFmKey] = arrgs.detail;
+ frontmatter[fmKeyType][index] = {'fmKey': newFmKey, 'tiers': [], 'candidates': METASP[newFmKey].tiers}
+ hasesCandidates = [...hasesCandidates, oldFmKey];
+ hasesCandidates = hasesCandidates.filter(h => h != newFmKey);
}
function loadHugoPageMetadata() {
@@ -57,24 +59,27 @@
}
} else if (hases.includes(fmKey.toLowerCase())) {
fmKeyType = 'ascriptions'
+ } else {
+ fmKeyType = 'notSandpoints'
}
- if (fmKeyType != "") {
+ if (['triad', 'ascriptions'].includes(fmKeyType)) {
if (Array.isArray(fmValue)) {
+ let tiers = []
+ let candidates = []
METASP[fmKey].tiers.forEach(t => {
- (fmKey in frontmatter[fmKeyType]) || (frontmatter[fmKeyType][fmKey] = {});
- ('tiers' in frontmatter[fmKeyType][fmKey]) || (frontmatter[fmKeyType][fmKey]['tiers'] = []);
- ('candidates' in frontmatter[fmKeyType][fmKey]) || (frontmatter[fmKeyType][fmKey]['candidates'] = []);
if (fmValue.includes(t.file)) {
- frontmatter[fmKeyType][fmKey]['tiers'].push(t)
+ tiers.push(t)
} else {
- frontmatter[fmKeyType][fmKey]['candidates'].push(t)
+ candidates.push(t)
}
- })
+ })
+ frontmatter[fmKeyType].push({'fmKey': fmKey, 'tiers': tiers, 'candidates': candidates})
}
}
}
)
+ hasesCandidates = diffArrr(hases, [...frontmatter['triad'].map(t => { return t.fmKey }), ...frontmatter['ascriptions'].map(t => { return t.fmKey })])
let tkey = Object.keys(repo.frontmatter).filter(t => t.toLowerCase() == "title")[0]
title = repo.frontmatter[tkey]
@@ -84,17 +89,18 @@
}
function addToCandidatesRemoveFromTiers(arrgs) {
- const [tier, fmKeyType, fmKey] = arrgs.detail
- frontmatter[fmKeyType][fmKey]['tiers'] = frontmatter[fmKeyType][fmKey]['tiers'].filter(t => t !== tier);
- frontmatter[fmKeyType][fmKey]['candidates'] = [...frontmatter[fmKeyType][fmKey]['candidates'], tier]
+ let [fmKeyType, index, fmKey, tier] = arrgs.detail;
+ frontmatter[fmKeyType][index]['fmKey'] = fmKey;
+ frontmatter[fmKeyType][index]['tiers'] = frontmatter[fmKeyType][index]['tiers'].filter(t => t !== tier);
+ frontmatter[fmKeyType][index]['candidates'] = [...frontmatter[fmKeyType][index]['candidates'], tier]
}
function addToTiersRemoveFromCandidates(arrgs) {
- const [value, fmKeyType, fmKey] = arrgs.detail
- const tier = frontmatter[fmKeyType][fmKey]['candidates'].filter(t => t.file == value)
+ let [fmKeyType, index, fmKey, value] = arrgs.detail;
+ const tier = frontmatter[fmKeyType][index]['candidates'].filter(t => t.file == value)
if (tier.length > 0) {
- frontmatter[fmKeyType][fmKey]['tiers'] = [...frontmatter[fmKeyType][fmKey]['tiers'], tier[0]]
- frontmatter[fmKeyType][fmKey]['candidates'] = frontmatter[fmKeyType][fmKey]['candidates'].filter(t=> t != tier[0])
+ frontmatter[fmKeyType][index]['tiers'] = [...frontmatter[fmKeyType][index]['tiers'], tier[0]]
+ frontmatter[fmKeyType][index]['candidates'] = frontmatter[fmKeyType][index]['candidates'].filter(t=> t != tier[0])
}
}
@@ -107,10 +113,10 @@