4 个版本
0.1.3 | 2024年6月22日 |
---|---|
0.1.2 | 2024年6月14日 |
0.1.1 | 2024年6月14日 |
0.1.0 | 2024年6月14日 |
#2194 in 命令行工具
11KB
151 行
SiteSmith 🛠️
SiteSmith 是一个用于生成个人网站的 Rust CLI 工具。它从 JSON 文件中读取项目和工作经验数据,并使用模板创建 HTML 网站。
功能
- 解析项目和工作经验的 JSON 数据。
- 利用 HTML 模板格式化和生成网站。
- 可自定义项目和工作经验条目的模板。
安装
- 确保您已安装 Rust。
- 使用 Cargo 安装 SiteSmith
cargo install sitesmith
用法
要生成您的网站,请使用以下参数运行 sitesmith
CLI 工具
sitesmith --projects <projects.json> --work <work.json> --template <template.html> --output <output.html>
参数
--projects
:包含项目数据的 JSON 文件路径。--work
:包含工作经验数据的 JSON 文件路径。--template
:HTML 模板文件路径。--output
:要生成的输出 HTML 文件路径。
示例
sitesmith --projects projects.json --work work.json --template template.html --output index.html
JSON 数据格式
项目 JSON 格式
项目 JSON 文件应包含一个项目条目数组。每个条目应具有以下结构
[
{
"name": "Project Name",
"descr": ["Project description item 1", "Project description item 2"],
"extra": ["<p>Additional project information</p>"]
},
...
]
工作经验 JSON 格式
工作经验 JSON 文件应包含一个工作经验条目数组。每个条目应具有以下结构
[
{
"name": "Job Title",
"timespan": "Duration",
"location": "Location",
"descr": ["Job description item 1", "Job description item 2"],
"extra": ["<p>Additional job information</p>", "<b>Even more job info!</b>"]
},
...
]
HTML 模板
HTML 模板应包含项目和工作经验部分的占位符。例如
<!DOCTYPE html>
<html>
<head>
<title>My Personal Website</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<header>
<h1>Welcome to My Personal Website</h1>
</header>
<main>
<section id="projects">
{projects}
</section>
<section id="work">
{work}
</section>
</main>
<footer>
<p>© 2024 Your Name</p>
</footer>
</body>
</html>
占位符 {projects}
和 {work}
将分别替换为项目和工作经验的生成 HTML 内容。
示例
您可以在这里看到使用 SiteSmith 生成的网站的实时示例。
此示例的源代码在 GitHub 上提供:bradeneverson.github.io。
贡献
- 分支仓库。
- 创建一个新的分支(
git checkout -b feature-branch
)。 - 进行您的更改。
- 提交您的更改(
git commit -am 'Add new feature'
)。 - 将更改推送到分支(
git push origin feature-branch
)。 - 创建一个新的拉取请求。
依赖项
~1.6–2.6MB
~51K SLoC