6 个稳定版本

新版本 1.2.0 2024年8月20日
1.1.1 2024年8月12日
1.0.2 2024年7月16日

132模板引擎 中排名

Download history 295/week @ 2024-07-13 26/week @ 2024-07-20 29/week @ 2024-07-27 2/week @ 2024-08-03 220/week @ 2024-08-10 132/week @ 2024-08-17

每月下载量 384

MIT 许可证

25KB
319

cliché

一个极其简单的静态网站生成器。 ¯_()_/)

特性

  • 所有 Markdown
  • 基于文件的路由
  • 为所有页面添加可选的页眉和页脚
  • 添加可选的样式表

这个列表看起来短吗?很好。这就是想法。如果你使用这个工具的时间比写自己的 SSG 要长,那么我就失败了。

没有模板。没有在页面上自动聚合链接。没有主题。

基于这样一个前提:整理是有价值的,因此你需要手动组织和链接你的页面。这实际上并不难,只要有好的文本编辑器。

安装

先安装 Rust 然后运行

cargo install cliche  

使用方法

Usage: cliche [OPTIONS] <CONTENT>

Arguments:
  <CONTENT>  Directory containing the site's content

Options:
      --header <HEADER>      Path to the site's header [default: header.md]
      --footer <FOOTER>      Path to the site's footer [default: footer.md]
      --style <STYLE>        Path to the site's stylesheet [default: style.css]
  -o, --output <OUTPUT>      Site output directory. Will be created if it doesn't already exist [default: _site]
      --domain <DOMAIN>      The domain of the site, used for generating full URLs in the sitemap. If not provided, a sitemap will not be generated
      --base-url <BASE_URL>  A base url that the site will be served from
  -h, --help                 Print help
  -V, --version              Print version

详细信息

添加头部文件(可选)

<!-- header.md -->

# my awesome website

<nav>

[home](contents/index.md)
[about](contents/about.md)
[whatever](contents/a/secret/path/whatever.md)

</nav>
<!-- footer.md -->

[Contact]([email protected]) | [Github](https://github.com/gdtroszak/cliche)

添加一些内容

为你的内容创建一个目录并添加一些文件。以下是一个示例,显示了每个页面的 URL 路径。

.
└── content/
    ├── index.md              /
    ├── static/
       └── image.jpg         /static/image.jpg
    ├── food/
       ├── index.md          /food
       ├── coffee.md         /food/coffee.html
       └── bread/
           ├── sourdough.md  /food/bread/sourdough.html
           └── wheat.md      /food/bread/wheat.html
    └── bikes/
        └── gravel.md         /bikes/gravel.html

也许我想让我的主页链接到几个其他页面。

<!-- content/index.md -->

---
title: my amazing website
meta_description: a website about me and all the things I like.
---

- [food](./food/index.md)
- [gravel biking](content/bikes/gravel.md)

这里有一些需要注意的事项

  1. 你可以可选地在前置文件中添加标题和 meta_description。这将用于页面的 meta 标签。
  2. 指向其他内容的链接可以是相对于文件本身或项目的根目录。使用具有 Markdown LSP 的文本编辑器。这将使这变得非常容易。

添加一些样式(可选)

/*style.css */

html {
    ...
}

body {
    ...
}

我建议你直接复制可用的许多 classless 选项之一。

你可以通过在 Markdown 中添加大量的 HTML 来添加类,但这可能不会有什么好结果。

运行它

cliche ./content

您的网站应该输出到 _site 目录。如果您利用了 index.md 生成更多规范URL路径,您将需要提供服务。类似 simple-http-server 的工具非常合适。

simple-http-server -i --nocache ./_site

还有更多吗?

查看 我的个人网站 作为示例。

GitHub Action

如果您想使用GitHub Action自动化网站的生成和部署,您可以使用 cliche-action。此操作运行cliche并创建一个您可以将它部署到您首选托管提供商的工件。以下是一个将网站部署到 GitHub Pages 的示例工作流程。

name: deploy to pages
on:
  push:
    branches: ["main"]
  workflow_dispatch:
permissions:
  contents: read
  pages: write
  id-token: write
concurrency:
  group: "pages"
  cancel-in-progress: false
jobs:
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v4
      - name: build site and upload artifact
        uses: gdtroszak/cliche-action@v1
      - name: setup pages
        uses: actions/configure-pages@v5
      - name: deploy to gh pages
        id: deployment
        uses: actions/deploy-pages@v4
        with:
          artifact_name: cliche-site

依赖项

~9–19MB
~251K SLoC