Skip to content

niumoo/TinySSG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

TinySSG

核心目标

打造一个超轻量、无依赖的静态网站构建方案。通过 Bash 原生文本替换实现组件复用,将 pages/ 中的模板片段与 components/ 中的公共组件拼装,最终生成可直接部署的静态 HTML 网站。

目录结构

project/
├── components/    # 组件池:存放 header.html, footer.html 等片段
├── pages/         # 源码区:存放 index.html 及子目录(如 zh/about.html)
    ├── static/    # 静态资源区:存放静态资源
├── site/          # 输出区:构建后的完整 HTML 文件(由脚本自动生成)
└── build.sh       # 核心脚本:负责初始化与构建

功能特性

1. 极简组件系统

  • 自动识别:无需注册,components/ 目录下的任何 .html 文件即为一个组件。
  • 直观引用:使用 {{文件名}} 语法引用组件。例如 {{nav}} 会被替换为 components/nav.html 的内容。
  • 原生兼容:支持在组件内部编写任意 HTML、CSS 和 JavaScript。

2. 高效构建逻辑

  • 原生替换:放弃复杂的 sed 正则,采用 Bash 内置的字符串替换技术,天然支持特殊字符(如 $, &, /, \, " 等),无需转义。
  • 目录克隆:完美保持 pages/ 的多级目录结构,实现 1:1 映射输出到 site/
  • 干净构建:每次运行都会清空旧的 site/ 目录,确保没有冗余文件。

3. 项目初始化

  • 一键起步:支持 ./build.sh init 快速生成演示目录和基础文件。
  • 安全创建:自动检测目录,仅在目录不存在时进行创建,保护已有工作成果。
  • 即时预览:初始化后立即运行 ./build.sh 即可看到示例网站。

4. 命令行交互

  • 默认执行:直接运行 ./build.sh 即执行全量构建。
  • 状态反馈:构建过程中实时显示正在处理的页面路径,并在完成后提示输出位置。

技术约束

  • 零外部依赖:仅需标准 Bash 环境,无需安装 Node.js、Python 或任何第三方工具。
  • 高性能:利用内存变量操作,对于中小型个人网站、文档站点可秒级完成构建。
  • 纯粹性:不引入任何私有语法,保持 HTML 的原始纯净。

使用流程

  1. 初始化: 执行 ./build.sh init 生成初始结构。
  2. 定义组件: 在 components/ 放入 HTML 片段(如 contact.html)。
  3. 编写页面: 在 pages/ 创建 HTML 页面,在需要插入组件的地方写入 {{contact}}
  4. 执行构建: 运行 ./build.sh,完整的网站将出现在 site/ 目录中。
  5. 预览: 直接用浏览器打开 site/index.html 或将其上传至服务器。

About

Tiny Bash Static Site Generator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages