From 01f9217a4603347c685d933d210c18b52544f902 Mon Sep 17 00:00:00 2001 From: Eric Liu Date: Sat, 2 Aug 2025 22:59:00 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=84=20(rules):=20add=20comprehensive?= =?UTF-8?q?=20Hugo=20site=20development=20rules=20and=20best=20practices?= =?UTF-8?q?=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cursorrules | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 .cursorrules diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 0000000..d48cd07 --- /dev/null +++ b/.cursorrules @@ -0,0 +1,104 @@ +# Hugo Site Development Rules + +## Project Overview +This is a Hugo static site using the hugo-coder theme with Obsidian markdown compatibility. + +## Hugo Best Practices + +### Content Creation +- **DO** place all content files in `content/` directory +- **DO** use front matter with `title`, `date`, and `draft` fields +- **DO** set `draft: false` for published content +- **DO** use lowercase filenames with hyphens (e.g., `my-post.md`) +- **DON'T** create content files outside the `content/` directory + +### Markdown Usage +- **DO** use standard markdown syntax +- **DO** use `$$` for block math and `$` for inline math +- **DO** use `- [ ]` and `- [x]` for task lists +- **DO** use `==text==` for highlighting +- **DO** use footnotes with `[^1]` syntax +- **DON'T** use `$$$$` as special delimiters (not supported) +- **DON'T** rely on Obsidian-specific features like wiki-links `[[]]` + +### Theme Customization +- **DO** override theme files by creating matching structure in `layouts/` +- **DO** place custom partials in `layouts/partials/` +- **DO** use `static/` for static assets (images, CSS, JS) +- **DON'T** modify files directly in `themes/` directory +- **DON'T** commit theme modifications + +### Configuration +- **DO** use `config.toml` for site configuration +- **DO** test configuration changes locally before deploying +- **DO** enable features in `[markup.goldmark.extensions]` for Obsidian compatibility +- **DON'T** modify theme configuration files directly + +### Development Workflow +- **DO** run `hugo server` for local development +- **DO** use `hugo --logLevel info` for detailed build output +- **DO** test builds with `hugo` before deployment +- **DON'T** commit the `public/` directory (build output) +- **DON'T** commit temporary Hugo binaries + +### File Organization +``` +├── content/ # All markdown content +│ ├── posts/ # Blog posts +│ └── about.md # Static pages +├── layouts/ # Custom theme overrides +│ └── partials/ # Custom partial templates +├── static/ # Static assets +│ └── images/ # Image files +├── themes/ # Hugo themes (don't modify) +└── config.toml # Site configuration +``` + +### Math and Special Content +- **DO** enable math with `math = true` in front matter or site config +- **DO** use KaTeX-compatible LaTeX syntax +- **DO** test math rendering after changes +- **DON'T** assume all LaTeX packages are available + +### Performance +- **DO** optimize images before adding to `static/` +- **DO** use appropriate image formats (WebP, PNG, JPG) +- **DO** minimize custom CSS/JS +- **DON'T** add unnecessary JavaScript libraries + +### SEO and Metadata +- **DO** include descriptive titles and descriptions +- **DO** use proper heading hierarchy (H1 -> H2 -> H3) +- **DO** add alt text to images +- **DON'T** duplicate titles across pages + +### Common Pitfalls to Avoid +- **DON'T** use absolute paths in content (use relative paths) +- **DON'T** assume Obsidian plugins work in Hugo +- **DON'T** use Hugo-specific shortcodes without testing +- **DON'T** modify theme files without creating proper overrides +- **DON'T** forget to set `draft: false` for published content + +### Git Workflow +- **DO** commit source files (content, config, layouts) +- **DO** use meaningful commit messages +- **DON'T** commit build artifacts (`public/`, temporary files) +- **DON'T** commit sensitive configuration (API keys, etc.) + +### Testing Checklist +Before deployment, verify: +- [ ] All content renders correctly +- [ ] Math formulas display properly +- [ ] Images load correctly +- [ ] Links work (internal and external) +- [ ] Site builds without errors +- [ ] Mobile responsiveness +- [ ] Dark/light theme switching works + +### Emergency Fixes +If site breaks: +1. Check `hugo --logLevel info` for build errors +2. Verify `config.toml` syntax +3. Check for missing front matter in content files +4. Ensure all required assets exist in `static/` +5. Test with `hugo server` locally first \ No newline at end of file