Silan Personal Website - Python CLI Tools
Python command-line interface for the Silan Personal Website platform. Provides intelligent content management, database synchronization, and backend server management.
Features
- Content Management - Create and manage projects, blogs, ideas, and episodes
- Database Sync - Automated markdown-to-database synchronization (MySQL, PostgreSQL, SQLite)
- Frontend Templates - Install static or development frontend templates
- Backend Management - Start, stop, and manage Go backend server
- File Operations - Edit, append, and write content files
- Content Discovery - List, show, and search content across types
Installation
pip install silan-personal-website
Quick Start
Initialize a New Portfolio
silan init my-portfolio
cd my-portfolio
Create Content
# Create a new project
silan new project "My Project" --title "Amazing Project"
# Create a blog post
silan new blog "my-post" --title "My First Post"
# Create an idea
silan new idea "Research Idea" --title "AI Innovation"
Sync to Database
# Configure database (interactive)
silan db-config interactive
# Sync content to database
silan db-sync
Start Backend Server
# Start the Go backend server
silan backend start --db-type sqlite --db-path portfolio.db
Install Frontend
# Install static frontend files
silan frontend install
# Install full development project
silan frontend install --dev
Commands
Content Creation
silan new <type> <name>- Create new content (project, blog, idea, episode)silan projects create- Create project scaffoldsilan ideas create- Create idea scaffold
Database Operations
silan db-sync- Sync markdown content to databasesilan db-config- Manage database configuration
Backend Management
silan backend start- Start Go backend serversilan backend stop- Stop backend serversilan backend status- Check backend statussilan backend logs- View backend logssilan backend install- Build backend binary
Frontend Management
silan frontend install- Install frontend templatessilan frontend install --dev- Install development project
Content Operations
silan ls [type]- List content itemssilan show <type> <name>- Show content detailssilan search <query>- Search contentsilan edit <type> <name> <file>- Edit content filesilan append <type> <name> <file>- Append to content file
Utilities
silan status- Show project statussilan help [topic]- Get help
Configuration
The CLI uses a silan.yaml configuration file in your project directory:
project:
name: "My Portfolio"
language: "en"
database:
type: "sqlite"
path: "portfolio.db"
auth:
google_client_id: "your-client-id"
content_types:
- blog
- projects
- ideas
- resume
- episode
Database Support
- SQLite - Local development (default)
- MySQL - Production database
- PostgreSQL - Alternative production database
Requirements
- Python 3.9+
- Go 1.23+ (for backend server)
- Node.js 18+ (for frontend development)
Development
# Clone repository
git clone https://github.com/Qingbolan/Silan-Personal-Website.git
cd Silan-Personal-Website/silan-personal-website
# Install in development mode
pip install -e .
# Run tests
pytest
# Format code
black silan/
Documentation
Full documentation available at: https://github.com/Qingbolan/Silan-Personal-Website
License
Apache License 2.0
Author
Silan Hu - AI Researcher & Full Stack Developer
- Website: silan.tech
- GitHub: @Qingbolan
- Email: silan.hu@u.nus.edu
Contributing
Contributions are welcome! Please read the contributing guidelines in the main repository.
Changelog
v1.0.0 (2025-10-06)
- Initial release
- Content management CLI
- Database synchronization (MySQL, PostgreSQL, SQLite)
- Backend server management
- Frontend template installation
- Frontmatter removal support
- Multi-language content support
Metadata
Release files for silan-personal-website 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| silan_personal_website-1.0.2.tar.gz | 36.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| silan_personal_website-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 72.5 MB
Release files / silan_personal_website-1.0.2.tar.gz
| Download URL | silan_personal_website-1.0.2.tar.gz |
|---|---|
| Size | 36.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0fcba75751fb26ffc1c4c8cdf576ebd7f8ebea6c88ac05d3604d8b95475f9814
|
|
BLAKE2b-256 checksum How to use checksums |
06295e82ee6e4875543b48b13552bdf9ac73da1e61daf8c538c1665308448cc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Release files / silan_personal_website-1.0.2-py3-none-any.whl
| Download URL | silan_personal_website-1.0.2-py3-none-any.whl |
|---|---|
| Size | 36.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8ce36ab67d3d46b6e6bd3662082ef5615975f9337f656785b86c526ec83ae026
|
|
BLAKE2b-256 checksum How to use checksums |
d9863b91ca76962c5af5e6c3902fb0baf2451398ac1a77b7e920c9b01559ca44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|