https://github.com/x1ah/gena
导航网站生成器(Start page generator)
https://github.com/x1ah/gena
nav navigation navigation-generator startpage startpage-generator webstack
Last synced: about 1 month ago
JSON representation
导航网站生成器(Start page generator)
- Host: GitHub
- URL: https://github.com/x1ah/gena
- Owner: x1ah
- Created: 2021-04-14T16:01:19.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-10-30T10:34:03.000Z (over 3 years ago)
- Last Synced: 2025-03-06T09:58:57.228Z (12 months ago)
- Topics: nav, navigation, navigation-generator, startpage, startpage-generator, webstack
- Language: Go
- Homepage:
- Size: 2.19 MB
- Stars: 69
- Watchers: 3
- Forks: 18
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gena
导航网站生成器 | [English Document](https://github.com/x1ah/gena/blob/master/README_EN.md)
  [](https://goreportcard.com/report/github.com/x1ah/gena) [](https://github.com/x1ah/gena)
---

## 简介
`gena` 是一个用 Go 语言编写的导航网站生成器,可以通过简单的 YAML 配置文件快速生成美观的导航网站。支持多种模板主题,适合个人、团队或组织使用。
### 特性
- 🚀 **快速生成**:通过 YAML 配置文件快速生成静态 HTML 网站
- 🎨 **多种模板**:支持 webstack、tilde-enhanced 等多种精美模板
- 📱 **响应式设计**:所有模板均支持移动端访问
- 🔍 **搜索功能**:支持多种搜索引擎(webstack 模板)
- ⌨️ **键盘导航**:支持快捷键快速访问网站(tilde 模板)
- 🎯 **简单易用**:只需一个配置文件即可生成完整网站
- 📦 **单文件部署**:生成的 HTML 文件可独立部署到任何静态托管服务
## 安装
### 一键生成(**推荐**)
从 [gena-template](https://github.com/x1ah/gena-template) 自动生成并自动部署到 GitHub Pages
### 源码安装
**go1.21+ required**
```bash
go get -u github.com/x1ah/gena/cmd/gena
```
或者克隆仓库后编译:
```bash
git clone https://github.com/x1ah/gena.git
cd gena
go build -o gena ./cmd/gena
```
查看帮助信息:
```bash
gena --help
```
输出:
```
Usage of ./gena:
-c string
Config file (default "config.yml")
```
### 可执行文件下载
从 [Release page](https://github.com/x1ah/gena/releases) 下载对应平台的可执行文件
## 快速开始
### 1. 创建配置文件
参照 [config.yml](https://github.com/x1ah/gena/blob/master/config.yml) 创建你自己的配置文件:
```yaml
# 网站标题
title: 我的导航站
# 网站描述
description: 我的个人导航网站
# 网站图标
favicon: https://example.com/favicon.ico
# 网站 URL
url: https://example.com
# GitHub 链接(可选)
github: https://github.com/yourname
# 页脚信息
footer: © 2024 My Navigation
# 选择模板:webstack 或 tilde
template: webstack
# 网站内容
content:
categories:
- name: 常用网站
sites:
- name: GitHub
description: 代码托管平台
url: https://github.com/
icon: https://github.com/favicon.ico
- name: Google
description: 搜索引擎
url: https://www.google.com/
```
### 2. 生成网站
```bash
gena -c config.yml > index.html
```
### 3. 预览
直接在浏览器中打开生成的 `index.html` 文件即可预览效果。
## 模板说明
### webstack 模板
基于 [WebStack](http://webstack.cc/) 设计的精美导航模板,适合展示大量网站链接。
**特性:**
- 侧边栏分类导航
- 支持多种搜索引擎
- 响应式设计
- 夜间模式支持
- 图标懒加载
**配置示例:**
```yaml
template: webstack
webstack:
search:
enabled: true
default: google
engines:
- google
- github
- baidu
- bing
```
### tilde 模板
基于 [tilde-enhanced](https://github.com/Ozencb/tilde-enhanced) 的极简起始页模板,支持键盘快速导航。
**特性:**
- 极简设计,专注内容
- 键盘快捷键导航(输入首字母快速跳转)
- 支持搜索功能
- 支持 URL 直接访问
- 支持特殊命令(如 `invert!` 切换主题)
- 深色/浅色主题切换
**配置示例:**
```yaml
template: tilde
tilde:
search:
url: https://duckduckgo.com/?q=
placeholder: "Search or enter URL"
theme: dark # dark 或 light
show_keys: false # 是否显示键盘快捷键
```
**使用技巧:**
- 输入网站名称的首字母,按回车快速访问
- 输入 `?` 查看帮助
- 输入 `invert!` 切换主题
- 输入 `[数字]!` 启动对应分类的所有网站
- 输入 `[key]:[query]` 在指定网站搜索
- 输入 `[key]/[path]` 访问网站特定路径
- 直接输入 URL 或域名访问
## 配置说明
### 基础配置
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `title` | string | 是 | 网站标题 |
| `description` | string | 是 | 网站描述 |
| `template` | string | 是 | 模板名称:`webstack` 或 `tilde` |
| `url` | string | 否 | 网站 URL |
| `favicon` | string | 否 | 网站图标 URL |
| `github` | string | 否 | GitHub 链接 |
| `footer` | string | 否 | 页脚信息 |
| `google_analytics` | string | 否 | Google Analytics ID |
### 内容配置
```yaml
content:
categories:
- name: 分类名称
sites:
- name: 网站名称
description: 网站描述
url: https://example.com
icon: https://example.com/icon.png # 可选,不填则自动获取
```
### webstack 模板配置
```yaml
webstack:
search:
enabled: true # 是否启用搜索
default: google # 默认搜索引擎
engines: # 可用的搜索引擎列表
- google
- github
- baidu
- bing
# ... 更多搜索引擎
```
支持的搜索引擎:`google`, `baidu`, `bing`, `sougou`, `taobao`, `jd`, `tmall`, `zhihu`, `weibo`, `bilibili`, `douban`, `github`
### tilde 模板配置
```yaml
tilde:
search:
url: https://duckduckgo.com/?q= # 搜索 URL
placeholder: "Search or enter URL" # 搜索框占位符
theme: dark # 主题:dark 或 light
show_keys: false # 是否显示键盘快捷键(true 显示按键,false 显示图标)
```
## 部署
### GitHub Pages
1. 将生成的 `index.html` 推送到 GitHub 仓库
2. 在仓库设置中启用 GitHub Pages
3. 选择主分支的根目录作为源
### 其他静态托管服务
生成的 `index.html` 是纯静态文件,可以部署到任何静态托管服务:
- [Netlify](https://www.netlify.com/)
- [Vercel](https://vercel.com/)
- [Cloudflare Pages](https://pages.cloudflare.com/)
- 自己的服务器
## 使用案例
- [when.run/nav](https://when.run/nav/) - 使用 webstack 模板的导航站
## 开发
### 运行测试
```bash
go test ./...
```
### 代码检查
```bash
golangci-lint run
```
### 贡献
欢迎提交 Issue 和 Pull Request!
## 交流群
|QQ 群|
|:--:|
|群号:100916933
|
## 许可证
本项目采用 MIT 许可证,详见 [LICENSE](LICENSE) 文件。
## 致谢
- [WebStack](http://webstack.cc/) - webstack 模板设计
- [tilde-enhanced](https://github.com/Ozencb/tilde-enhanced) - tilde 模板设计