The main homepage of PMDhttps://pmd.github.io is hosted by Github Pages.
The repository ishttps://github.com/pmd/pmd.github.io.
It usesJekyll to generate the static html pages. Jekyll isexecuted by github for every push to the repository. Please note, that it takes some timeuntil Jekyll has been executed and due to caching, the homepage is not updated immediately.It usually takes 15 minutes.
_config.yml and the variablessite.pmd.latestVersion are usede.g. in_includes/home.html.Since the repository contains the documentation for many old PMD releases, it is quite big. When executingJekyll to generate the site, it copies all the files to the folder_site/ - and this can take a while.
In order to speed things up locally, consider to addpmd-* to the exclude patterns in_config.yml. Seealso the comments in this file.
Then it is a matter of simply executingbundle exec jekyll serve. This will generate the site and hostit on localhost, so you can test the page athttp://127.0.0.1:4000.
When creating a new PMD release, some content of the main page need to be updated as well.This done as part of theRelease process, but issummarized here as well:
pmd.latestVersion) needs to be updated in_config.yml/pmd-<version>//latest/, actually replacing the old version./_posts/YYYY-mm-dd-PMD-<version>.mdsitemap.xml is regeneratedSome of these steps are automated throughdo-release.sh (like blog post), some are manual steps(updating the version in _config.yml) and other steps are done on the travis-ci-build (likecopying the new documentation).
Adding a new blog post is as easy as:
/_posts/YYYY-mm-dd-<title>.md---layout: posttitle: Title---Here comes the textOnce you commit and push it, Github will run Jekyll and update the page. The Jekyll templates take care thatthe new post is recognized and added to the news section and also on the news subpage.