Crates.io | terminal-velocity |
lib.rs | terminal-velocity |
version | 1.0.1 |
source | src |
created_at | 2024-11-19 19:56:04.719394 |
updated_at | 2024-11-26 19:46:56.68958 |
description | A blazingly fast static site generator for dorks |
homepage | https://github.com/systemsoverload/terminal-velocity |
repository | https://github.com/systemsoverload/terminal-velocity |
max_upload_size | |
id | 1453808 |
size | 195,130 |
A blazingly fast static site generator for developers who want to write things down. Built with Rust for performance and efficiency.
████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗
╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║
██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║
██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║
██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗
╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝
██╗ ██╗███████╗██╗ ██████╗ ██████╗██╗████████╗██╗ ██╗
██║ ██║██╔════╝██║ ██╔═══██╗██╔════╝██║╚══██╔══╝╚██╗ ██╔╝
██║ ██║█████╗ ██║ ██║ ██║██║ ██║ ██║ ╚████╔╝
╚██╗ ██╔╝██╔══╝ ██║ ██║ ██║██║ ██║ ██║ ╚██╔╝
╚████╔╝ ███████╗███████╗╚██████╔╝╚██████╗██║ ██║ ██║
╚═══╝ ╚══════╝╚══════╝ ╚═════╝ ╚═════╝╚═╝ ╚═╝ ╚═╝
cargo install terminal-velocity
termv init hello-world
termv new "My First Post"
termv build
termv serve
After initialization, your project will have the following structure:
my-blog/
├── posts/ # Your markdown posts go here
├── templates/ # Tera templates
│ ├── base.html
│ ├── index.html
│ └── post.html
├── static/ # Static assets (CSS, images, etc.)
├── components/ # Reusable template components
└── config.toml # Site configuration
init
Initialize a new blog site:
termv init [path]
Options:
path
: Directory to create the new blog in (default: current directory)new
Create a new blog post:
termv new "Your Post Title"
This will create a new markdown file in the posts
directory with the following format:
YYYY-MM-DD-your-post-title.md
build
Build your site:
termv build [options]
Options:
--target-dir, -t
: Source directory containing your site (default: current directory)--output-path, -o
: Output directory for the built site (default: "dist")--verbose, -v
: Show verbose output during buildserve
Serve your site locally:
termv serve [options]
Options:
--target-dir, -t
: Directory containing the built site (default: "./dist")--port
: Port to serve on (default: 8080)--hot-reload
: Enable hot reloading on file changesPosts should be written in Markdown with YAML frontmatter:
---
title: "Your Post Title"
date: 2024-11-19
author: "Your Name"
tags: ["rust", "blog"]
preview: "A brief preview of your post"
slug: "your-post-slug"
---
Your post content here...
Terminal Velocity includes integration with Claude, Anthropic's large language model, to help you get started with blog post writing. When creating a new post, you can provide a prompt to generate an initial outline.
To generate a blog post outline using Claude, use the --prompt
flag with the new
command:
# Create a new post with AI-generated outline
termv new "My Post Title" --prompt "Write about the history and impact of the Rust programming language"
# You can also set your API key via environment variable
export ANTHROPIC_API_KEY=your_key_here
termv new "My Post Title" --prompt "Explain WebAssembly and its use cases"
The --prompt
flag requires an Anthropic API key, which you can provide in two ways:
ANTHROPIC_API_KEY
environment variable--anthropic-key
flag# Create a new post about distributed systems
termv new "Understanding Distributed Systems" --prompt "Explain key concepts in distributed systems including consensus, replication, and fault tolerance"
This will create a new post with:
The file will automatically open in your configured editor, where you can begin writing using the generated outline as a guide.
For best results with the outline generation:
Example prompt: "Write an outline for a technical blog post explaining WebAssembly to experienced JavaScript developers, focusing on real-world use cases and performance benefits"
The config.toml
file contains your site's configuration:
title = "My Terminal Velocity Blog"
description = "A blazingly fast tech blog"
base_url = "http://localhost:8000"
[author]
name = "Anonymous"
email = "author@example.com"
[build]
port = 8000
verbose = true
# Relative to the site directory
output_dir = "dist"
posts_dir = "posts"
templates_dir = "templates"
static_dir = "static"
cargo build
cargo test
To publish a new version:
Cargo.toml
git tag -a v0.1.0 -m "Release version 0.1.0"
git push origin v0.1.0
The GitHub Action will automatically:
If you need to publish manually:
# Verify everything works
cargo test
cargo publish --dry-run
# Publish to crates.io
cargo publish
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.