Example: jorgeasaurus.github.io/IntuneDocsAutomation
An editorial-style dashboard that automatically tracks and displays the latest Microsoft Intune documentation updates from Microsoft Learn. Designed with a broadsheet newspaper aesthetic — Playfair Display serifs, two-column article grids, and warm cream paper tones.
- Automated RSS Feed Updates — GitHub Actions workflow downloads RSS data every 6 hours
- Broadsheet Layout — Newspaper-inspired masthead, section markers (
§01,§02), two-column article grid, and lead story treatment - Smart Categorization — Automatically groups updates into Security, Apps, Devices, Analytics, Policy, and Documentation
- Inline Navigation — Horizontal section index with item counts for quick jumping
- Stats Ribbon — Total dispatches, active sections, and latest edition at a glance
- GitHub Pages Ready — Static single-file site, no build step required
- No CORS Issues — Uses a local RSS file committed by the Actions workflow
- Fork or clone this repository
- Push to your GitHub account
- Enable GitHub Actions in your repository settings
- Go to Settings → Pages
- Under Source, select "Deploy from a branch"
- Choose main branch and / (root) folder
- Click Save
- Go to Settings → Actions → General
- Under Workflow permissions, select "Read and write permissions"
- Check "Allow GitHub Actions to create and approve pull requests"
- Click Save
- Go to the Actions tab
- Click "Update Intune RSS Feed"
- Click Run workflow to trigger it manually
The GitHub Actions workflow (.github/workflows/update-rss.yml):
- Downloads the latest RSS feed from Microsoft Learn
- Validates the XML content
- Diffs against the previous version
- Commits the updated
intune-rss.xmlandrss-metadata.jsonif anything changed - Deploys to GitHub Pages automatically
Schedule: every 6 hours via cron, plus manual dispatch and push triggers.
Edit the categoryMapping object in index.html:
const categoryMapping = {
'Security & Compliance': ['security', 'compliance', 'baseline'],
'App Management': ['app', 'application', 'store'],
// Add your own...
};
Modify the cron in .github/workflows/update-rss.yml:
schedule:
- cron: '0 */3 * * *' # every 3 hours
All CSS is embedded in index.html via CSS custom properties. Key tokens:
| Variable | Purpose | Default |
|---|---|---|
--paper |
Background | #F5F0E8 |
--ink |
Primary text | #1C1917 |
--accent |
Links & highlights | #B91C1C |
--serif |
Headlines | Playfair Display |
--body |
Body text | Crimson Pro |
--mono |
Metadata & labels | IBM Plex Mono |
Key layout classes: .masthead, .stats-ribbon, .toc-bar, .category-section, .updates-grid, .update-card, .lead-story, .colophon.
# Python
python3 -m http.server 8080
# Node
npx http-server -p 8080
# Then open http://localhost:8080
| Problem | Fix |
|---|---|
| Workflow not running | Check Actions permissions are set to "Read and write" |
| No data showing | Run the workflow manually; verify intune-rss.xml exists |
| Blank page locally | Use a local server — don't open the HTML file directly |
├── .github/workflows/
│ └── update-rss.yml # Automated RSS fetch workflow
├── index.html # The Gazette — single-file dashboard
├── intune-rss.xml # RSS feed data (auto-generated)
├── rss-metadata.json # Feed metadata (auto-generated)
├── code.code-workspace # VS Code workspace config
└── README.md
- Fork the repository
- Create a feature branch
- Make your changes
- Test locally
- Submit a pull request
This project is open source and available under the MIT License.
