Crates.io | mdlib |
lib.rs | mdlib |
version | 0.1.1 |
created_at | 2025-04-16 11:17:00.534773+00 |
updated_at | 2025-04-17 08:40:28.419431+00 |
description | A beautiful markdown note-taking application |
homepage | https://github.com/bahdotsh/mdlib |
repository | https://github.com/bahdotsh/mdlib |
max_upload_size | |
id | 1636332 |
size | 222,918 |
A beautiful, web-based tool for creating, editing, and organizing markdown notes with real-time preview.
The simplest way to install mdlib is through cargo:
cargo install mdlib
Once installed, you can run mdlib
from any directory to serve that directory's markdown files.
git clone https://github.com/bahdotsh/mdlib.git
cd mdlib
cargo build --release
The compiled binary will be located in target/release/mdlib
.
To start mdlib, run:
mdlib [DIRECTORY]
Where [DIRECTORY]
is the path to the directory containing your markdown files. If not specified, the current directory is used.
You can also specify a custom configuration file:
mdlib --config-file /path/to/config.json [DIRECTORY]
Once started, open your browser and navigate to http://localhost:3000.
mdlib includes special commands to manage your configuration:
# Show config file location and current settings
mdlib --config
# Create a default config file
mdlib --config create
# List all embedded static files (for debugging)
mdlib --list-embedded
Ctrl/Cmd + S
: Save current fileCtrl/Cmd + B
: Bold selected textCtrl/Cmd + I
: Italicize selected textCtrl/Cmd + P
: Toggle preview modeCtrl/Cmd + N
: Create new notesrc/
: Source code
main.rs
: Entry pointfs.rs
: File system operationsserver.rs
: Web server and API endpointsconfig.rs
: Configuration managementembedded.rs
: Embedded static assets handlerstatic/
: Static web files (embedded into the binary at compile time)
index.html
: Main HTML pagecss/
: Stylesheetsjs/
: JavaScript files# Clone the repository
git clone https://github.com/bahdotsh/mdlib.git
cd mdlib
# Build the project
cargo build --release
# Run the application
./target/release/mdlib
You can specify a custom configuration file with the --config-file
option:
mdlib --config-file /path/to/config.json
Configuration options include:
Here's a sample config.json
file with default settings:
{
"port": 3000,
"watch_files": true,
"bind_address": "127.0.0.1",
"max_file_size_mb": 10,
"default_dark_mode": false
}
These settings can be customized according to your preferences:
port
: The HTTP port for the mdlib server (default: 3000)
watch_files
: Whether to watch for file changes and auto-refresh (default: true)
bind_address
: The address to bind to (default: "127.0.0.1", use "0.0.0.0" to allow external access)
max_file_size_mb
: Maximum file size in megabytes (default: 10)
default_dark_mode
: Start in dark mode by default (default: false)
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.