README.md
April 14, 2026 ยท View on GitHub
Sources for https://profanity-im.github.io
The website is generated from XML templates and Markdown sources using sblg and lowdown.
Reference
| To Change... | Edit File(s) | Format |
|---|---|---|
| Home Page (Landing) | index.md | Markdown |
| Top-Level Pages (FAQ, Donate, etc.) | pagesource/*.md | Markdown |
| Blog Posts | blogsource/content/post/*.md | Markdown |
| Blog User Profiles | blogsource/content/contributors/*.md | Markdown |
| Site Header/Footer (Home) | landing-template.xml | HTML Template |
| Site Header/Footer (Manuals) | manual-template.xml | HTML Template |
| Blog Post Layout | blogsource/content/post/blog-post-template.xml | HTML Template |
| Theme Gallery Layout | gallery-template.xml | HTML Template |
| Style | css/*.css | CSS |
Page Sources
The source files for the landing page (index.md) and other top level pages in pagesource/ are writen in Markdown. They are transformed to HTML and then injected into the appropriate header and footer templates. The list of supported XEPS is generated using a git submodule for https://github.com/profanity-im/profanity/blob/master/profanity.doap.
Blog
Blog posts and contributor profiles are written in Markdown.
To create a new blog entry:
- Enter the directory
blogsource. - Run
./blog-post.shto create a starter file inblogsource/content/post/. - Edit the new
.mdfile to add your content.
If you do not have a contributor profile, please create one in blogsource/content/contributors/ using an existing profile as a template. You can optionally add a JPEG image (named username.jpg) to blogsource/content/contributors/img/.
Documentation
Command references (main_fragment.html, toc_fragment.html) and apidocs are generated via profanity docgen. See the release guide for details.
Build & Deploy
GitHub Actions will automatically build and deploy the website to GitHub Pages on every push.
To build the site locally, run
git clone https://github.com/profanity-im/profanity-im.github.io.git
cd profanity-im.github.io
git submodule update --init --recursive
make
You will need sblg, lowdown and libxslt installed on your system.
To preview the site locally, run make install which will create a directory site, open site/index.html in a web browser.
To remove the generated files and keep the source files, run make clean.
Release Process
When a new version of Profanity is released:
- Update the version string in
profanity_version.txt. - Add the new
.tar.xzand.zipsource tarballs to thetarballs/directory. - Generate the documentation for the new version (
profanity docgensee RELEASE_NOTES.md in the profanity repo) and copy it to a new subdirectory inguide/. Add a link to the new guide inpagesource/userguide.md.
Do not manually update the version strings or SHA-256 hashes in index.html. These are calculated dynamically from the files during the build process on GitHub Actions.