This is the practice project for building a static site based on Coding Challenges. The SSG project is designed to help you generate static websites by processing Markdown files and rendering HTML templates.
- Introduction
- Features
- Installation
- Usage
- Configuration
- Creating Custom Themes
- Future Enhancements
- Contributing
- License
- Contact Information
The Static Site Generator (SSG) project is a tool for generating static websites from Markdown files. It is built using Rust and provides a simple and efficient way to create static sites.
- Converts Markdown files to HTML
- Supports custom themes
- Fast and efficient build process
- Easy-to-use configuration
The SSG project is available through GitHub Releases. To install the latest version, follow these steps:
- Go to the Releases page of the repository.
- Download the appropriate binary for your operating system.
- Extract the binary and place it in a directory that is included in your system's PATH.
Alternatively, you can build the project from source if you have Rust installed on your machine. If you don't have Rust installed, you can download it from rust-lang.org.
-
Clone the repository:
git clone https://github.com/prashant1k99/ssg.git
-
Navigate to the project directory:
cd ssg -
Build the project:
cargo build --release
To generate a static site, follow these steps:
- Init the project:
ssg init <name>-
Update the
config.tomlfile with your site settings. -
Create content in
contens/folder. -
Run the build command:
ssg build
The generated site will be placed in the dist directory.
The config.toml file is used to configure the SSG project. Here is an example config.toml file:
[settings]
title = "My Static Site"
theme = "default"
out_dir = "dist"
asset_dir = "static"
[custom]
# Add any custom settings hereTo create a custom theme, follow the steps outlined in the Theme Building Guide.
- Write test cases to cover all the features
- Parallel processing of the build
- Improved CI/CD scripts using GitHub Actions
- Incremental builds (only build changed or new files)
- Development server with hot reloading
- Plugin system for extending functionality
- Theme marketplace for sharing and discovering custom themes
Contributions are welcome! If you would like to contribute to the project, please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature-branch) - Make your changes
- Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature-branch) - Create a pull request
Please make sure to update tests as appropriate.
This project is licensed under the MIT License. See the LICENSE file for details.
For further assistance, you can reach out to the project maintainer:
- Name: Prashant Singh
- GitHub: prashant1k99