This pull request significantly expands and clarifies the documentation for the al-folio Jekyll theme, focusing on improved file structure explanations, enhanced quick reference guides, and the addition of a comprehensive analytics setup guide. The changes make it easier for users and contributors to understand the project organization, available features, and configuration options, especially regarding CV formats, teaching pages, and analytics integration. **Key documentation and structure improvements:** *Expanded file and collection structure:* - The file structure documentation in `.github/agents/customize.agent.md` and `.github/agents/docs.agent.md` now details all major directories, including new and existing collections such as `_books/`, `_teachings/`, `_scripts/`, `_plugins/`, and expanded `assets/` subdirectories. It also covers new configuration and utility files, making it easier for users to locate and understand the purpose of each file or folder. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L24-R66) [[2]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L17-R58) *Documentation and quick reference enhancements:* - The quick reference table in `.github/agents/customize.agent.md` has been updated to include new actions like adding teaching pages, setting up analytics, improving SEO, and ensuring accessibility, with more precise documentation links. - The documentation map now lists all major guides (e.g., `QUICKSTART.md`, `INSTALL.md`, `TROUBLESHOOTING.md`, `ACCESSIBILITY.md`, `ANALYTICS.md`, `SEO.md`), providing a clearer overview of available resources. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L58-R110) [[2]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L17-R58) **Feature and configuration documentation updates:** *CV/resume format guidance:* - The CV documentation now clarifies that users can maintain both RenderCV and JSONResume formats simultaneously, with clear instructions on switching between them and deleting unused files if desired. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L139-R185) [[2]](diffhunk://#diff-52f2a9488bfe4177d1f1d01120859dad0b3e2d087283ded68f72d47b4f183391L291-R291) *Teaching pages and new collections:* - Adds documentation for the new `_teachings/` collection, including required frontmatter and support for course materials, as well as updates to enable/disable teaching and books pages via `_config.yml`. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L180-R252) [[2]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L24-R66) *Analytics integration:* - Introduces a new `ANALYTICS.md` guide with detailed setup instructions for Google Analytics, privacy-friendly alternatives (Plausible, Pirsch, Openpanel, GoAccess), GDPR considerations, and a comparison table to help users choose the right analytics provider. - The configuration documentation now references analytics setup and related configuration options. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L180-R252) [[2]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L479-R550) These updates collectively make the documentation more comprehensive, actionable, and user-friendly for both new and advanced users. **References:** [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L24-R66) [[2]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L58-R110) [[3]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L139-R185) [[4]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L180-R252) [[5]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L479-R550) [[6]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L17-R58) [[7]](diffhunk://#diff-0967e840631a541bb95e057e1c6d4884274cf56d5a217d7fee2eb7223b6b4c0dR1-R268) [[8]](diffhunk://#diff-52f2a9488bfe4177d1f1d01120859dad0b3e2d087283ded68f72d47b4f183391L291-R291) --------- Signed-off-by: George Araújo <george.gcac@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
454 lines
12 KiB
Markdown
454 lines
12 KiB
Markdown
# Troubleshooting Guide
|
||
|
||
This guide covers common issues and their solutions. For more information, see [FAQ.md](FAQ.md) or check [GitHub Discussions](https://github.com/alshedivat/al-folio/discussions).
|
||
|
||
<!--ts-->
|
||
|
||
- [Troubleshooting Guide](#troubleshooting-guide)
|
||
- [Deployment Issues](#deployment-issues)
|
||
- [Site fails to deploy on GitHub Pages](#site-fails-to-deploy-on-github-pages)
|
||
- [Custom domain becomes blank after deployment](#custom-domain-becomes-blank-after-deployment)
|
||
- [GitHub Actions: "Unknown tag 'toc'" error](#github-actions-unknown-tag-toc-error)
|
||
- [Local Build Issues](#local-build-issues)
|
||
- [Docker build fails](#docker-build-fails)
|
||
- [Ruby dependency issues](#ruby-dependency-issues)
|
||
- [Port already in use](#port-already-in-use)
|
||
- [Styling & Layout Problems](#styling--layout-problems)
|
||
- [CSS and JS not loading properly](#css-and-js-not-loading-properly)
|
||
- [Site looks broken after deployment](#site-looks-broken-after-deployment)
|
||
- [Theme colors not applying](#theme-colors-not-applying)
|
||
- [Content Not Appearing](#content-not-appearing)
|
||
- [Blog posts not showing up](#blog-posts-not-showing-up)
|
||
- [Publications not displaying](#publications-not-displaying)
|
||
- [Images not loading](#images-not-loading)
|
||
- [Configuration Issues](#configuration-issues)
|
||
- [YAML syntax errors](#yaml-syntax-errors)
|
||
- [Feed (RSS/Atom) not working](#feed-rssatom-not-working)
|
||
- [Search not working](#search-not-working)
|
||
- [Feature-Specific Issues](#feature-specific-issues)
|
||
- [Comments (Giscus) not appearing](#comments-giscus-not-appearing)
|
||
- [Related posts broken](#related-posts-broken)
|
||
- [Code formatting issues](#code-formatting-issues)
|
||
- [Getting Help](#getting-help)
|
||
<!--te-->
|
||
|
||
## Deployment Issues
|
||
|
||
### Site fails to deploy on GitHub Pages
|
||
|
||
**Problem:** GitHub Actions shows an error when deploying.
|
||
|
||
**Solution:**
|
||
|
||
1. Check your repository **Actions** tab for error messages
|
||
2. Ensure you followed [Step 2 of QUICKSTART.md](QUICKSTART.md#step-2-configure-deployment-1-min) (Workflow permissions)
|
||
3. Verify your `_config.yml` has correct `url` and `baseurl`:
|
||
- Personal site: `url: https://username.github.io` and `baseurl:` (empty)
|
||
- Project site: `url: https://username.github.io` and `baseurl: /repo-name/`
|
||
4. Check that you're pushing to the `main` (or `master`) branch, NOT `gh-pages`
|
||
5. Commit and push a small change to trigger redeployment
|
||
|
||
**For YAML syntax errors:**
|
||
|
||
- Run `bundle exec jekyll build` locally to see the exact error
|
||
- Check for unquoted special characters (`:`, `&`, `#`) in YAML strings
|
||
|
||
---
|
||
|
||
### Custom domain becomes blank after deployment
|
||
|
||
**Problem:** You set a custom domain (e.g., `example.com`), but it resets to blank after deployment.
|
||
|
||
**Solution:**
|
||
|
||
1. Create a file named `CNAME` (no extension) in your repository root
|
||
2. Add your domain to it: `example.com` (one domain per line)
|
||
3. Commit and push
|
||
4. The domain will persist after future deployments
|
||
|
||
(See [DNS configuration instructions in INSTALL.md](INSTALL.md#deployment) for initial custom domain setup.)
|
||
|
||
---
|
||
|
||
### GitHub Actions: "Unknown tag 'toc'" error
|
||
|
||
**Problem:** Local build works, but GitHub Actions fails with `Unknown tag 'toc'`.
|
||
|
||
**Solution:**
|
||
|
||
1. Check your **Settings** → **Pages** → **Source** is set to `Deploy from a branch`
|
||
2. Ensure the branch is set to `gh-pages` (NOT `main`)
|
||
3. Wait 5 minutes and check Actions again
|
||
4. The issue usually resolves after you verify the gh-pages branch is set
|
||
|
||
---
|
||
|
||
## Local Build Issues
|
||
|
||
### Docker build fails
|
||
|
||
**Problem:** `docker compose up` fails or shows errors.
|
||
|
||
**Solution:**
|
||
|
||
1. Update Docker: `docker compose pull`
|
||
2. Rebuild: `docker compose up --build`
|
||
3. If still failing, check your system resources (disk space, RAM)
|
||
4. For M1/M2 Mac users, verify you're using a compatible Docker version
|
||
5. Check Docker Desktop is running
|
||
|
||
**For permission issues:**
|
||
|
||
- Linux users may need to add your user to the docker group: `sudo usermod -aG docker $USER`
|
||
- Then log out and log back in
|
||
|
||
---
|
||
|
||
### Ruby dependency issues
|
||
|
||
**Problem:** `Gemfile.lock` conflicts or bundle errors.
|
||
|
||
**Solution:**
|
||
|
||
1. Delete `Gemfile.lock`: `rm Gemfile.lock`
|
||
2. Update Bundler: `bundle update`
|
||
3. Install gems: `bundle install`
|
||
4. Try serving again: `bundle exec jekyll serve`
|
||
|
||
---
|
||
|
||
### Port already in use
|
||
|
||
**Problem:** "Address already in use" when running `jekyll serve`.
|
||
|
||
**Solution - Docker:**
|
||
|
||
```bash
|
||
docker compose down # Stop the running container
|
||
docker compose up # Start fresh
|
||
```
|
||
|
||
**Solution - Local Ruby:**
|
||
|
||
```bash
|
||
# Find and kill the Jekyll process
|
||
lsof -i :4000 | grep LISTEN | awk '{print $2}' | xargs kill
|
||
|
||
# Or specify a different port
|
||
bundle exec jekyll serve --port 5000
|
||
```
|
||
|
||
---
|
||
|
||
## Styling & Layout Problems
|
||
|
||
### CSS and JS not loading properly
|
||
|
||
**Problem:** Site looks broken: no colors, fonts wrong, links don't work.
|
||
|
||
**Common cause:** Incorrect `url` and `baseurl` in `_config.yml`.
|
||
|
||
**Solution:**
|
||
|
||
1. **Personal/organization site:**
|
||
|
||
```yaml
|
||
url: https://username.github.io
|
||
baseurl: # MUST be empty (not deleted)
|
||
```
|
||
|
||
2. **Project site:**
|
||
|
||
```yaml
|
||
url: https://username.github.io
|
||
baseurl: /repository-name/ # Must match your repo name
|
||
```
|
||
|
||
3. **Clear browser cache:**
|
||
- Chrome: `Ctrl+Shift+R` (Windows/Linux) or `Cmd+Shift+R` (Mac)
|
||
- Firefox: `Ctrl+F5` (Windows/Linux) or `Cmd+R` (Mac)
|
||
- Or open a private/incognito window
|
||
|
||
4. Redeploy: Make a small change and push to trigger GitHub Actions again
|
||
|
||
---
|
||
|
||
### Site looks broken after deployment
|
||
|
||
**Checklist:**
|
||
|
||
- [ ] Is `baseurl` correct (and not accidentally deleted)?
|
||
- [ ] Did you clear your browser cache?
|
||
- [ ] Wait 5 minutes for GitHub Pages to update
|
||
- [ ] Check GitHub Actions completed successfully
|
||
|
||
---
|
||
|
||
### Theme colors not applying
|
||
|
||
**Problem:** You changed `_config.yml` color settings but nothing changed.
|
||
|
||
**Solution:**
|
||
|
||
1. Check your color name is valid in `_sass/_variables.scss`
|
||
2. Clear browser cache (see above)
|
||
3. Rebuild: `docker compose up --build` (Docker) or `bundle exec jekyll build` (Ruby)
|
||
4. Wait for GitHub Actions to complete
|
||
5. Visit the site in a private/incognito window
|
||
|
||
---
|
||
|
||
## Content Not Appearing
|
||
|
||
### Blog posts not showing up
|
||
|
||
**Problem:** Created a post in `_posts/` but it's not on the blog page.
|
||
|
||
**Checklist:**
|
||
|
||
- [ ] Filename format is correct: `YYYY-MM-DD-title.md` (e.g., `2024-01-15-my-post.md`)
|
||
- [ ] File is in the `_posts/` directory (not in a subdirectory)
|
||
- [ ] Post has required frontmatter:
|
||
```markdown
|
||
---
|
||
layout: post
|
||
title: My Post Title
|
||
date: 2024-01-15
|
||
---
|
||
```
|
||
- [ ] Post date is NOT in the future (Jekyll doesn't publish future-dated posts by default)
|
||
- [ ] Blog posts are enabled in `_config.yml`: `blog_page: true`
|
||
|
||
**To fix:**
|
||
|
||
1. Check the filename format (uppercase, dashes, no spaces)
|
||
2. Verify the date is today or in the past
|
||
3. Rebuild: `bundle exec jekyll build` and check for error messages
|
||
|
||
---
|
||
|
||
### Publications not displaying
|
||
|
||
**Problem:** You added a BibTeX entry to `papers.bib` but it's not showing on the publications page.
|
||
|
||
**Checklist:**
|
||
|
||
- [ ] File is at `_bibliography/papers.bib`
|
||
- [ ] BibTeX syntax is correct (check for missing commas, unmatched braces)
|
||
- [ ] Entry has a unique citation key: `@article{einstein1905, ...}`
|
||
- [ ] Publication page is enabled: Check `publications_page: true` in `_config.yml`
|
||
|
||
**To debug BibTeX errors:**
|
||
|
||
```bash
|
||
# Local Ruby setup
|
||
bundle exec jekyll build 2>&1 | grep -i bibtex
|
||
|
||
# Docker
|
||
docker compose run --rm web jekyll build 2>&1 | grep -i bibtex
|
||
```
|
||
|
||
---
|
||
|
||
### Images not loading
|
||
|
||
**Problem:** Image paths broken or showing as missing.
|
||
|
||
**Common causes:**
|
||
|
||
- Wrong path in Markdown (use relative paths)
|
||
- Image file doesn't exist at the specified location
|
||
- Case sensitivity (Linux/Mac are case-sensitive)
|
||
|
||
**Solutions:**
|
||
|
||
1. **Correct path format:**
|
||
|
||
```markdown
|
||

|
||
```
|
||
|
||
2. **Check the file exists:**
|
||
- Personal images: `assets/img/`
|
||
- Paper PDFs: `assets/pdf/`
|
||
- Use lowercase filenames, no spaces
|
||
|
||
3. **For BibTeX PDF links:**
|
||
```bibtex
|
||
@article{mykey,
|
||
pdf={my-paper.pdf}, % File should be at assets/pdf/my-paper.pdf
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## Configuration Issues
|
||
|
||
### YAML syntax errors
|
||
|
||
**Problem:** GitHub Actions fails with YAML error, or build is silent.
|
||
|
||
**Common mistakes:**
|
||
|
||
```yaml
|
||
# ❌ Wrong: Unquoted colons or ampersands
|
||
title: My Site: Research & Teaching
|
||
|
||
# ✅ Correct: Quote special characters
|
||
title: "My Site: Research & Teaching"
|
||
```
|
||
|
||
```yaml
|
||
# ❌ Wrong: Inconsistent indentation
|
||
nav:
|
||
- name: Home
|
||
url: /
|
||
- name: About # Extra space!
|
||
url: /about/
|
||
|
||
# ✅ Correct: Consistent 2-space indentation
|
||
nav:
|
||
- name: Home
|
||
url: /
|
||
- name: About
|
||
url: /about/
|
||
```
|
||
|
||
**To find errors:**
|
||
|
||
1. Use a YAML validator: [yamllint.com](https://www.yamllint.com/)
|
||
2. Run locally: `bundle exec jekyll build` shows the exact error line
|
||
3. Check that you didn't delete required lines (like `baseurl:`)
|
||
|
||
---
|
||
|
||
### Feed (RSS/Atom) not working
|
||
|
||
**Problem:** RSS feed at `/feed.xml` is empty or broken.
|
||
|
||
**Solution:**
|
||
|
||
1. Verify required `_config.yml` fields:
|
||
```yaml
|
||
title: Your Site Title
|
||
description: Brief description
|
||
url: https://your-domain.com # MUST be absolute URL
|
||
```
|
||
2. Ensure `baseurl` is correct
|
||
3. Check at least one blog post exists (with correct date)
|
||
4. Rebuild and wait for GitHub Actions to complete
|
||
|
||
---
|
||
|
||
### Search not working
|
||
|
||
**Problem:** Search box is empty or always returns nothing.
|
||
|
||
**Solution:**
|
||
|
||
1. Ensure search is enabled in `_config.yml`:
|
||
```yaml
|
||
search_enabled: true
|
||
```
|
||
2. Check that `_config.yml` has a valid `url` (required for search)
|
||
3. Rebuild the site
|
||
4. Search index is generated during build; give it a minute after push
|
||
|
||
---
|
||
|
||
## Feature-Specific Issues
|
||
|
||
### Comments (Giscus) not appearing
|
||
|
||
**Problem:** You enabled Giscus in `_config.yml` but comments don't show.
|
||
|
||
**Solution:**
|
||
|
||
1. Verify you have a GitHub repository for discussions (usually your main repo)
|
||
2. Check `_config.yml` has correct settings:
|
||
```yaml
|
||
disqus_shortname: false # Make sure this is false
|
||
giscus:
|
||
repo: username/repo-name
|
||
repo_id: YOUR_REPO_ID
|
||
category_id: YOUR_CATEGORY_ID
|
||
```
|
||
3. Visit [Giscus.app](https://giscus.app) to get your IDs and verify setup
|
||
4. Check the GitHub repo has Discussions enabled (Settings → Features)
|
||
|
||
---
|
||
|
||
### Related posts broken
|
||
|
||
**Problem:** Related posts feature crashes or shows errors.
|
||
|
||
**Solution:**
|
||
|
||
1. Related posts requires more gems. If you disabled it in `_config.yml`, that's fine:
|
||
```yaml
|
||
related_blog_posts:
|
||
enabled: false
|
||
```
|
||
2. If you want to enable it, ensure `Gemfile` has all dependencies installed:
|
||
```bash
|
||
bundle install
|
||
bundle exec jekyll build
|
||
```
|
||
|
||
---
|
||
|
||
### Code formatting issues
|
||
|
||
**Problem:** Code blocks don't have syntax highlighting or look wrong.
|
||
|
||
**Solution:**
|
||
|
||
1. Use proper markdown syntax:
|
||
|
||
````markdown
|
||
```python
|
||
# Your code here
|
||
print("hello")
|
||
```
|
||
````
|
||
|
||
2. For inline code:
|
||
|
||
```markdown
|
||
Use `code-here` for inline code.
|
||
```
|
||
|
||
3. Check that your language is supported by Pygments (Python, Ruby, JavaScript, etc. are all supported)
|
||
|
||
---
|
||
|
||
## Getting Help
|
||
|
||
If you're stuck:
|
||
|
||
1. **Check existing documentation:**
|
||
- [QUICKSTART.md](QUICKSTART.md) – Get started in 5 minutes
|
||
- [INSTALL.md](INSTALL.md) – Installation and deployment
|
||
- [CUSTOMIZE.md](CUSTOMIZE.md) – Full customization guide
|
||
- [FAQ.md](FAQ.md) – Frequently asked questions
|
||
|
||
2. **Search for your issue:**
|
||
- [GitHub Discussions](https://github.com/alshedivat/al-folio/discussions) – Q&A from community
|
||
- [GitHub Issues](https://github.com/alshedivat/al-folio/issues) – Bug reports and feature requests
|
||
|
||
3. **Get help from AI:**
|
||
- Use the **GitHub Copilot Customization Agent** (requires Copilot subscription) to get step-by-step help
|
||
- See [CUSTOMIZE.md § GitHub Copilot Customization Agent](CUSTOMIZE.md#github-copilot-customization-agent)
|
||
|
||
4. **Create a new discussion:**
|
||
- [Ask a question](https://github.com/alshedivat/al-folio/discussions/new?category=q-a) on GitHub
|
||
- Include error messages and what you're trying to do
|
||
|
||
---
|
||
|
||
**Most issues are resolved by:**
|
||
|
||
1. Checking `url` and `baseurl` in `_config.yml`
|
||
2. Clearing browser cache
|
||
3. Waiting for GitHub Actions to complete (~5 minutes)
|