✜ Piki – core library
Core library for Piki personal wiki application
[!IMPORTANT]
This is the crate-level README for thepiki-corelibrary only. For overall Piki documentation, see the main repo.
This crate provides the shared functionality used by both the CLI and GUI frontends of Piki. It handles document storage, plugin system, and core wiki operations.
Overview
piki-core is a Rust library that provides the foundation for managing a personal wiki using plain Markdown files. It's designed to be backend-agnostic, allowing different frontends (CLI, GUI, etc.) to build on top of it.
Features
- Document Store: Manages Markdown files on the filesystem
- Plugin System: Extensible architecture for dynamic pages
- Git-friendly: Works seamlessly with version-controlled directories
- Cross-platform: Works on Windows, macOS, Linux, and BSD
- No Dependencies on UI: Pure Rust library with no GUI dependencies
Usage
Add this to your Cargo.toml:
[]
= "0.1.1"
Architecture
The core library provides:
- Document Management: Reading, writing, and organizing Markdown files
- Plugin System: Built-in
!indexplugin and extensible plugin API for dynamic content - Link Resolution: Handling both Markdown links (
[text](page.md)) and wiki-style links ([[PageName]]) - File Operations: Safe file I/O with parent directory creation
Plugin System
The plugin system allows for dynamic pages with a ! prefix. Built-in plugins include:
!index- Lists all pages in the wiki
Plugins are read-only and generate content dynamically rather than being stored on disk.
License
MIT License