Skip to content

Prepare archive output for GitHub Pages (CSS rendering + SEO metadata)#12

Merged
meonkeys merged 1 commit intoapache:mainfrom
airajena:feat/github-pages-publishing
Feb 12, 2026
Merged

Prepare archive output for GitHub Pages (CSS rendering + SEO metadata)#12
meonkeys merged 1 commit intoapache:mainfrom
airajena:feat/github-pages-publishing

Conversation

@airajena
Copy link
Contributor

Summary

This PR updates archive output so it is better suited for GitHub Pages publishing and search indexing.

Main goals covered:

  • Stop applying visual formatting via Markdown syntax in Java output.
  • Use CSS classes and a stylesheet for presentation.
  • Emit Pages-friendly, extensionless URLs in sitemap entries.
  • Generate crawler metadata files (robots.txt, sitemap.xml) in docs/.

What Changed

1) Rendering moved from Markdown presentation to CSS classes

  • Updated daily/index page output to emit class-based HTML blocks for message rows and metadata.
  • Removed Markdown bolding/link-style presentation from Java renderers.
  • Added stable CSS classes (archive-message, archive-user, archive-text, archive-link, etc.) for theme/styling control.

Files:

  • src/main/java/org/apache/fineract/chat/archive/MarkdownRenderer.java
  • src/main/java/org/apache/fineract/chat/archive/SlackTextFormatter.java

2) Added generated stylesheet

  • Added stylesheet renderer and write step to output:
    • docs/assets/chat-archive.css
  • Daily and index pages now include stylesheet references.

Files:

  • src/main/java/org/apache/fineract/chat/archive/SiteMetadataRenderer.java
  • src/main/java/org/apache/fineract/chat/archive/ChatArchiveApp.java

3) Extensionless URL strategy for Pages

  • Added front matter permalinks for generated pages:
    • /
    • /daily/<channel>/
    • /daily/<channel>/<date>/
  • Updated sitemap generation to use extensionless URLs instead of .md paths.

Files:

  • src/main/java/org/apache/fineract/chat/archive/MarkdownRenderer.java
  • src/main/java/org/apache/fineract/chat/archive/SiteMetadataRenderer.java

4) Robots and sitemap generation

  • robots.txt is always generated at docs/robots.txt.
  • sitemap.xml is generated at docs/sitemap.xml when SITE_BASE_URL is configured.
  • Added SITE_BASE_URL configuration support and normalization.

Files:

  • src/main/java/org/apache/fineract/chat/archive/ArchiveConfig.java
  • src/main/java/org/apache/fineract/chat/archive/ChatArchiveApp.java
  • update-archive.yml
  • Readme.md

5) Pages workflow template

  • Added deploy-pages.yml workflow template for deploying docs/ to GitHub Pages.

File:

  • deploy-pages.yml

Verification

Executed locally:

  • ./gradlew test

All tests passed.

Added/updated tests:

  • src/test/java/org/apache/fineract/chat/archive/MarkdownRendererTest.java
  • src/test/java/org/apache/fineract/chat/archive/SiteMetadataRendererTest.java
  • src/test/java/org/apache/fineract/chat/archive/SlackTextFormatterTest.java
  • src/test/java/org/apache/fineract/chat/archive/ArchiveConfigTest.java

@meonkeys
Copy link
Contributor

LGTM. Thank you!

@meonkeys meonkeys merged commit c017bf4 into apache:main Feb 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants