Skip to content

charlestang/HexoPress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

315 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
logo

HexoPress

The ultimate desktop editor for Hexo blogs — simple, efficient, and ready to use!

Now also available as a self-hosted web app!

license last-commit Electron.js vue NodeJS npm vite Fastify downloads

An open-source blogging software that offers a user-friendly article editing interface and content management system for Hexo-based blogs. Available as both a desktop app (Electron) and a self-hosted web app.

English | 简体中文


⭐️ If you like HexoPress, please star us and help more people discover it!


Quick Start

  1. Download the version for your OS
  2. Unzip and run HexoPress
  3. Select your Hexo blog directory and start writing!

I. Introduction

HexoPress makes Hexo blogging as easy as WordPress! No more manual Front Matter editing — what you see is what you get, with multi-platform support and a desktop-level experience.

  • Pain Point: Hexo's native content management is scattered and complex, with metadata requiring manual editing.
  • Solution: HexoPress reads Hexo's cache in real time, displays categories/tags in a tree, and lets you set metadata with a click. Front Matter is auto-organized.
  • Core Value: Minimal operation, WYSIWYG, Vim mode support, and a true desktop experience.

Tech Stack

  • Vue 3, Element Plus, Vite 5, Electron, Fastify

II. Installation

0. Compatibility

  • Supports Hexo 7.0.0 and above (uses Hexo 8.0.0 API internally)
  • Please back up your blog directory before use (git integration recommended)

1. Mac

2. Web Mode (Self-hosted)

HexoPress can also run as a standalone web application on your server, providing a browser-based management interface for your Hexo blog — no Electron required.

Step 1: Clone and install

git clone https://github.com/charlestang/HexoPress.git
cd HexoPress
npm install

Step 2: Create a config file

cp web/hexopress.config.example.json hexopress.config.json

Edit hexopress.config.json:

{
  "hexoDir": "/path/to/your/hexo/blog",
  "port": 4000,
  "username": "admin",
  "password": "your-secure-password",
  "secret": ""
}
Field Description
hexoDir Absolute path to your Hexo blog root directory
port Port the web server listens on
username Login username
password Login password
secret Cookie signing secret (auto-generated if left empty)

Step 3: Build and run

npm run web:build    # Build the SPA and server bundle
node dist/server.cjs # Start the production server

Then open http://your-server-ip:4000 in your browser and log in.

Development mode:

npm run web:dev      # Starts Vite dev server + API server with hot reload

III. Features

  • 📝 Article list with "Published"/"Draft" filter
  • 📅 Filter by month
  • 🗂️ Filter by category
  • 🔍 Keyword search
  • 🌳 Tree view for categories with article count
  • 🏷️ Tag list with article count, tag posts dialog, and tag filter
  • 🖼️ Media resource management with detail view
  • 🗑️ Delete unused media assets (png/jpg/jpeg) with confirmation
  • ✍️ Markdown editor with preview
  • 📋 Outline panel
  • 🖼️ Media panel in editor for quick asset insertion
  • ⌨️ Vim key bindings
  • 📊 Dropdown for categories/tags
  • 🔖 Batch edit categories
  • ⚙️ Quick FrontMatter editing
  • 💾 Configurable auto-save
  • 🤖 AI-assisted writing panel with chat interface and presets
  • 📊 Dashboard with profile card, contribution heatmap, and recent posts
  • 🌐 Web mode: self-hosted browser-based management with login authentication
  • 🌍 Multi-language support (English / Simplified Chinese)

IV. User Guides


V. Screenshots

Each screenshot is briefly explained below

1. Dashboard

Dashboard Overview of your blog data

2. Posts List

Posts List Quickly filter and manage all posts

3. Editor

Editor WYSIWYG, Vim mode supported

4. Categories Management

Categories Management Tree structure for intuitive category management

5. Tags Management

Tags Management Clear tag overview and statistics

6. Category Detail

Category Detail View all posts under a category, with bulk reassign and bulk remove operations

7. Tag Posts Dialog

Tag Posts Dialog Browse posts under a tag in-app, with inline tag removal

8. Media Library

Media Library Image assets grouped by name variants, with card preview

9. Media Detail

Media Detail Full metadata, all size variants, reference lookup, and per-variant delete


VI. Getting Started from Source Code

Get familiar with the project using the docs in docs/: Architecture & Data Flow, window.site / IPC API Reference, and Developer Onboarding Guide.

1. Clone the source code

git clone https://github.com/charlestang/HexoPress.git

2. Running Environment

  • Node.js >= v20.8.1
  • npm >= v10.5.5
  • Ports: 5173 (frontend), 2357 (local image service)

3. Install Dependencies

npm install

4. Run

npm run dev          # Start Electron dev environment
npm run web:dev      # Start Web mode dev environment
npm run lint         # Lint code
npm run format       # Format code
npm run test         # Run tests

5. Package

npm run package      # Package Electron app
npm run make         # Build distributable installer
npm run web:build    # Build web mode for production

VII. Contribution

1. Report Issues

2. Contribute Code

  1. Fork this repository
  2. Create your feature branch: git checkout -b <feature-name>
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin <feature-name>
  5. Submit a pull request

VIII. Join the Community

  • WeChat/QQ/Telegram (add if available)

IX. Appendix


⭐️ If you like HexoPress, please star us and help more people discover it!


About

A multi-platform client that offers a user-friendly article editing interface and content management system for Hexo-based blogs. 为基于 Hexo 的博客,提供友好易用的文章编辑界面和内容管理系统的,开源博客软件。

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages