content: create demo vault with splash art and feature showcase pages
8 files: index.md with wiki-links, features overview, navigation guide, markdown showcase (all constructs), about page, changelog, and two guides (sysop handbook, writing content) in a subdirectory. Includes ANSI art splash.txt for the index page header.
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
---
|
||||
description: About BBS-MD and its design philosophy
|
||||
---
|
||||
|
||||
# About BBS-MD
|
||||
|
||||
## What Is This?
|
||||
|
||||
BBS-MD is a terminal-based markdown vault reader that channels the aesthetic of 1990s bulletin board systems. It turns a folder of markdown files into a navigable, interlinked information system — like a personal wiki you browse over SSH.
|
||||
|
||||
## Design Philosophy
|
||||
|
||||
### Terminal-Native
|
||||
|
||||
BBS-MD is built for the terminal. No web browser, no Electron, no GUI toolkit. Just your terminal emulator, a monospace font, and 16 colors. It runs over SSH, in tmux, on a Raspberry Pi, on a VPS — anywhere you have a shell.
|
||||
|
||||
### Vault as Filesystem
|
||||
|
||||
Your content is just markdown files in a directory. No database, no proprietary format, no lock-in. Edit with vim, VS Code, or `echo >>`. BBS-MD watches for changes and refreshes live.
|
||||
|
||||
### Retro Aesthetic
|
||||
|
||||
The CGA 16-color palette isn't a limitation — it's a feature. Box-drawing characters for code blocks and tables. ANSI art on the landing page. Reverse-video status bar. Every design choice asks: *would a SysOp in 1994 approve?*
|
||||
|
||||
### Safe by Default
|
||||
|
||||
BBS-MD is designed to run as a login shell. That means:
|
||||
|
||||
- A panic must never leave the terminal broken
|
||||
- A disconnect must never corrupt state
|
||||
- The user must always be able to exit
|
||||
- The app must always restore the terminal
|
||||
|
||||
These aren't nice-to-haves. When your app *is* the shell, safety is the foundation.
|
||||
|
||||
## Tech Stack
|
||||
|
||||
| Component | Technology |
|
||||
|----------------|-------------------|
|
||||
| Language | Rust (Edition 2024) |
|
||||
| TUI Framework | ratatui 0.30 |
|
||||
| Terminal | crossterm |
|
||||
| Markdown | pulldown-cmark (GFM) |
|
||||
| Highlighting | syntect |
|
||||
| ANSI Art | ansi-to-tui |
|
||||
| File Watching | notify 6.1 |
|
||||
| Dir Traversal | walkdir 2.5 |
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
bbs-md/
|
||||
src/
|
||||
main.rs Entry point, terminal init, event loop
|
||||
app.rs App state, navigation, key handling
|
||||
config.rs TOML config loading (bbs.toml)
|
||||
vault.rs Document loading, wiki-link resolution
|
||||
renderer.rs Markdown-to-styled-lines pipeline
|
||||
highlighter.rs Syntax highlighting with CGA colors
|
||||
splash.rs ANSI art splash screen loader
|
||||
signals.rs Unix signal handlers (SIGHUP, SIGTERM)
|
||||
terminal.rs Terminal init/restore, panic hook
|
||||
vault/
|
||||
index.md Landing page (splash.txt prepended)
|
||||
splash.txt ANSI art header (optional)
|
||||
*.md Your content lives here
|
||||
```
|
||||
|
||||
> BBS-MD is a single binary with no runtime dependencies. Compile it, drop it on a server, point it at a vault.
|
||||
|
||||
Back to [[index|home]] or read the [[Changelog]].
|
||||
Reference in New Issue
Block a user