Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bradeneverson/sitesmith
Automated parser CLI tool to generate my personal website dynamically :)
https://github.com/bradeneverson/sitesmith
Last synced: about 2 months ago
JSON representation
Automated parser CLI tool to generate my personal website dynamically :)
- Host: GitHub
- URL: https://github.com/bradeneverson/sitesmith
- Owner: BradenEverson
- Created: 2024-06-14T00:00:19.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2024-06-22T01:59:20.000Z (7 months ago)
- Last Synced: 2024-11-10T01:55:57.082Z (2 months ago)
- Language: Rust
- Size: 15.6 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SiteSmith 🛠️
[![crates.io](https://img.shields.io/crates/v/sitesmith.svg)](https://crates.io/crates/sitesmith)SiteSmith is a Rust CLI tool designed to generate a personal website. It reads project and work experience data from JSON files and uses a template to create an HTML website.
## Features
- Parses JSON data for projects and work experience.
- Utilizes an HTML template to format and generate the website.
- Customizable templates for projects and work entries.## Installation
1. Ensure you have [Rust](https://www.rust-lang.org/tools/install) installed.
2. Install SiteSmith using Cargo:```bash
cargo install sitesmith
```## Usage
To generate your website, run the `sitesmith` CLI tool with the following arguments:
```bash
sitesmith --projects --work --template --output
```### Arguments
- `--projects`: Path to the JSON file containing project data.
- `--work`: Path to the JSON file containing work experience data.
- `--template`: Path to the HTML template file.
- `--output`: Path to the output HTML file to be generated.### Example
```bash
sitesmith --projects projects.json --work work.json --template template.html --output index.html
```## JSON Data Format
### Projects JSON Format
The projects JSON file should contain an array of project entries. Each entry should have the following structure:
```json
[
{
"name": "Project Name",
"descr": ["Project description item 1", "Project description item 2"],
"extra": ["Additional project information
"]
},
...
]
```### Work Experience JSON Format
The work JSON file should contain an array of work experience entries. Each entry should have the following structure:
```json
[
{
"name": "Job Title",
"timespan": "Duration",
"location": "Location",
"descr": ["Job description item 1", "Job description item 2"],
"extra": ["Additional job information
", "Even more job info!"]
},
...
]
```## HTML Template
The HTML template should include placeholders for the projects and work experience sections. For example:
```html
My Personal Website
Welcome to My Personal Website
{projects}
{work}
© 2024 Your Name
```
The placeholders `{projects}` and `{work}` will be replaced with the generated HTML content for the projects and work experience respectively.
## Example
You can see a live example of a website generated using SiteSmith [here](https://bradeneverson.github.io/).
The source code for this example is available on GitHub: [bradeneverson.github.io](https://github.com/BradenEverson/bradeneverson.github.io).
## Contributing
1. Fork the repository.
2. Create a new branch (`git checkout -b feature-branch`).
3. Make your changes.
4. Commit your changes (`git commit -am 'Add new feature'`).
5. Push to the branch (`git push origin feature-branch`).
6. Create a new Pull Request.