) => {
- console.log("cur_tab_register_on_save")
in_memory_save_callback = f;
in_memory_save = [];
}
@@ -373,6 +374,9 @@ export const cur_tab_toc_pane = derived(cur_tab, ($cur_tab) => {
export const cur_tab_show_menu = derived(cur_tab, ($cur_tab) => {
return $cur_tab.show_menu;
});
+export const cur_tab_branch_class = derived(cur_tab, ($cur_tab) => {
+ return $cur_tab.branch.class;
+});
export const cur_tab_branch_has_discrete = derived(cur_tab, ($cur_tab) => {
return $cur_tab.branch.has_discrete;
});
@@ -414,8 +418,8 @@ export const header_icon = derived(cur_tab, ($cur_tab) => {
} else {
let icon = $cur_tab.branch.icon || $cur_tab.doc.icon;
if (icon) return icon;// TODO: fetch image and return blob:
- let app = get_app($cur_tab.branch.class);
- if (app) return "class:" + app["ng:n"];
+ let class_type = get_class($cur_tab.branch.class);
+ if (class_type) return "class:" + $cur_tab.branch.class;
}
return false;
});
diff --git a/ng-app/src/zeras.ts b/ng-app/src/zeras.ts
index 609d15eb..bfef1f4b 100644
--- a/ng-app/src/zeras.ts
+++ b/ng-app/src/zeras.ts
@@ -58,16 +58,6 @@ export const official_apps = {
"ng:b": "TripleEditor",
"ng:w": ["data:graph"],
},
- "n:g:z:sparql_query": {
- "ng:n": "SPARQL Query",
- "ng:a": "View, edit and invoke a Graph SPARQL query",
- "ng:c": "app",
- "ng:u": "sparql_query",//favicon. can be a did:ng:j
- "ng:g": "n:g:z:sparql_query",
- "ng:b": "SparqlQueryEditor", // YASGUI of Zazuko https://github.com/zazuko/trifid/tree/main/packages/yasgui
- "ng:o": ["data:graph"],
- "ng:w": ["query:sparql"],
- },
"n:g:z:rdf_viewer:turtle": { // https://github.com/highlightjs/highlightjs-turtle/tree/master
"ng:n": "Turtle",
"ng:a": "View the RDF Graph in Turtle format",
@@ -78,6 +68,16 @@ export const official_apps = {
"ng:o": ["data:graph"],
"ng:w": [],
},
+ "n:g:z:sparql_query": {
+ "ng:n": "SPARQL Query",
+ "ng:a": "View, edit and invoke a Graph SPARQL query",
+ "ng:c": "app",
+ "ng:u": "sparql_query",//favicon. can be a did:ng:j
+ "ng:g": "n:g:z:sparql_query",
+ "ng:b": "SparqlQueryEditor", // YASGUI of Zazuko https://github.com/zazuko/trifid/tree/main/packages/yasgui
+ "ng:o": ["data:graph"],
+ "ng:w": ["query:sparql"],
+ },
"n:g:z:json_ld_viewer": {
"ng:n": "JSON-LD",
"ng:a": "View the RDF Graph as JSON-LD",
@@ -292,7 +292,7 @@ export const official_apps = {
"ng:u": "source",//favicon. can be a did:ng:j
"ng:g": "n:g:z:crdt_source_viewer:text",
"ng:b": "TextViewer", // displayed with highlight.js , with option to download
- "ng:o": ["post:text", "post:asciidoc", "code*", "service*", "contract", "query:sparql*","query:graphql","doc:diagram:mermaid","doc:diagram:graphviz","doc:diagram:flowchart",
+ "ng:o": ["post:asciidoc", "service*", "contract", "query:sparql*","query:graphql","doc:diagram:mermaid","doc:diagram:graphviz","doc:diagram:flowchart",
"doc:diagram:sequence","doc:diagram:markmap","doc:diagram:mymind","doc:music*", "doc:maths", "doc:chemistry", "doc:ancientscript", "doc:braille", "media:subtitle"],
"ng:w": [],
},
@@ -350,7 +350,7 @@ export const official_apps = {
"ng:c": "app",
"ng:u": "post",//favicon. can be a did:ng:j
"ng:g": "n:g:z:post:text",
- "ng:b": "TextViewer", // displayed with a
+ "ng:b": "TextViewer",
"ng:o": ["post:text"],
"ng:w": [],
},
@@ -360,8 +360,8 @@ export const official_apps = {
"ng:c": "app",
"ng:u": "post",//favicon. can be a did:ng:j
"ng:g": "n:g:z:pre",
- "ng:b": "PreTextViewer", // displayed with highlight.js
- "ng:o": ["code*","post:text"],
+ "ng:b": "TextViewer", // displayed with highlight.js
+ "ng:o": ["code*"],
"ng:w": [],
},
"n:g:z:pad": {
@@ -575,7 +575,7 @@ export const official_services = {
"ng:w": ["data:graph"],
},
"n:g:z:dump_file": {
- "ng:n": "Export file",
+ "ng:n": "Export File",
"ng:a": "Get the binary content of a file",
"ng:c": "service",
"ng:u": "dump",// favicon. can be a did:ng:j
@@ -584,7 +584,7 @@ export const official_services = {
"ng:result": ["file:iana:*"],
},
"n:g:z:dump_json": {
- "ng:n": "JSON export",
+ "ng:n": "Export JSON",
"ng:a": "Export JSON content of document",
"ng:c": "service",
"ng:u": "data",// favicon. can be a did:ng:j
@@ -594,7 +594,7 @@ export const official_services = {
"ng:result": ["file:iana:application:json"],
},
"n:g:z:dump_xml": {
- "ng:n": "XML export",
+ "ng:n": "Export XML",
"ng:a": "Export XML content of document",
"ng:c": "service",
"ng:u": "data",// favicon. can be a did:ng:j
@@ -604,7 +604,7 @@ export const official_services = {
"ng:result": ["file:iana:text:xml"],
},
"n:g:z:dump_text": {
- "ng:n": "Text export",
+ "ng:n": "Export Text",
"ng:a": "Export plain-text content of document",
"ng:c": "service",
"ng:u": "dump",// favicon. can be a did:ng:j
@@ -644,12 +644,12 @@ export const official_services = {
},
"n:g:z:load_text": {
"ng:n": "Import Text",
- "ng:a": "Import some text into the document",
+ "ng:a": "Import plain text into the document",
"ng:c": "service",
"ng:u": "load",// favicon. can be a did:ng:j
"ng:g": "n:g:z:load_text",
"ng:o": [],
- "ng:w": ["post:text","post:rich","post:md"],
+ "ng:w": ["post:text","post:rich","post:md","code*"],
},
"n:g:z:load_md": {
"ng:n": "Import Markdown",
diff --git a/ng-app/vite.config.ts b/ng-app/vite.config.ts
index a3930d98..c7ff6657 100644
--- a/ng-app/vite.config.ts
+++ b/ng-app/vite.config.ts
@@ -12,7 +12,8 @@ export default defineConfig(async () => {
const host = await internalIpV4()
const config = {
optimizeDeps: {
- exclude: ["codemirror", "@codemirror/*", "@codemirror/language", "@codemirror/state", "@codemirror/view","@codemirror/legacy-modes/mode/sparql"]
+ exclude: ["codemirror", "@codemirror/*", "@codemirror/language", "@codemirror/state", "@codemirror/view","@codemirror/legacy-modes/mode/sparql",
+ "@codemirror/lang-javascript", "@codemirror/lang-rust", "@replit/codemirror-lang-svelte", "yjs", "y-codemirror.next", "svelte-codemirror-editor"],
},
worker: {
format: 'es',
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6a2b467d..e6abaf78 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -33,14 +33,22 @@ importers:
specifiers:
'@codemirror/autocomplete': ^6.17.0
'@codemirror/commands': ^6.6.0
+ '@codemirror/lang-css': ^6.0.1
+ '@codemirror/lang-html': ^6.2.0
'@codemirror/lang-javascript': ^6.2.2
+ '@codemirror/lang-rust': ^6.0.1
'@codemirror/language': ^6.10.2
'@codemirror/legacy-modes': ^6.4.0
'@codemirror/lint': ^6.8.1
'@codemirror/search': ^6.5.6
'@codemirror/state': ^6.4.1
'@codemirror/view': ^6.29.1
+ '@lezer/common': ^1.0.0
+ '@lezer/highlight': ^1.0.0
+ '@lezer/javascript': ^1.2.0
+ '@lezer/lr': ^1.0.0
'@popperjs/core': ^2.11.8
+ '@replit/codemirror-lang-svelte': ^6.0.0
'@sveltejs/vite-plugin-svelte': ^2.0.0
'@tauri-apps/api': 2.0.0-alpha.8
'@tauri-apps/cli': 2.0.0-alpha.14
@@ -85,22 +93,30 @@ importers:
y-codemirror.next: ^0.3.5
yjs: ^13.6.18
dependencies:
- '@codemirror/autocomplete': 6.17.0_77urojsfbrmvdrcps23icldzhi
+ '@codemirror/autocomplete': 6.17.0_y4udqqf6vpekb2i4jypui2pd5e
'@codemirror/commands': 6.6.0
+ '@codemirror/lang-css': 6.2.1_@codemirror+view@6.29.1
+ '@codemirror/lang-html': 6.4.9
'@codemirror/lang-javascript': 6.2.2
+ '@codemirror/lang-rust': 6.0.1
'@codemirror/language': 6.10.2
'@codemirror/legacy-modes': 6.4.0
'@codemirror/lint': 6.8.1
'@codemirror/search': 6.5.6
'@codemirror/state': 6.4.1
'@codemirror/view': 6.29.1
+ '@lezer/common': 1.2.1
+ '@lezer/highlight': 1.2.0
+ '@lezer/javascript': 1.4.17
+ '@lezer/lr': 1.4.1
'@popperjs/core': 2.11.8
+ '@replit/codemirror-lang-svelte': 6.0.0_lm5kufzbvgjiwtncg4ikhuo3ce
'@tauri-apps/api': 2.0.0-alpha.8
'@tauri-apps/plugin-barcode-scanner': 2.0.0-alpha.0
'@tauri-apps/plugin-window': 2.0.0-alpha.1
async-proxy: 0.4.1
classnames: 2.3.2
- codemirror: 6.0.1
+ codemirror: 6.0.1_@lezer+common@1.2.1
flowbite: 1.6.5
flowbite-svelte: 0.43.3_svelte@3.59.1
html5-qrcode: 2.3.8
@@ -192,6 +208,20 @@ packages:
'@lezer/common': 1.2.1
dev: false
+ /@codemirror/autocomplete/6.17.0_y4udqqf6vpekb2i4jypui2pd5e:
+ resolution: {integrity: sha512-fdfj6e6ZxZf8yrkMHUSJJir7OJkHkZKaOZGzLWIYp2PZ3jd+d+UjG8zVPqJF6d3bKxkhvXTPan/UZ1t7Bqm0gA==}
+ peerDependencies:
+ '@codemirror/language': ^6.0.0
+ '@codemirror/state': ^6.0.0
+ '@codemirror/view': ^6.0.0
+ '@lezer/common': ^1.0.0
+ dependencies:
+ '@codemirror/language': 6.10.2
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.29.1
+ '@lezer/common': 1.2.1
+ dev: false
+
/@codemirror/commands/6.6.0:
resolution: {integrity: sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg==}
dependencies:
@@ -201,10 +231,36 @@ packages:
'@lezer/common': 1.2.1
dev: false
+ /@codemirror/lang-css/6.2.1_@codemirror+view@6.29.1:
+ resolution: {integrity: sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==}
+ dependencies:
+ '@codemirror/autocomplete': 6.17.0_y4udqqf6vpekb2i4jypui2pd5e
+ '@codemirror/language': 6.10.2
+ '@codemirror/state': 6.4.1
+ '@lezer/common': 1.2.1
+ '@lezer/css': 1.1.8
+ transitivePeerDependencies:
+ - '@codemirror/view'
+ dev: false
+
+ /@codemirror/lang-html/6.4.9:
+ resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==}
+ dependencies:
+ '@codemirror/autocomplete': 6.17.0_y4udqqf6vpekb2i4jypui2pd5e
+ '@codemirror/lang-css': 6.2.1_@codemirror+view@6.29.1
+ '@codemirror/lang-javascript': 6.2.2
+ '@codemirror/language': 6.10.2
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.29.1
+ '@lezer/common': 1.2.1
+ '@lezer/css': 1.1.8
+ '@lezer/html': 1.3.10
+ dev: false
+
/@codemirror/lang-javascript/6.2.2:
resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==}
dependencies:
- '@codemirror/autocomplete': 6.17.0_77urojsfbrmvdrcps23icldzhi
+ '@codemirror/autocomplete': 6.17.0_y4udqqf6vpekb2i4jypui2pd5e
'@codemirror/language': 6.10.2
'@codemirror/lint': 6.8.1
'@codemirror/state': 6.4.1
@@ -213,6 +269,13 @@ packages:
'@lezer/javascript': 1.4.17
dev: false
+ /@codemirror/lang-rust/6.0.1:
+ resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==}
+ dependencies:
+ '@codemirror/language': 6.10.2
+ '@lezer/rust': 1.0.2
+ dev: false
+
/@codemirror/language/6.10.2:
resolution: {integrity: sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==}
dependencies:
@@ -730,12 +793,28 @@ packages:
resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==}
dev: false
+ /@lezer/css/1.1.8:
+ resolution: {integrity: sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==}
+ dependencies:
+ '@lezer/common': 1.2.1
+ '@lezer/highlight': 1.2.0
+ '@lezer/lr': 1.4.1
+ dev: false
+
/@lezer/highlight/1.2.0:
resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==}
dependencies:
'@lezer/common': 1.2.1
dev: false
+ /@lezer/html/1.3.10:
+ resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==}
+ dependencies:
+ '@lezer/common': 1.2.1
+ '@lezer/highlight': 1.2.0
+ '@lezer/lr': 1.4.1
+ dev: false
+
/@lezer/javascript/1.4.17:
resolution: {integrity: sha512-bYW4ctpyGK+JMumDApeUzuIezX01H76R1foD6LcRX224FWfyYit/HYxiPGDjXXe/wQWASjCvVGoukTH68+0HIA==}
dependencies:
@@ -750,6 +829,14 @@ packages:
'@lezer/common': 1.2.1
dev: false
+ /@lezer/rust/1.0.2:
+ resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==}
+ dependencies:
+ '@lezer/common': 1.2.1
+ '@lezer/highlight': 1.2.0
+ '@lezer/lr': 1.4.1
+ dev: false
+
/@nodelib/fs.scandir/2.1.5:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -775,6 +862,34 @@ packages:
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
dev: false
+ /@replit/codemirror-lang-svelte/6.0.0_lm5kufzbvgjiwtncg4ikhuo3ce:
+ resolution: {integrity: sha512-U2OqqgMM6jKelL0GNWbAmqlu1S078zZNoBqlJBW+retTc5M4Mha6/Y2cf4SVg6ddgloJvmcSpt4hHrVoM4ePRA==}
+ peerDependencies:
+ '@codemirror/autocomplete': ^6.0.0
+ '@codemirror/lang-css': ^6.0.1
+ '@codemirror/lang-html': ^6.2.0
+ '@codemirror/lang-javascript': ^6.1.1
+ '@codemirror/language': ^6.0.0
+ '@codemirror/state': ^6.0.0
+ '@codemirror/view': ^6.0.0
+ '@lezer/common': ^1.0.0
+ '@lezer/highlight': ^1.0.0
+ '@lezer/javascript': ^1.2.0
+ '@lezer/lr': ^1.0.0
+ dependencies:
+ '@codemirror/autocomplete': 6.17.0_y4udqqf6vpekb2i4jypui2pd5e
+ '@codemirror/lang-css': 6.2.1_@codemirror+view@6.29.1
+ '@codemirror/lang-html': 6.4.9
+ '@codemirror/lang-javascript': 6.2.2
+ '@codemirror/language': 6.10.2
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.29.1
+ '@lezer/common': 1.2.1
+ '@lezer/highlight': 1.2.0
+ '@lezer/javascript': 1.4.17
+ '@lezer/lr': 1.4.1
+ dev: false
+
/@rollup/plugin-virtual/3.0.1:
resolution: {integrity: sha512-fK8O0IL5+q+GrsMLuACVNk2x21g3yaw+sG2qn16SnUd3IlBsQyvWxLMGHmCmXRMecPjGRSZ/1LmZB4rjQm68og==}
engines: {node: '>=14.0.0'}
@@ -1214,6 +1329,20 @@ packages:
'@codemirror/view': 6.29.1
dev: false
+ /codemirror/6.0.1_@lezer+common@1.2.1:
+ resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==}
+ dependencies:
+ '@codemirror/autocomplete': 6.17.0_y4udqqf6vpekb2i4jypui2pd5e
+ '@codemirror/commands': 6.6.0
+ '@codemirror/language': 6.10.2
+ '@codemirror/lint': 6.8.1
+ '@codemirror/search': 6.5.6
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.29.1
+ transitivePeerDependencies:
+ - '@lezer/common'
+ dev: false
+
/commander/4.1.1:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'}
@@ -2329,7 +2458,7 @@ packages:
codemirror: ^6.0.0
svelte: ^3.0.0 || ^4.0.0
dependencies:
- codemirror: 6.0.1
+ codemirror: 6.0.1_@lezer+common@1.2.1
svelte: 3.59.1
dev: false