2025-10-23 19:29:26 +02:00
|
|
|
---
|
|
|
|
|
title: Add-Only Mode Examples
|
|
|
|
|
created: '2025-10-23T18:33:48+02:00'
|
2025-10-23 20:14:21 +02:00
|
|
|
status: draft
|
|
|
|
|
priority: 5
|
|
|
|
|
published: false
|
2025-10-23 19:29:26 +02:00
|
|
|
tags: []
|
2025-10-23 20:14:21 +02:00
|
|
|
reviewers: []
|
2025-10-23 19:29:26 +02:00
|
|
|
---
|
2025-10-23 18:33:48 +02:00
|
|
|
# Add-Only Mode Examples
|
|
|
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
|
|
|
|
The `--add-only` flag preserves existing frontmatter keys while adding missing template fields.
|
|
|
|
|
|
|
|
|
|
## Example 1: Preserving Custom Fields
|
|
|
|
|
|
|
|
|
|
### Input File
|
|
|
|
|
```yaml
|
|
|
|
|
---
|
|
|
|
|
Summary: A comprehensive guide to neural networks
|
|
|
|
|
CustomField1: Important value
|
|
|
|
|
CustomField2: Another important value
|
|
|
|
|
Status: published
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# Neural Networks Guide
|
|
|
|
|
...
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Regular Mode (Default)
|
|
|
|
|
```bash
|
|
|
|
|
python madomeda.py
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Result:**
|
|
|
|
|
```yaml
|
|
|
|
|
---
|
|
|
|
|
title: Neural Networks Guide
|
|
|
|
|
created: '2025-10-23T18:06:22+02:00'
|
|
|
|
|
changed: '2025-10-23T18:06:22+02:00'
|
|
|
|
|
authors:
|
|
|
|
|
- Test User
|
|
|
|
|
version: 44ed278
|
|
|
|
|
tags: []
|
|
|
|
|
---
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
⚠️ **Warning issued:** "Metadata will be discarded: Summary, CustomField1, CustomField2, Status"
|
|
|
|
|
|
|
|
|
|
### Add-Only Mode
|
|
|
|
|
```bash
|
|
|
|
|
python madomeda.py --add-only
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Result:**
|
|
|
|
|
```yaml
|
|
|
|
|
---
|
|
|
|
|
customfield1: Important value
|
|
|
|
|
customfield2: Another important value
|
|
|
|
|
status: published
|
|
|
|
|
description: This is a comprehensive guide to neural networks
|
|
|
|
|
title: Neural Networks Guide
|
|
|
|
|
created: '2025-10-23T18:06:22+02:00'
|
|
|
|
|
changed: '2025-10-23T18:06:22+02:00'
|
|
|
|
|
authors:
|
|
|
|
|
- Test User
|
|
|
|
|
version: 44ed278
|
|
|
|
|
tags: []
|
|
|
|
|
---
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
✅ **No warnings** - all fields preserved (after normalization)
|
|
|
|
|
|
|
|
|
|
## Example 2: Field Renaming Rules
|
|
|
|
|
|
|
|
|
|
Rules are still applied in add-only mode:
|
|
|
|
|
|
|
|
|
|
### Input
|
|
|
|
|
```yaml
|
|
|
|
|
---
|
|
|
|
|
Title: My Document
|
|
|
|
|
Tag: Python, AI
|
|
|
|
|
Summary: Introduction to Python
|
|
|
|
|
CustomKey: custom value
|
|
|
|
|
---
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Add-Only Result
|
|
|
|
|
```yaml
|
|
|
|
|
---
|
|
|
|
|
title: My Document # Title → title (lowercase)
|
|
|
|
|
customkey: custom value # CustomKey → customkey (lowercase)
|
|
|
|
|
description: Introduction to Python # Summary → description (rule)
|
|
|
|
|
created: '2025-10-23T17:27:16+02:00'
|
|
|
|
|
changed: '2025-10-23T17:27:16+02:00'
|
|
|
|
|
authors:
|
|
|
|
|
- John Doe
|
|
|
|
|
version: 34d2d05
|
|
|
|
|
tags: # Tag → tags (rule)
|
|
|
|
|
- python # Python → python (normalized)
|
|
|
|
|
- ai # AI → ai (normalized)
|
|
|
|
|
---
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Rules Applied in Add-Only Mode
|
|
|
|
|
|
|
|
|
|
1. **Lowercase keys**: All keys converted to lowercase
|
|
|
|
|
2. **tag → tags**: Singular renamed to plural
|
|
|
|
|
3. **summary → description**: Field rename
|
|
|
|
|
4. **Tag normalization**: lowercase_with_underscores
|
|
|
|
|
|
|
|
|
|
## When to Use Each Mode
|
|
|
|
|
|
|
|
|
|
### Use Regular Mode When:
|
|
|
|
|
- Enforcing strict template compliance
|
|
|
|
|
- Starting fresh with standardized metadata
|
|
|
|
|
- You want only template-defined fields
|
|
|
|
|
|
|
|
|
|
### Use Add-Only Mode When:
|
|
|
|
|
- Enriching existing documentation
|
|
|
|
|
- Preserving custom workflow fields
|
|
|
|
|
- Migrating from another system
|
|
|
|
|
- You have valuable metadata not in the template
|
|
|
|
|
|
|
|
|
|
## Combining with Other Options
|
|
|
|
|
|
|
|
|
|
### Add-Only + WhatIf
|
|
|
|
|
Preview what will be added without making changes:
|
|
|
|
|
```bash
|
|
|
|
|
python madomeda.py --add-only --whatif
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Add-Only + No-Confirm
|
|
|
|
|
Process without confirmation prompts:
|
|
|
|
|
```bash
|
|
|
|
|
python madomeda.py --add-only --no-confirm
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Add-Only + Ignore-Paths
|
|
|
|
|
Preserve custom fields but skip certain directories:
|
|
|
|
|
```bash
|
|
|
|
|
python madomeda.py --add-only --ignore-paths archive drafts
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Field Ordering
|
|
|
|
|
|
|
|
|
|
In add-only mode, the final frontmatter contains:
|
|
|
|
|
1. Normalized original fields (custom keys)
|
|
|
|
|
2. Template fields (if not already present)
|
|
|
|
|
|
|
|
|
|
Order may vary as YAML dictionaries don't guarantee order.
|