# Table Mode
Journey supports displaying notes in table format with customizable headers and locale-aware defaults.
## Configuration
Set the `list_type` to `table` in your vault configuration:
```yaml
vaults:
work:
name: work
path: ~/Documents/work-journal
locale: en_US.UTF-8
list_type: table # or "bullet" (default)
```
## List Types
### Bullet Format (Default)
```yaml
list_type: bullet
```
Output:
```markdown
- 09:00:00 Morning standup meeting
- 10:30:00 Code review completed
- 14:00:00 Project planning session
```
### Table Format
```yaml
list_type: table
```
Output:
```markdown
| 14:00:00 | Project planning session |
```
## Table Headers
When using table format, you can include markdown table headers using the `--header` flag:
```bash
# List notes with table headers
journey --list --header
```
### Output Behavior
**Without `--header` flag (default):**
```markdown
| 14:00:00 | Project planning session |
```
**With `--header` flag:**
```markdown
| 09:00:00 | Morning standup meeting |
| 10:30:00 | Code review completed |
| 14:00:00 | Project planning session |
```
### Table Mode Behavior
When listing notes in table format:
- The "Notes for: <date>" message is **automatically suppressed**
- Table headers are **not sorted** with note content
- Use `--header` flag to include markdown table headers
- Output is clean and ready for piping or copying
## Locale-Dependent Headers
Journey automatically uses appropriate table headers based on your vault's locale:
| English (`en_US.UTF-8`) | Time | Content |
| Norwegian (`no_NO.UTF-8`) | Tid | Innhold |
| Swedish (`sv_SE.UTF-8`) | Tid | Innehåll |
| Danish (`da_DK.UTF-8`) | Tid | Indhold |
| Finnish (`fi_FI.UTF-8`) | Aika | Sisältö |
| German (`de_DE.UTF-8`) | Zeit | Inhalt |
| French (`fr_FR.UTF-8`) | Heure | Contenu |
| Spanish (`es_ES.UTF-8`) | Hora | Contenido |
| Italian (`it_IT.UTF-8`) | Ora | Contenuto |
| Dutch (`nl_NL.UTF-8`) | Tijd | Inhoud |
| Portuguese (`pt_PT.UTF-8`) | Hora | Conteúdo |
| Russian (`ru_RU.UTF-8`) | Время | Содержание |
| Japanese (`ja_JP.UTF-8`) | 時間 | 内容 |
| Chinese (`zh_CN.UTF-8`) | 时间 | 内容 |
### Example: Norwegian
```yaml
vaults:
norwegian:
locale: no_NO.UTF-8
list_type: table
```
```bash
journey --list --header
```
Output:
```markdown
| 09:00:00 | Morgen standup møte |
| 10:30:00 | Kode gjennomgang fullført |
```
### Example: German
```yaml
vaults:
german:
locale: de_DE.UTF-8
list_type: table
```
```bash
journey --list --header
```
Output:
```markdown
| 09:00:00 | Morgen Standup Meeting |
| 10:30:00 | Code Review abgeschlossen |
```
## Custom Table Headers
You can override the default locale-dependent table headers:
```yaml
vaults:
work:
name: work
path: ~/Documents/work-journal
locale: en_US.UTF-8
list_type: table
table_headers:
time: "Timestamp"
content: "Note"
```
Output with `--header`:
```markdown
| 09:00:00 | Morning standup meeting |
| 10:30:00 | Code review completed |
```
## Use Cases
### Clean Table Output
Perfect for piping to other tools or scripts:
```bash
# Export to file
journey --list --header > notes.md
# Copy to clipboard (Linux)
# Copy to clipboard (macOS)
# Copy to clipboard (Windows)
### Markdown Compatibility
Headers make the output valid markdown tables:
```bash
# Create a report
echo "# Daily Report" > report.md
echo "" >> report.md
journey --list --header >> report.md
```
### Tool Integration
Use with tools that expect proper markdown table format:
```bash
# Convert to HTML
# Convert to PDF
### Documentation
Include table headers when sharing or documenting notes:
```bash
# Share today's notes
## Storage Format
Notes are stored in the markdown file in table format when `list_type: table` is configured:
```markdown
---
date: 2025-10-24
---
| 14:00:00 | Project planning session |
```
## Mixing Formats
You can have different list types for different vaults:
```yaml
vaults:
work:
list_type: table # Work notes in table format
personal:
list_type: bullet # Personal notes as bullets
```
## Best Practices
### Use Tables for Structured Data
Tables work well when you need:
- Clean, structured output
- Easy scanning of time-based entries
- Export to other formats
- Integration with other tools
### Use Bullets for Quick Notes
Bullets work well when you need:
- Quick, informal notes
- Markdown compatibility without headers
- Simpler file structure
- Faster note-taking
### Custom Headers for Context
Use custom headers to match your workflow:
```yaml
# For meeting notes
table_headers:
time: "When"
content: "Discussion"
# For task tracking
table_headers:
time: "Started"
content: "Task"
# For time tracking
table_headers:
time: "Duration"
content: "Activity"
```
## Troubleshooting
### Headers Not Showing
- **Check flag**: Ensure you're using `--header` flag
- **Check list type**: Verify `list_type: table` is set
- **Check notes**: Ensure notes exist for the date
### Wrong Language Headers
- **Check locale**: Verify `locale` setting in vault configuration
- **Override**: Use custom `table_headers` if needed
- **System locale**: Ensure locale is installed on your system
### Mixed Format in File
- **Check configuration**: Verify `list_type` is set correctly
- **Migration**: Old notes may be in different format
- **Manual fix**: Use `journey --edit` to correct format
### Table Not Rendering
- **Check markdown**: Ensure proper table syntax
- **Check viewer**: Some markdown viewers require headers
- **Use --header**: Include headers for better compatibility
## Migration
### From Bullet to Table
If you change from bullet to table format, existing notes remain in bullet format. New notes will be added in table format. To convert existing notes:
1. **Manual conversion**: Use `journey --edit` to manually convert
2. **Script conversion**: Write a script to convert bullet points to table rows
3. **Keep mixed**: Both formats work, Journey handles both when listing
### From Table to Bullet
Similarly, changing from table to bullet format only affects new notes. Existing table notes remain as tables.
## Advanced Usage
### Filtering with grep
```bash
# Find specific content
# Find by time range
# Exclude certain content
### Sorting
```bash
# Sort by content (second column)
# Reverse chronological
### Formatting
```bash
# Add line numbers
# Add date prefix
echo "Date: $(date)" && journey --list --header
```