${Object.values(this.wikis || {}).sort((x, y) => x.name.localeCompare(y.name)).map(wiki => html`
-
self.on_wiki_changed({detail: {value: wiki}})}>📕${wiki.name}
+
self.on_wiki_changed({detail: {value: wiki}})}>${self.wiki?.id === wiki.id ? '' : '>'} ${wiki.name}
${Object.values(self.wiki_docs || {}).filter(doc => doc.parent === wiki?.id).sort((x, y) => x.name.localeCompare(y.name)).map(doc => html`
- - self.on_wiki_doc_changed({detail: {value: doc}})}>${doc?.private ? '🔒' : '📄'} ${doc.name}
+ - self.on_wiki_doc_changed({detail: {value: doc}})}>${doc?.private ? '🔒' : '📄'} ${doc.name}
`)}
`)}
diff --git a/apps/wiki/tf-wiki-doc.js b/apps/wiki/tf-wiki-doc.js
index 4b3eb57b..5c7ce3ad 100644
--- a/apps/wiki/tf-wiki-doc.js
+++ b/apps/wiki/tf-wiki-doc.js
@@ -76,7 +76,9 @@ class TfWikiDocElement extends LitElement {
async load_blob() {
let blob = await tfrpc.rpc.get_blob(this.value?.blob);
- if (blob.endsWith('.box')) {
+ if(!blob) {
+ console.warn("no blob found, we're going to assume the document is empty (load_blob())");
+ } else if (blob.endsWith('.box')) {
let d = await tfrpc.rpc.try_decrypt(this.whoami, blob);
if (d) {
blob = d;
@@ -239,6 +241,15 @@ class TfWikiDocElement extends LitElement {
a:visited { color: #6c71c4 }
a:hover { color: #859900 }
a:active { color: #2aa198 }
+
+ #editor-text-area {
+ background-color: #00000040;
+ color: white;
+ style="flex: 1 1;
+ min-height: 10em;
+ font-size: larger;
+ ${this.value?.private ? 'border: 4px solid #800' : ''
+ }
@@ -249,15 +260,16 @@ class TfWikiDocElement extends LitElement {
🔒 document is private
-
+
-
+
+ Summary
${unsafeHTML(this.markdown(this.title(this.blob)))}
${unsafeHTML(this.markdown(this.summary(this.blob)))}
diff --git a/apps/wiki/tildefriends.css b/apps/wiki/tildefriends.css
index 23e50fe8..e3276c2e 100644
--- a/apps/wiki/tildefriends.css
+++ b/apps/wiki/tildefriends.css
@@ -100,3 +100,11 @@ tr:nth-child(even) {
display: inline-flex;
flex-direction: row;
}
+
+.box {
+ background-color: #00000020;
+ border: 1px solid grey;
+ border-radius: 8px;
+ padding: 16px;
+ margin: 4px;
+}