Changes
2 changed files (+71/-29)
-
-
@@ -1,36 +1,42 @@{ "nodes":[ {"id":"16ecec9768556d1e","type":"group","x":40,"y":-1000,"width":1120,"height":964,"color":"2","label":"Generator"}, {"id":"cef7273c31316035","type":"group","x":320,"y":-1400,"width":740,"height":220,"label":"Legends"}, {"id":"6eb909fa8cc61ae3","type":"text","text":"# Tree Builder\nResponsible for parsing and building a document tree, responsing for query.","x":100,"y":-470,"width":340,"height":130,"color":"5"}, {"id":"be29f4cfc87ef7d8","type":"text","text":"# FileSystem Reader\nResponsible for listing, reading, and watching directory or file. This module can only operate inside a source directory.","x":100,"y":-263,"width":340,"height":188,"color":"5"}, {"id":"c79ac0d3442961f7","type":"text","text":"# Page Builder\nResponsible for building a page from a document and a document tree.","x":100,"y":-700,"width":340,"height":140,"color":"5"}, {"id":"365cf0be0cbcaa06","type":"text","text":"# Plugin registry\nA plugin registers what element (Markdown AST node or HTML element) to process at first, then Page Builder invokes registered plugin if matching element found.","x":100,"y":-960,"width":500,"height":160,"color":"5"}, {"id":"b47e4fabfd3da80f","type":"text","text":"# CLI","x":1300,"y":-960,"width":250,"height":100,"color":"1"}, {"id":"0a9a5285a6521a49","type":"text","text":"# Core\nAct as an endpoint for the generator. Schedule and coordinates various modules.","x":798,"y":-650,"width":324,"height":180,"color":"5"}, {"id":"eea88958e6425901","type":"text","text":"# Obsidian Vault\nPage source data is stored as Markdown files in plain arbitrary directory.","x":-320,"y":-104,"width":300,"height":184}, {"id":"7df3ad03e3d0486c","type":"text","text":"# FileSystem Writer\nResponsible for creating and writing directory or file. This can only operate inside an output directory.","x":798,"y":-263,"width":324,"height":188,"color":"5"}, {"id":"b4d105b9f43d32e4","type":"text","text":"# Generated site\nHTML/CSS/JS files, along with RSS feed and other site metadata things.","x":798,"y":80,"width":320,"height":160}, {"id":"ed3a9fdae2c1eb0e","type":"text","text":"# User Agent\nMostly web browser.","x":1300,"y":160,"width":300,"height":160}, {"id":"d27605d3bbfcf821","type":"text","text":"# Dev Server","x":1345,"y":-147,"width":210,"height":86,"color":"1"}, {"id":"a4415114ae6abd10","type":"text","text":"# Module\nBox with this color indicates the box is a module.","x":340,"y":-1360,"width":280,"height":140,"color":"5"}, {"id":"985228be1f82ddfd","type":"text","text":"# Program\nBox with this color indicates the box is an executable.","x":698,"y":-1360,"width":280,"height":140,"color":"1"} {"id":"16ecec9768556d1e","type":"group","x":-540,"y":-1240,"width":1840,"height":1280,"color":"2","label":"Macana"}, {"id":"cef7273c31316035","type":"group","x":10,"y":-1560,"width":740,"height":220,"label":"Legends"}, {"id":"ecd9e84968c62b30","type":"text","text":"# Core\nAct as an endpoint for the Macana API. Schedule and coordinates various modules.","x":-420,"y":-580,"width":384,"height":180,"color":"5"}, {"id":"1f5682267b09b226","type":"text","text":"# Tree Builder\nResponsible for generating a *document tree* by accessing *FileSystem reader*.","x":0,"y":-860,"width":340,"height":140,"color":"5"}, {"id":"bcf0d415d8a93b32","type":"text","text":"# FileSystem Reader\nResponsible for listing, reading, and watching directory or file. This module can only operate inside a source directory.","x":400,"y":-720,"width":340,"height":188,"color":"5"}, {"id":"93d09ea326981248","type":"text","text":"# Asset Manager\nResponsible for storing assets and resolving generated file path.","x":640,"y":-370,"width":340,"height":160,"color":"5"}, {"id":"c637b07c530db189","type":"text","text":"# Page Builder\nResponsible for generating a HTML page from a *document tree* and a *document*.","x":80,"y":-450,"width":340,"height":160,"color":"5"}, {"id":"d9484aaae39c7cfd","type":"text","text":"# FileSystem Writer\nResponsible for creating and writing directory or file. This can only operate inside an output directory.","x":96,"y":-170,"width":324,"height":188,"color":"5"}, {"id":"7e6026f0fc91341d","type":"text","text":"# Metadata Parser\nResponsible for parsing a file or a directory and returning a *document metadata*.\n","x":-70,"y":-1150,"width":480,"height":160,"color":"5"}, {"id":"dde7cf5affd69b12","type":"text","text":"# Asset Plugins\nResponsible for transforming an asset file content and/or filename.","x":880,"y":-612,"width":340,"height":160,"color":"5"}, {"id":"b4d105b9f43d32e4","type":"text","text":"# Generated site\nHTML/CSS/JS files, along with RSS feed and other site metadata things.","x":100,"y":120,"width":320,"height":160}, {"id":"ed3a9fdae2c1eb0e","type":"text","text":"# User Agent\nMostly web browser.","x":-255,"y":120,"width":300,"height":160}, {"id":"d27605d3bbfcf821","type":"text","text":"# Dev Server","x":-210,"y":-119,"width":210,"height":86,"color":"1"}, {"id":"b47e4fabfd3da80f","type":"text","text":"# CLI","x":-505,"y":-126,"width":250,"height":100,"color":"1"}, {"id":"eea88958e6425901","type":"text","text":"# Obsidian Vault\nPage source data is stored as Markdown files in plain arbitrary directory.","x":1360,"y":-812,"width":300,"height":184}, {"id":"a4415114ae6abd10","type":"text","text":"# Module\nBox with this color indicates the box is a module.","x":30,"y":-1520,"width":280,"height":140,"color":"5"}, {"id":"985228be1f82ddfd","type":"text","text":"# Program\nBox with this color indicates the box is an executable.","x":388,"y":-1520,"width":280,"height":140,"color":"1"}, {"id":"666a11c598e85979","type":"text","text":"# User script\nDeno script user wrote.","x":-920,"y":-554,"width":320,"height":128,"color":"5"} ], "edges":[ {"id":"60cf98a46738e9dd","fromNode":"be29f4cfc87ef7d8","fromSide":"bottom","toNode":"eea88958e6425901","toSide":"right"}, {"id":"e039e7acfd9bb090","fromNode":"7df3ad03e3d0486c","fromSide":"bottom","toNode":"b4d105b9f43d32e4","toSide":"top"}, {"id":"9d28e2e189fcc6d1","fromNode":"ed3a9fdae2c1eb0e","fromSide":"top","toNode":"d27605d3bbfcf821","toSide":"bottom","fromEnd":"arrow","label":"HTTP"}, {"id":"ca6c828dffb03024","fromNode":"d27605d3bbfcf821","fromSide":"top","toNode":"0a9a5285a6521a49","toSide":"right","label":"Request partial build"}, {"id":"798cdc01140de03d","fromNode":"6eb909fa8cc61ae3","fromSide":"left","toNode":"be29f4cfc87ef7d8","toSide":"left","label":"Read directories, files"}, {"id":"0648fddc22b04bbe","fromNode":"be29f4cfc87ef7d8","fromSide":"right","toNode":"6eb909fa8cc61ae3","toSide":"right","label":"Notify file or directory changes"}, {"id":"c56bdc7b7055b9f4","fromNode":"0a9a5285a6521a49","fromSide":"bottom","toNode":"6eb909fa8cc61ae3","toSide":"right","label":"Query node/tree"}, {"id":"fd5f1dc0b997b716","fromNode":"0a9a5285a6521a49","fromSide":"left","toNode":"c79ac0d3442961f7","toSide":"right","label":"Request build"}, {"id":"30585db0fd8df11b","fromNode":"c79ac0d3442961f7","fromSide":"right","toNode":"0a9a5285a6521a49","toSide":"top","label":"Return built files"}, {"id":"c239c70489df47e8","fromNode":"0a9a5285a6521a49","fromSide":"bottom","toNode":"7df3ad03e3d0486c","toSide":"top","label":"Write built files"}, {"id":"cabf2cab44a8e429","fromNode":"6eb909fa8cc61ae3","fromSide":"top","toNode":"0a9a5285a6521a49","toSide":"bottom","label":"Notify changes"}, {"id":"cc94c9e8055a0dfc","fromNode":"c79ac0d3442961f7","fromSide":"top","toNode":"365cf0be0cbcaa06","toSide":"bottom","label":"Invoke"}, {"id":"c208e5f9765537c3","fromNode":"365cf0be0cbcaa06","fromSide":"left","toNode":"c79ac0d3442961f7","toSide":"left","label":"Register"}, {"id":"cd1a900fbcb59fe9","fromNode":"0a9a5285a6521a49","fromSide":"right","toNode":"d27605d3bbfcf821","toSide":"left","label":"Return built files"}, {"id":"0a48b27acf8d3a52","fromNode":"b47e4fabfd3da80f","fromSide":"bottom","toNode":"0a9a5285a6521a49","toSide":"top","label":"Request full build"} {"id":"2502c36efb8650a2","fromNode":"1f5682267b09b226","fromSide":"top","toNode":"7e6026f0fc91341d","toSide":"bottom","color":"1","label":"File / Directory"}, {"id":"d283db6e20fddc67","fromNode":"7e6026f0fc91341d","fromSide":"right","toNode":"1f5682267b09b226","toSide":"right","color":"6","label":"Document metadata"}, {"id":"05e0aed4c96b7b73","fromNode":"ecd9e84968c62b30","fromSide":"top","toNode":"1f5682267b09b226","toSide":"left","color":"1","label":"Build request"}, {"id":"67d567fd897faaa5","fromNode":"1f5682267b09b226","fromSide":"bottom","toNode":"ecd9e84968c62b30","toSide":"top","color":"6","label":"Document tree"}, {"id":"f28e9191da09b24f","fromNode":"ecd9e84968c62b30","fromSide":"right","toNode":"c637b07c530db189","toSide":"top","color":"6","label":"Document tree /\nDocument metadata"}, {"id":"8284d0da786f676b","fromNode":"c637b07c530db189","fromSide":"bottom","toNode":"d9484aaae39c7cfd","toSide":"top","color":"4","label":"Generated files"}, {"id":"7b4d9467cbcec90e","fromNode":"bcf0d415d8a93b32","fromSide":"left","toNode":"1f5682267b09b226","toSide":"bottom","color":"1","label":"File / Directory"}, {"id":"da06849ede2f1e43","fromNode":"93d09ea326981248","fromSide":"bottom","toNode":"d9484aaae39c7cfd","toSide":"right","color":"4","label":"Generated files"}, {"id":"1dd432cd2ba9a18d","fromNode":"c637b07c530db189","fromSide":"right","toNode":"93d09ea326981248","toSide":"left","color":"3","label":"Asset"}, {"id":"a0543dccaeca0491","fromNode":"bcf0d415d8a93b32","fromSide":"bottom","toNode":"93d09ea326981248","toSide":"top","color":"3","label":"File"}, {"id":"80cdcb6627cdc128","fromNode":"93d09ea326981248","fromSide":"right","toNode":"dde7cf5affd69b12","toSide":"bottom","fromEnd":"arrow","color":"5"}, {"id":"0e152fdaa4fc5b8b","fromNode":"d9484aaae39c7cfd","fromSide":"bottom","toNode":"b4d105b9f43d32e4","toSide":"top"}, {"id":"b5b8d60304fb4839","fromNode":"d27605d3bbfcf821","fromSide":"top","toNode":"ecd9e84968c62b30","toSide":"bottom"}, {"id":"372c5518dfc96cc2","fromNode":"b47e4fabfd3da80f","fromSide":"top","toNode":"ecd9e84968c62b30","toSide":"bottom"}, {"id":"d1dfb8d829247781","fromNode":"d27605d3bbfcf821","fromSide":"right","toNode":"d9484aaae39c7cfd","toSide":"left"}, {"id":"8af32a521e2be033","fromNode":"eea88958e6425901","fromSide":"left","toNode":"bcf0d415d8a93b32","toSide":"right"}, {"id":"a2dff019b740cad3","fromNode":"666a11c598e85979","fromSide":"right","toNode":"ecd9e84968c62b30","toSide":"left"} ] }
-
-
-
@@ -0,0 +1,36 @@## Document A parsed note or canvas in a Vault. A *document* consists of *document metadata* and *document content*. ## Document metadata Properties describing a *document* or a *document directory* required for generating a website. *Document metadata* consists of a *document name* and *document title*. ## Document name An identifier for a document, unique among a directory the document belongs to. A *document name* appears in a generated URL, thus available characters are limited to: - Alphabet (`a-z`, `A-Z`) - Digit (`0-9`) - Percent symbol (`%`) - Hyphen (`-`) - Dot (`.`) - Underscore (`_`) - Tilde (`~`) ## Document title Human-readable text representing a title of the *document*. Although there is no restriction on available characters, you should avoid using control characters. ([Unicode control characters - Wikipedia](https://en.wikipedia.org/wiki/Unicode_control_characters)) ## Document directory A directory (folder) containing *document metadata* and *document directories*. A document directory consists of *document metadata* of its own and zero or more *document metadata* and/or *document directory*. ## Document tree Tree structured data contains *document metadata* and *document directories* per locales.
-