Skip to content

Commit 08d75a6

Browse files
committed
docs: DEV guide
1 parent de96c83 commit 08d75a6

File tree

1 file changed

+126
-0
lines changed

1 file changed

+126
-0
lines changed

DEVELOPMENT.md

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# Development Guide for Python Deadlines
2+
3+
## Quick Development Builds
4+
5+
The full site build with all languages and historical data can take a long time. We provide several development configurations for faster iteration:
6+
7+
### Available Commands
8+
9+
```bash
10+
# Full production build (all languages, all data) - SLOW
11+
pixi run serve
12+
13+
# Development build (English + German, no archive/legacy) - FAST
14+
pixi run serve-dev
15+
16+
# Minimal build (English only, minimal plugins) - FASTEST
17+
pixi run serve-minimal
18+
19+
# Fast incremental build (skips initial build)
20+
pixi run serve-fast
21+
```
22+
23+
### Build Time Comparison
24+
25+
| Command | Languages | Archive/Legacy | Plugins | Build Time |
26+
|---------|-----------|----------------|---------|------------|
27+
| `serve` | All 9 | Yes | All | ~3-5 minutes |
28+
| `serve-dev` | EN, DE | No | Most | ~30-45 seconds |
29+
| `serve-minimal` | EN only | No | Minimal | ~15-20 seconds |
30+
| `serve-fast` | EN, DE | No | Most | ~10 seconds (incremental) |
31+
32+
### Configuration Files
33+
34+
- **`_config.yml`** - Main production configuration
35+
- **`_config.dev.yml`** - Development config (EN+DE, no historical data)
36+
- **`_config.minimal.yml`** - Minimal config (EN only, bare essentials)
37+
38+
### How It Works
39+
40+
Jekyll allows layering configurations using the `--config` flag:
41+
```bash
42+
jekyll serve --config _config.yml,_config.dev.yml
43+
```
44+
45+
Later configs override earlier ones, so `_config.dev.yml` overrides specific settings from `_config.yml`.
46+
47+
### What Gets Excluded in Dev Mode
48+
49+
**Development Mode (`serve-dev`):**
50+
- Languages: Only English and German
51+
- Archive data: Not processed
52+
- Legacy data: Not processed
53+
- Some plugins: Sitemap disabled
54+
- Analytics: Disabled
55+
56+
**Minimal Mode (`serve-minimal`):**
57+
- Languages: Only English
58+
- Only current conferences processed
59+
- Minimal plugins (no SEO, maps, sitemap)
60+
- All other languages excluded from file watching
61+
- Maximum speed optimizations
62+
63+
### When to Use Each Mode
64+
65+
- **`serve`** - Final testing before deployment, checking all languages
66+
- **`serve-dev`** - General development, testing features
67+
- **`serve-minimal`** - Quick iterations, CSS/JS development
68+
- **`serve-fast`** - Continuous development with auto-reload
69+
70+
### Tips for Faster Development
71+
72+
1. **Use minimal mode for CSS/JS work:**
73+
```bash
74+
pixi run serve-minimal
75+
```
76+
77+
2. **Skip link checking when sorting:**
78+
```bash
79+
pixi run sort # Uses --skip_links by default
80+
```
81+
82+
3. **Use incremental builds:**
83+
```bash
84+
pixi run serve-fast
85+
```
86+
87+
4. **Exclude files from watch:**
88+
Add large files or directories to `exclude:` in dev configs
89+
90+
5. **Clear Jekyll cache if builds are slow:**
91+
```bash
92+
rm -rf _site .jekyll-cache
93+
```
94+
95+
### Custom Development Configuration
96+
97+
You can create your own config for specific needs:
98+
99+
```yaml
100+
# _config.custom.yml
101+
languages: [ "en", "es" ] # Your preferred languages
102+
page_gen:
103+
# Your custom page generation rules
104+
```
105+
106+
Then use it:
107+
```bash
108+
bundler exec jekyll serve --config _config.yml,_config.custom.yml
109+
```
110+
111+
### Troubleshooting
112+
113+
**Build still slow?**
114+
- Clear cache: `rm -rf _site .jekyll-cache`
115+
- Check for large files in `_data/`
116+
- Use `--profile` flag to identify bottlenecks
117+
118+
**Missing content in dev mode?**
119+
- Check which config you're using
120+
- Archive/legacy conferences won't appear in dev mode
121+
- Some languages are excluded
122+
123+
**Changes not appearing?**
124+
- Restart Jekyll if you modify `_config*.yml`
125+
- Check if files are excluded in the config
126+
- Try without `--incremental` flag

0 commit comments

Comments
 (0)