Technologies and dependencies
- Eleventy (11ty)
- Static site generator using Node.js
- Dependencies:
- Template engines:
- Nunjucks (.njk): Primary templating language with template inheritance, filters, and shortcodes
- Markdown (.md): Content format for blog posts and pages
- markdown-it: Markdown parser used by Eleventy for processing .md files (configured with HTML support, line breaks, and auto-linkification)
- HTML: Of course
- Data formats:
- YAML (.yaml, .yml): Used for data files in
_data/ directory (e.g., links.yaml)
- js-yaml: YAML parser for processing .yaml and .yml data files
- JSON: Supported data format (though YAML is preferred for new data files)
- Plugins:
- Node.js
- JavaScript runtime for running build scripts, test scripts, and deployment scripts
- Module system: CommonJS (uses
require() and module.exports)
- Built-in modules used:
- fs: File system operations
- path: Path manipulation utilities
- child_process: Executing shell commands (rsync, validation)
- http / https: HTTP client for link checking
- url: URL parsing and manipulation
- crypto: Hashing for file comparison
- Date & Time Handling
- luxon: Modern date/time library used throughout the site for parsing, formatting, and manipulating dates (replaces Moment.js)
- Testing & Validation
- puppeteer: Headless browser automation used for:
- Accessibility testing (launches Chromium to test HTML files)
- Open Graph image generation (renders HTML templates to PNG images)
- axe-core: Accessibility testing engine used by test-accessibility.js (analyzes HTML for WCAG compliance violations)
- html-validate: Offline HTML5 validator used by test-html.js (validates HTML syntax, nesting, and attributes)
- @xmldom/xmldom: XML DOM parser for RSS feed validation in test scripts
- cspell: Spell checker used by test-spell.js to validate spelling in markdown and YAML files
- markdownlint-cli2: Markdown linter used by test-markdown.js to validate markdown syntax and formatting
- cheerio: Server-side HTML manipulation library used in transforms and test scripts for parsing and modifying HTML
- Deployment
- dotenv: Loads environment variables from .env file for deployment scripts
- rsync: File synchronization for deployment (must be installed on system)
- SSH: Secure shell access for remote deployment (must be configured)
- Web Standards
- HTML: Output format for all generated pages
- RSS/XML: RSS feed generation for blog posts and links
- CSS: Styling (vanilla CSS with custom properties)