-
Notifications
You must be signed in to change notification settings - Fork 0
Feature sheet
Hello there! This is a draft and is the first revision of the feature sheet, its not concrete yet.
The spectre wiki project is a spiritual successor to wiki.js.
The spectre wiki project is building off the current needs of a few things: Most wiki technologies are outdated and use PHP. Though, while next-generation wikis exist, the only large-scale one is wiki.js, and is currently in a state of life support.
Furthermore, lots of people like to collaborate on their work, like google docs. But there is also another flaw with large knowledge bases: they eventually get knowledge rot and become outdated overtime.
Spectre aims to solve these issues with a few goals:
- Make a very fast, easily accessible, collaborate and modular wiki technology.
- Keep this technology open for everyone with the GPL-3.0 license.
- And in the far future, make a wiki that is able to adapt, help, and patch your knowledge base, weather be it a department wiki, a large fandom of lore, or the information you wrote yourself.
- spacetimeDB - database
- leptos - front-end web UI framework - https://leptos.dev/
- axum - web directory/slugs
- Full markdown, evolving into SpecMarkUp.
- full image capabilities
- real-time collaborative editing (thanks to the insane speeds provided by spacetime DB)
- web alerts for the admin and operators
- complete leptos UI
- use Axum for slug editing on pages
- ready-to-deploy pod man and docker containers.
- add a banner system for the system and APIs to use, with any color and any text, plus a small icon slot.
Since spectre is written in rust, plugins will be added as "pallets". The plugin, as a pallet of code, will interact with the spectre API. The API will call for a trigger in the pallet, then the pallet will react accordingly, and return another event to the API.
The plugin is quite literally a pallet of code being loaded into the spectre instance, then being called to and read from. its not added to the system, but to a shelf where they get access.
SpecMarkUp, (or specmark, whatever u wanna call it) aka spectre markup, is an advanced version of Markdown. It includes extra features for intentions, raised and lowered characters, and Unicode characters... Etc, without requiring the support of html or an edit bar.
The basic syntax will remain the markdown standard.
The advance syntax is for the extra functions. WORK IN PROGRESS
- todo, draft unique syntax
Since some wikis like Wikipedia have hard requirements on how to write pages, or maybe some wikis dont like some words, add a rule-based soft filter that warns the writer they may be breaking a rule. Most wikis, for example, don't say "we". So this could be added as a soft alert.
Since Wikipedia requires links to state facts, there should be a link checker to:
- mark the link as a supporting evidence
- make sure the link is still operational. if the link dies, then a warning will show on the page.
Wiki.js 3.0 had an upcoming feature to make multiple wikis, in one wiki.js installation.
If a page has been unedited or unviewed for too long, the page will gain a stale banner warning readers that the information may be outdated.
Note: SOTC might actually be pointless, But it will be an optional feature for those lore bases n stuff.
The single source of truth checker is an internal, automated tool that checks the reliance of information, and an extension of [[#Link checker]].
upon the creation of a page, and if a page has no links, the editor will ask the editor if the page is a First source of truth. But, If a page has a few links, the editor will ask if it is a Second source of truth. any SOT will satisfy the [[#Link checker]], as SOT pages act just like a normal source of truth link from an external party.
example: Warhammer 40,000 lore, having the emperor of mankind being a first source of truth, and the golden throne and holy Terra being a second source of truth.
SOT's have generic classes, and are optional. If a class is made, they are automatically generated as a branch of the main SOT. An SOT by itself does NOT have a class appended to it.
Holy terra - generic SOT link, not different.
Holy terra::Community-rewrite - A branched version of the SOT, now appended with a [[#Classes|class]].
Sources of truth only have 2 ranks, and either of them have requirements to be considered as such.
A first source of truth is a foundational document that has essential or critical information that cannot be verified anywhere else. As since it is the ONLY source of truth on the topic.
Upon the editing of the page, and if the page exceeds;
- Greater then 1000 words, or;
- Has more then 3 pages linking to it. The editor will suggest converting the page to a First source of truth.
Alongside, specific criteria must be met:
- No Sources of truth of any variance is linked in the page.
A second source of truth is another foundational document that is essential or critical, and contains vital information that is only built upon a [[#First Source of truth]].
Upon editing a page, and a First source of truth is found, the editor will suggest the user to convert the page to a Second source of truth. Though, If an external source of truth OR another second source of truth is entered, then this suggestion is not available.