Skip to content

sevenwiki/sevenmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SevenMark

High-performance wiki markup parser for SevenWiki.

Rust License Discord

What's Included

  • Parser: SIMD-optimized (winnow), 50+ element types, location tracking
  • Transform: Variable substitution, includes, media resolution
  • Server: REST API with PostgreSQL, Swagger UI
  • WASM: Browser/Node.js builds with CodeMirror support
  • Editor Support: VS Code extension and JetBrains plugin via LSP

Crates

Crate Description
sevenmark_ast AST types and traversal utilities
sevenmark_semantic Semantic analysis helpers
sevenmark_parser Core parsing engine (standalone)
sevenmark_utils Shared utilities
sevenmark_wasm WebAssembly bindings (parser + LSP)
sevenmark_html HTML renderer
sevenmark_transform AST preprocessing/postprocessing
sevenmark_lsp_core Transport-agnostic LSP logic
sevenmark_language_server Native LSP server (stdio transport)
sevenmark_server REST API server

Editor Support

Editor Path How it works
VS Code editors/vscode/ LSP client via vscode-languageclient
JetBrains editors/jetbrains/ Built-in LSP API (com.intellij.modules.lsp, 2024.2+)

Both connect to the same sevenmark_language_server binary. Install it via PATH or use the bundled binary in platform-specific release packages.

Web Editor (WASM)

sevenmark_wasm exports handle_lsp_message(json) for running the full LSP in a browser Web Worker - no server proxy needed. Diagnostics, semantic tokens, completions, hover, go-to-definition, folding, and document symbols all work locally via JSON-RPC.

Publishing

cargo xtask publish-dry  # Dry run
cargo xtask publish      # Publish to crates.io

License

AGPL-3.0-only