LiteLog


完整内容(Markdown)

# LiteLog

**为扩展而生的轻量博客系统**

LiteLog 采用钩子驱动架构,通过 **插件、主题、小工具、首页模式** 四层扩展机制,
让你在不改动一行内核代码的前提下,把博客改造成论坛、小说站、企业官网……

[立即下载](#download) · [在线演示](#demo) · [查看文档](#docs)

---

## ✨ 为什么选择 LiteLog

### 🪶 极致轻量

内核不到 **100 KB**,零 Composer 依赖,零构建步骤。
上传即用,FTP 就能部署。

### 🪝 钩子系统

内置 **50+ 钩子**,覆盖从请求分发、控制器逻辑、模板渲染到后台菜单的完整生命周期。
你可以在任意位置无侵入地插入自己的代码。

### 🧩 插件生态

论坛、小说、页面管理……
每个插件都是独立目录,**复制即装,删除即卸**。
不写一行数据库迁移脚本,启用时自动建表。

### 🎨 小工具系统

仿 WordPress 的**拖拽式**小工具管理。
每个小工具支持**多实例**、独立配置、条件显示,
插件开发者只需继承一个类即可接入。

### 🔀 首页多模式

博客?论坛?小说书城?
**一键切换**首页主栏内容,模式支持模块化扩展——
把 `content/homepage_modes/` 丢进一个目录,后台自动出现新选项。

### 🌗 主题模板

模板与业务逻辑**完全分离**。
一套模板文件,随时切换整站外观。

---

## 🚀 三步开始

### 1️⃣ 下载

从 [GitHub 仓库](https://github.com/) 克隆或下载最新版本:

git clone https://github.com/yourname/litelog.git


### 2️⃣ 上传

把整个目录上传到服务器任意位置(含子目录均可):

/www/wwwroot/your-site/
├── admin/
├── content/
├── include/
├── init.php
└── install.php


### 3️⃣ 安装

访问 `http://你的域名/install.php`,按引导填写数据库信息即可。

> 💡 **无需迁移工具**
> 所有数据表会在插件首次启用时自动创建。

---

## 📦 官方模块

| 模块 | 说明 | 来源 |
| :--- | :--- | :---: |
| 💬 **论坛** | 版块、主题、回复、附件上传、富文本编辑器 | 插件 |
| 📚 **小说** | 书籍、章节、书架、EPUB/TXT 导入、4 主题阅读器 | 插件 |
| 📄 **页面** | 类 WordPress 独立页面,支持层级、菜单、模板 | 插件 |
| 🎨 **小工具** | 拖拽式配置侧栏内容 | 内核 |
| 🔀 **首页模式** | 博客 / 论坛 / 小说 一键切换 | 内核 |

---

## 🏗️ 架构一览

litelog/
├── admin/ 后台管理
├── include/
│ ├── lib/ 核心库
│ │ ├── hook.php 钩子系统
│ │ ├── widget.php 小工具系统
│ │ ├── homepage_mode.php 首页模式系统
│ │ └── ...
│ ├── model/ 数据模型
│ └── controller/ 控制器
├── content/
│ ├── plugins/ 插件目录
│ ├── templates/ 主题目录
│ ├── homepage_modes/ 首页模式模块
│ └── uploads/ 上传文件
└── init.php 入口


---

## 🔧 技术栈

| 层级 | 技术 |
| :--- | :--- |
| 后端 | PHP 7.4+ · PDO · MySQL 5.7+ |
| 前端 | 原生 JS · CSS3 · 无框架 |
| 编辑器 | 自研 LiteEditor(WYSIWYG + Markdown 双模式) |
| 图标 | 内联 SVG(零请求) |
| 构建 | 无(直接部署) |

---

## 📊 与其他博客对比

| 特性 | LiteLog | 传统 CMS |
| :--- | :---: | :---: |
| 内核体积 | < 100 KB | 5–50 MB |
| 依赖管理 | 无 | Composer/npm |
| 插件机制 | 钩子驱动 | 混合 |
| 模板系统 | 纯 PHP | 模板引擎 |
| 部署难度 | 上传即用 | 需构建 |
| 学习曲线 | 1 小时 | 1 周 |

---

## ❓ 常见问题

**Q:LiteLog 和 WordPress 有什么区别?**

A:LiteLog 更轻、更简单。内核不到 100 KB,没有 Composer 依赖,
适合小型博客、社区、个人站点。WordPress 生态更庞大,但也更重。

**Q:需要服务器环境很复杂吗?**

A:不需要。任何支持 PHP + MySQL 的主机都能跑,共享虚拟主机也行。

**Q:插件开发难度如何?**

A:只需实现一个简单的类 + 一行注册代码。
一个"站点公告"小工具,**10 行代码**即可完成。

**Q:可以商用吗?**

A:可以。采用 MIT 协议,随意使用和修改,包括商业项目。

**Q:支持 HTTPS 吗?**

A:支持。LiteLog 对协议无要求,配合 Nginx 或 Apache 的 SSL 配置即可。

---

## 📖 延伸阅读

- [小工具开发文档](文档链接)
- [首页模式开发文档](文档链接)
- [插件开发文档](文档链接)
- [主题开发文档](文档链接)

---

## 🎯 现在就开始

> **LiteLog —— 让博客不只是博客。**

[⬇️ 立即下载](#download) · [🌐 在线演示](#demo) · [⭐ GitHub](#github)

---

*© 2026 LiteLog · 用 ❤️ 打造*

使用步骤

1. 创建页面

后台 → 侧栏 → 页面 → + 新增页面

2. 填写信息

字段建议值
标题LiteLog 宣传页
URL 别名about 或 litelog
状态已发布
显示在导航菜单✅(可选,勾选后自动进顶部导航)
菜单排序1

3. 粘贴内容

  1. 在编辑器顶部点击
    Markdown
    按钮,切到 Markdown 模式
  2. 把上面代码块里的所有内容
    原样粘贴
    到文本框
  3. 右侧会实时预览效果
  4. 点击
    保存页面

4. 查看效果

  • 未开启伪静态:
    你的域名/?action=page_view&slug=about
  • 已开启伪静态:
    你的域名/page/about

渲染效果预览

Markdown 会被 LiteMarkdown 转成 HTML,配合主题样式后呈现:

┌─────────────────────────────────────────────────────────┐
│                                                         │
│  LiteLog                                                │  ← H1 大字 + 下边框
│  ─────────────────────────────────────────────────────  │
│  **为扩展而生的轻量博客系统**                             │
│                                                         │
│  LiteLog 采用钩子驱动架构……                              │
│                                                         │
│  立即下载 · 在线演示 · 查看文档                           │
│                                                         │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  ✨ 为什么选择 LiteLog                                    │  ← H2
│  ─────────────────────────────────────────────────────  │
│                                                         │
│  🪶 极致轻量                                              │  ← H3
│  内核不到 100 KB,零 Composer 依赖……                     │
│                                                         │
│  🪝 钩子系统                                              │
│  内置 50+ 钩子……                                         │
│                                                         │
│  ┌─────────┬──────────────────────┬───────┐            │  ← 表格
│  │ 模块     │ 说明                  │ 来源   │            │
│  ├─────────┼──────────────────────┼───────┤            │
│  │ 💬 论坛  │ 版块、主题、回复……     │ 插件   │            │
│  └─────────┴──────────────────────┴───────┘            │
│                                                         │
│  ┌───────────────────────────────────────┐              │  ← 引用
│  │ 💡 无需迁移工具                        │              │
│  │ 所有数据表会在插件首次启用时自动创建    │              │
│  └───────────────────────────────────────┘              │
│                                                         │
│  ┌───────────────────────────────────────┐              │  ← 代码块(深色)
│  │ litelog/                               │              │
│  │ ├── admin/                             │              │
│  │ ├── include/                           │              │
│  │ └── init.php                           │              │
│  └───────────────────────────────────────┘              │
│                                                         │
└─────────────────────────────────────────────────────────┘

样式说明(来自主题默认 CSS):

  • H1/H2 有浅灰下边框
  • 引用块有蓝色左边框 + 浅灰背景
  • 代码块深色背景带顶栏(显示语言名)
  • 表格有完整边框,表头浅灰
  • 分割线浅灰

进阶:想更好看?

Markdown 的能力有限,如果你想要卡片式布局 + 渐变背景 + 悬停效果,可以:

方案 A:直接在页面 content 里写 HTML(手动)

  1. 新建页面,随便填一个标题
  2. 打开 phpMyAdmin 或数据库客户端
  3. 找到
    blog_page
    表,找到刚才创建的记录
  4. 把
    content
    字段替换为完整 HTML
  5. 保存 → 前台就会渲染原生 HTML

但需要注意:主题的 .content 容器会限制部分样式,你可能需要给某些标签加 style 属性。

方案 B:扩展页面管理插件

给 pages 插件加一个"HTML 编辑模式",允许直接写 HTML 并跳过编辑器 sanitize。如果这是你需要的,告诉我,我可以再写一个升级版。


页面内容可用的钩子

如果你需要在前台页面中插入自定义内容(比如页面底部加评论、加相关推荐),可以在主题或插件中挂载钩子:

// 页面渲染前
Hook::addAction('page_view_before', function ($page) {
    // $page 是当前页面数据
});

// 页面渲染后
Hook::addAction('page_view_after', function ($page) {
    // 输出推荐内容
});

在 page_view_before 里可以修改 $page['content']、改变页面标题、插入统计代码等。


备忘

事项说明
页面 URL 前缀page/别名(伪静态)或 ?action=page_view&slug=别名
页面索引pages(伪静态)或 ?action=pages_index
支持层级是,父页面可为任意其他页面
支持模板是,template 字段可指定主题模板名
编辑器模式WYSIWYG / Markdown 双模式
自动进入导航勾选"显示在导航菜单"即可