This project contains the source code for the official Apache Struts website (https://struts.apache.org/). It is a static website generated by Jekyll. The site's content is written in Markdown and HTML. The project uses Maven to manage the build process, including fetching and converting documentation from Confluence.
Key Technologies:
- Jekyll: A static site generator written in Ruby.
- Maven: A build automation tool used to manage the project's build lifecycle.
- Java: Used for the custom tools that fetch and convert documentation from Confluence.
- HTML/CSS/JavaScript: The core technologies used for the website's frontend.
- Markdown (kramdown): Used for writing the content of the website.
Architecture:
The website is structured as a typical Jekyll project. The main configuration is in _config.yml. The source files are in the source directory. The website's layout and includes are in the _layouts and _includes directories, respectively. The documentation is partially sourced from Confluence and converted to Markdown using custom Java tools managed by Maven.
To build and run the website locally, you can use either Bundler and Jekyll directly or Docker.
Using Bundler and Jekyll:
- Install Bundler:
gem install bundler - Install dependencies:
bundle install - Run the Jekyll server:
bundle exec jekyll serve -w --trace --host 0.0.0.0
The website will be available at http://localhost:4000.
Using Docker:
There are shell scripts available to run the website in a Docker container:
./docker-run.sh(for Bash/Sh)./docker-run.fish(for Fish shell)
These scripts will build the Docker image and run the Jekyll server. The website will be available at http://localhost:4000.
- Content: Content is written in Markdown (
.md) or HTML (.html) files in thesourcedirectory. - Styling: The website uses Bootstrap for styling. Custom styles are in the
source/cssdirectory. - Documentation: The documentation is a mix of Markdown files and content imported from the Struts Confluence wiki. The import process is managed by Maven profiles.
- Updating the Website: The
README.mdfile contains instructions on how to update the live website.