Homepage and resource hub for Lanie Carmelo: Christian, accessibility tester, neurodivergent programmer, and disability advocate. This site documents my access needs, technical workflows, and personal essays.
- Accessible Design: Built with low cognitive load in mind. Tested extensively with NVDA.
- Python-Powered: Generated statically using Pelican and managed with
uv. - Automated Indexing: Articles and essays are automatically organized without manual curation.
- Keyboard-Centric: Designed for screen reader and keyboard navigation from the ground up.
You no longer need to manually update a writing.md list. Pelican handles the routing and index generation
automatically.
To add a new essay or article:
-
Create a new markdown file in the
content/writing/folder. -
Add the standard Pelican YAML frontmatter (fenced by
---):--- Title: Your Article Title Date: YYYY-MM-DD Category: Writing Slug: your-custom-slug Summary: A short description for the index page. ---
-
Write your content below the frontmatter.
-
Commit and push. The CI/CD pipeline will automatically build and publish the new article to the
/writing/index.
- Python (3.10+)
uv(Fast Python package installer and resolver)- Git
# Clone the repository
git clone [https://github.com/RareBird15/lanie.work.git](https://github.com/RareBird15/lanie.work.git)
cd lanie.work
# Build the site
uv run make html
# Start the local development server (live preview)
uv run make serveVisit http://localhost:8000 to view the site locally.
This project uses a clean separation of static pages and chronological writing.
lanie.work/
├── pelicanconf.py # Main Pelican configuration
├── publishconf.py # Production build settings
├── content/
│ ├── pages/ # Static navigation pages (About, Work, Accessibility Notes)
│ └── writing/ # Chronological essays and articles
├── themes/
│ └── Flex/ # Accessible, responsive theme
├── .github/
│ └── workflows/
│ └── pelican-gh-pages.yml # CI/CD deployment pipeline
├── .markdownlint.json # Minimal markdown linting rules
└── README.md # Project overview
- Use ATX-style headers (
#syntax) for logical screen reader navigation. - Keep line length to 120 characters (Prose-wrap preferred).
- Always include descriptive
alttext for images. - Specify a language for fenced code blocks (e.g.,
bash,python,c).
- Text over Audio: Provide persistent text for all critical information.
- Low Cognitive Load: Use clear bullet points and avoid "walls of text."
- No Spatial Reliance: Avoid directions or instructions that require mental mapping or visual-only placement.
Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for
submitting pull requests.
- Website: lanie.work
- Mastodon: @RareBird15@allovertheplace.ca
- GitHub: RareBird15
- LinkedIn: laniecarmelo
- Code::Stats: RareBird15
Powered by Pelican, styled with the Flex theme, and hosted on GitHub Pages.