Skip to content

x1ah/gena

Repository files navigation

gena

导航网站生成器 | English Document

Test Lint Go Report Card goproxy.cn


image

简介

gena 是一个用 Go 语言编写的导航网站生成器,可以通过简单的 YAML 配置文件快速生成美观的导航网站。支持多种模板主题,适合个人、团队或组织使用。

特性

  • 🚀 快速生成:通过 YAML 配置文件快速生成静态 HTML 网站
  • 🎨 多种模板:支持 webstack、tilde-enhanced 等多种精美模板
  • 📱 响应式设计:所有模板均支持移动端访问
  • 🔍 搜索功能:支持多种搜索引擎(webstack 模板)
  • ⌨️ 键盘导航:支持快捷键快速访问网站(tilde 模板)
  • 🎯 简单易用:只需一个配置文件即可生成完整网站
  • 📦 单文件部署:生成的 HTML 文件可独立部署到任何静态托管服务

安装

一键生成(推荐

gena-template 自动生成并自动部署到 GitHub Pages

源码安装

go1.21+ required

go get -u github.com/x1ah/gena/cmd/gena

或者克隆仓库后编译:

git clone https://github.com/x1ah/gena.git
cd gena
go build -o gena ./cmd/gena

查看帮助信息:

gena --help

输出:

Usage of ./gena:
  -c string
    	Config file (default "config.yml")

可执行文件下载

Release page 下载对应平台的可执行文件

快速开始

1. 创建配置文件

参照 config.yml 创建你自己的配置文件:

# 网站标题
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. 生成网站

gena -c config.yml > index.html

3. 预览

直接在浏览器中打开生成的 index.html 文件即可预览效果。

模板说明

webstack 模板

基于 WebStack 设计的精美导航模板,适合展示大量网站链接。

特性:

  • 侧边栏分类导航
  • 支持多种搜索引擎
  • 响应式设计
  • 夜间模式支持
  • 图标懒加载

配置示例:

template: webstack

webstack:
  search:
    enabled: true
    default: google
    engines:
      - google
      - github
      - baidu
      - bing

tilde 模板

基于 tilde-enhanced 的极简起始页模板,支持键盘快速导航。

特性:

  • 极简设计,专注内容
  • 键盘快捷键导航(输入首字母快速跳转)
  • 支持搜索功能
  • 支持 URL 直接访问
  • 支持特殊命令(如 invert! 切换主题)
  • 深色/浅色主题切换

配置示例:

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 模板名称:webstacktilde
url string 网站 URL
favicon string 网站图标 URL
github string GitHub 链接
footer string 页脚信息
google_analytics string Google Analytics ID

内容配置

content:
  categories:
    - name: 分类名称
      sites:
        - name: 网站名称
          description: 网站描述
          url: https://example.com
          icon: https://example.com/icon.png  # 可选,不填则自动获取

webstack 模板配置

webstack:
  search:
    enabled: true              # 是否启用搜索
    default: google            # 默认搜索引擎
    engines:                   # 可用的搜索引擎列表
      - google
      - github
      - baidu
      - bing
      # ... 更多搜索引擎

支持的搜索引擎:google, baidu, bing, sougou, taobao, jd, tmall, zhihu, weibo, bilibili, douban, github

tilde 模板配置

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 是纯静态文件,可以部署到任何静态托管服务:

使用案例

开发

运行测试

go test ./...

代码检查

golangci-lint run

贡献

欢迎提交 Issue 和 Pull Request!

交流群

QQ 群
群号:100916933

许可证

本项目采用 MIT 许可证,详见 LICENSE 文件。

致谢

About

导航网站生成器(Start page generator)

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published