|
| 1 | +# WARP.md |
| 2 | + |
| 3 | +This file provides guidance to WARP (warp.dev) when working with code in this repository. |
| 4 | + |
| 5 | +## Project Overview |
| 6 | + |
| 7 | +This is a Jekyll-based academic research website for the Permuta Triangle research group, focused on the combinatorics of permutation patterns. The site showcases research papers, programs, projects, and team members in the field of permutation theory and combinatorial mathematics. |
| 8 | + |
| 9 | +## Development Environment Setup |
| 10 | + |
| 11 | +### Prerequisites |
| 12 | +- Ruby (version compatible with Jekyll) |
| 13 | +- Bundler gem manager |
| 14 | +- Jekyll static site generator |
| 15 | + |
| 16 | +### Installation |
| 17 | +```bash |
| 18 | +# Install required gems |
| 19 | +bundle install |
| 20 | + |
| 21 | +# Serve the site locally for development |
| 22 | +bundle exec jekyll serve |
| 23 | + |
| 24 | +# Build the site for production |
| 25 | +bundle exec jekyll build |
| 26 | +``` |
| 27 | + |
| 28 | +Note: If you encounter bundler version issues, run: |
| 29 | +```bash |
| 30 | +gem install bundler:2.0.2 |
| 31 | +# or |
| 32 | +bundle update --bundler |
| 33 | +``` |
| 34 | + |
| 35 | +## Site Architecture |
| 36 | + |
| 37 | +### Jekyll Collections |
| 38 | +The site uses Jekyll collections to organize different types of content: |
| 39 | + |
| 40 | +- `_authors/` - Research group members and collaborators |
| 41 | +- `_papers/` - Academic papers and publications |
| 42 | +- `_programs/` - Software projects (Permuta, Tilings, ComboPal) |
| 43 | +- `_projects/` - Research projects |
| 44 | +- `_talks/` - Conference presentations and talks |
| 45 | +- `_posts/` - Blog posts and news updates |
| 46 | + |
| 47 | +### Key Configuration |
| 48 | +- **Theme**: Minima |
| 49 | +- **Plugins**: jekyll-feed, github-pages |
| 50 | +- **Collections**: All collections have `output: true` for individual pages |
| 51 | +- **Layouts**: Custom layouts for each collection type (paper.html, author.html, etc.) |
| 52 | + |
| 53 | +### Content Structure |
| 54 | + |
| 55 | +#### Authors |
| 56 | +Author files in `_authors/` use frontmatter: |
| 57 | +- `status` - member, student, collaborator |
| 58 | +- `short_name` - used for references in papers |
| 59 | +- `first_name`, `name` - display names |
| 60 | +- `position` - academic position |
| 61 | + |
| 62 | +#### Papers |
| 63 | +Paper files in `_papers/` include: |
| 64 | +- `title` - paper title |
| 65 | +- `journal` - publication venue |
| 66 | +- `authors` - array of author short_names |
| 67 | +- `projects` - related research projects |
| 68 | +- Content includes abstract, updates, download links, presentations |
| 69 | + |
| 70 | +#### Programs |
| 71 | +Software project documentation in `_programs/` for: |
| 72 | +- **Permuta** - Python library for permutation patterns |
| 73 | +- **Tilings** - Library for gridded permutations and tilings |
| 74 | +- **ComboPal** - Combinatorial pattern analysis tool |
| 75 | + |
| 76 | +### Navigation and Data |
| 77 | +- `_data/navigation.yml` - Site navigation menu |
| 78 | +- `_includes/navigation.html` - Navigation component |
| 79 | +- Cross-references between collections using author short_names |
| 80 | + |
| 81 | +## Common Development Tasks |
| 82 | + |
| 83 | +### Adding New Content |
| 84 | + |
| 85 | +**New Paper:** |
| 86 | +```bash |
| 87 | +# Create file: _papers/YYYY-MM-DD-shortname.md |
| 88 | +# Follow existing frontmatter format with authors array |
| 89 | +``` |
| 90 | + |
| 91 | +**New Author:** |
| 92 | +```bash |
| 93 | +# Create file: _authors/shortname.md |
| 94 | +# Set status: member/student/collaborator |
| 95 | +# Use short_name consistently across papers |
| 96 | +``` |
| 97 | + |
| 98 | +**New Program/Software:** |
| 99 | +```bash |
| 100 | +# Create file: _programs/YYYY-MM-DD-name.md |
| 101 | +# Include repo links and installation instructions |
| 102 | +``` |
| 103 | + |
| 104 | +### Local Development |
| 105 | +```bash |
| 106 | +# Start development server with live reload |
| 107 | +bundle exec jekyll serve --livereload |
| 108 | + |
| 109 | +# Build and check links |
| 110 | +bundle exec jekyll build |
| 111 | +# Site builds to _site/ directory |
| 112 | +``` |
| 113 | + |
| 114 | +### Asset Management |
| 115 | +- Images: `/assets/img/` (paper figures, author photos) |
| 116 | +- PDFs: `/assets/talks/` (presentation slides) |
| 117 | +- CVs: `/assets/cvs/` (curriculum vitae files) |
| 118 | + |
| 119 | +## Related Codebases |
| 120 | + |
| 121 | +This research group maintains several related software projects: |
| 122 | +- **Permuta** (`/Users/henningu/github_repos/Permuta`) - Python permutation library |
| 123 | +- **Tilings** (`/Users/henningu/github_repos/Tilings`) - Gridded permutation library |
| 124 | +- **CayleyPerms** (`/Users/henningu/github_repos/CayleyPerms`) - Related permutation tools |
| 125 | + |
| 126 | +These codebases are often referenced in the `_programs/` collection and may be linked from papers and research descriptions. |
| 127 | + |
| 128 | +## Content Guidelines |
| 129 | + |
| 130 | +- Use author `short_name` consistently across all collections |
| 131 | +- Papers should include arXiv and journal links when available |
| 132 | +- Include presentation materials and update sections for ongoing research |
| 133 | +- Programs should have clear installation and usage examples |
| 134 | +- Maintain consistent date formatting: YYYY-MM-DD in filenames |
| 135 | + |
| 136 | +## GitHub Pages Deployment |
| 137 | + |
| 138 | +The site is configured for GitHub Pages deployment using: |
| 139 | +- `github-pages` gem in Gemfile |
| 140 | +- Jekyll compatible plugins only |
| 141 | +- Assets served from `/assets/` directory |
| 142 | +- Custom 404 page available |
0 commit comments