Compare commits

..

4 commits

3 changed files with 69 additions and 36 deletions

View file

@ -7,7 +7,7 @@
<title>Sandpoints Edit Page</title> <title>Sandpoints Edit Page</title>
<link rel='stylesheet' href='global.css'> <link rel='stylesheet' href='global.css'>
<script defer src='metasp.js'></script> <script defer src='../metadata/index.js'></script>
<script defer src='build/bundle.js'></script> <script defer src='build/bundle.js'></script>
</head> </head>

View file

@ -10,10 +10,11 @@
let relpermalink = ""; let relpermalink = "";
let protocol = ""; let protocol = "";
let title = "Foo bar"; let title = "Foo bar";
let hases = []; let hases = [];
let hasesCandidates = []; let hasesCandidates = [];
let frontmatter = {}; let frontmatter = {};
frontmatter["triad"] = []; let frontmatterLoaded = false;
frontmatter["triad"] = [];
frontmatter["ascriptions"] = []; frontmatter["ascriptions"] = [];
frontmatter["notsand"] = []; frontmatter["notsand"] = [];
@ -38,11 +39,11 @@
tiers: [], tiers: [],
candidates: METASP[newFmKey].tiers, candidates: METASP[newFmKey].tiers,
}; };
hasesCandidates = [...hasesCandidates, oldFmKey];
hasesCandidates = hasesCandidates.filter((h) => h != newFmKey); hasesCandidates = hasesCandidates.filter((h) => h != newFmKey);
hasesCandidates = [...hasesCandidates, oldFmKey];
} }
function loadHugoPageMetadata() { function loadHugoPageMetadata(editHash) {
var el = document.createElement("script"); var el = document.createElement("script");
el.onload = () => { el.onload = () => {
v = repo.content; v = repo.content;
@ -53,7 +54,8 @@
relpath = repo.path; relpath = repo.path;
relpermalink = repo.relpermalink; relpermalink = repo.relpermalink;
protocol = document.location.protocol.substring(0, 4); protocol = document.location.protocol.substring(0, 4);
hases = Object.keys(METASP); let notSelf = Object.entries(METASP).filter(n => n[1].singular == relpath.split("/")[0])[0][0]
hases = Object.keys(METASP).filter(k => k != notSelf);
Object.entries(repo.frontmatter).forEach(([fmKey, fmValue]) => { Object.entries(repo.frontmatter).forEach(([fmKey, fmValue]) => {
let fmKeyType = ""; let fmKeyType = "";
if (fmKey.toLowerCase().startsWith("has_")) { if (fmKey.toLowerCase().startsWith("has_")) {
@ -77,7 +79,7 @@
if (fmValue.includes(t.file)) { if (fmValue.includes(t.file)) {
tiers.push(t); tiers.push(t);
} else { } else {
candidates.push(t); candidates.push(t);
} }
}); });
frontmatter[fmKeyType].push({ frontmatter[fmKeyType].push({
@ -108,8 +110,9 @@
let tkey = Object.keys(repo.frontmatter).filter((t) => t.toLowerCase() == "title")[0]; let tkey = Object.keys(repo.frontmatter).filter((t) => t.toLowerCase() == "title")[0];
title = repo.frontmatter[tkey]; title = repo.frontmatter[tkey];
frontmatterLoaded = true;
}; };
el.src = `../js/repo/${location.hash.substring(1)}.js`; el.src = `../js/repo/${editHash}.js`;
document.body.appendChild(el); document.body.appendChild(el);
} }
@ -152,13 +155,40 @@
} }
} }
onMount(() => { function newFrontmatter() {
loadHugoPageMetadata(); return Object.entries(frontmatter).filter(val => val[1].length == 0).map(key => key[0])
console.dir(frontmatter); }
});
function checkTriad() {
let ct = Object.entries(frontmatter).filter(i => i[1].length == 0 && i[0] == "triad")
return ct.length == 0 ? false : true
}
function newTriad() {
newHasTiers({"detail": ["triad", 0, "authors", "editors"]})
}
function dispatchHash() {
var searchParams = new URLSearchParams(location.search);
let editHash = searchParams.get('edit')
if (editHash) {
loadHugoPageMetadata(editHash)
} else {
let newPage = searchParams.get('new')
console.log(newPage)
}
}
onMount(() => {
dispatchHash();
// loadHugoPageMetadata();
console.dir(frontmatter);
});
$: hashChanged = ()=> dispatchHash();
</script> </script>
<svelte:window on:keyup={keyUp} /> <svelte:window on:keyup={keyUp} on:hashchange={hashChanged} />
<main id="sandpoints"> <main id="sandpoints">
<form> <form>
<div class="formgrid"> <div class="formgrid">
@ -194,6 +224,9 @@
{/if} {/if}
{/each} {/each}
{/each} {/each}
{#if frontmatterLoaded && checkTriad()}
<div on:click="{newTriad}">NEW TRIAD TIER</div>
{/if}
</span> </span>
<div class="formgrid"> <div class="formgrid">
<label for="pagecontent">Content:</label> <label for="pagecontent">Content:</label>

View file

@ -1,23 +1,23 @@
<script> <script>
import { createEventDispatcher } from "svelte"; import { createEventDispatcher } from "svelte";
export let index; export let index;
export let fmItem; export let fmItem;
export let fmKeyType; export let fmKeyType;
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
function removeTier(tier) { function removeTier(tier) {
dispatch("addToCandidatesRemoveFromTiers", [fmKeyType, index, fmItem.fmKey, tier]); dispatch("addToCandidatesRemoveFromTiers", [fmKeyType, index, fmItem.fmKey, tier]);
} }
function swapTier(tier, n) { function swapTier(tier, n) {
fmItem.tiers.some((t, i) => { fmItem.tiers.some((t, i) => {
if (t == tier) { if (t == tier) {
fmItem.tiers[i] = fmItem.tiers[i + n]; fmItem.tiers[i] = fmItem.tiers[i + n];
fmItem.tiers[i + n] = tier; fmItem.tiers[i + n] = tier;
return true; return true;
} }
}); });
} }
</script> </script>
{#if fmItem.tiers && fmItem.tiers.length > 0} {#if fmItem.tiers && fmItem.tiers.length > 0}
@ -38,14 +38,14 @@
type="button" type="button"
class="buttondown" class="buttondown"
on:click={swapTier(tier, 1)} on:click={swapTier(tier, 1)}
disabled={i + 1 == fmItem.tiers.length ? true : false}>⇓</button disabled={i + 1 == fmItem.tiers.length ? true : false}>⇓</button
> >
<button <button
type="button" type="button"
class="buttonup" class="buttonup"
on:click={swapTier(tier, -1)} on:click={swapTier(tier, -1)}
disabled={i == 0 ? true : false}>⇑</button disabled={i == 0 ? true : false}>⇑</button
> >
<button type="button" on:click={removeTier(tier)}>×</button> <button type="button" on:click={removeTier(tier)}>×</button>
</div> </div>
</div> </div>