2个版本

0.1.1 2024年8月20日
0.1.0 2024年8月20日

112模板引擎

MIT 许可证

8KB
80

Rustsite

rustsite 是一个使用Rust编写的可定制静态网站生成器。它使用模板引擎将Markdown文件转换为HTML,使得生成带有动态内容的静态网站变得简单。

功能

  • 将Markdown文件转换为HTML
  • 使用可定制的模板生成HTML输出
  • 解析并在页面中包含元数据
  • 简单的命令行界面用于生成静态网站

安装

您可以直接从crates.io使用 rustsite。要将其作为二进制文件使用,请使用Cargo进行安装

cargo install rustsitemd

用法

安装 rustsite 后,您可以从命令行使用它

rustsite

  • <source-dir>:包含您的Markdown文件的目录。
  • <destination-dir>:生成的HTML文件将保存到的目录。
  • <template-file>:您的HTML模板文件的路径。

示例

假设您有以下结构

project/
│
├── content/
│   ├── index.md
│   └── about.md
│
├── template.html
└── output/

您的 index.md 可能看起来像这样

---markdown
title: "Home"
---

# Welcome to My Site

This is the home page.

您的 template.html 可能看起来像这样

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ title }}</title>
</head>
<body>
    {{ content }}
</body>
</html>

运行以下命令以生成您的网站

rustsite content output template.html

这将使用 template.html 模板将 index.mdcontent/ 目录中的任何其他Markdown文件转换为 output/ 目录中的HTML文件。

函数

generate_site(source_dir: &str,destination_dir: &str,template_file: &str) -> io::Result<()>

source_dir 中的Markdown文件生成静态网站,将HTML文件输出到 destination_dir,并使用 template_file 作为HTML模板。

parse_front_matter(content: &str) -> (HashMap<String, String>, String)

从给定的Markdown内容中解析元数据,并将其与正文分离。

markdown_to_html(markdown: &str) ->String

将Markdown内容转换为HTML。

render_template(模板: &str,元数据: &HashMap<String, String>,content: &str) ->String

使用给定的模板和元数据渲染HTML内容。

无运行时依赖