Files
WooNooW/BASIC_CARD_COMPLETE.md
dwindown 4471cd600f feat: Complete markdown syntax refinement and variable protection
 New cleaner syntax implemented:
- [card:type] instead of [card type='type']
- [button:style](url)Text[/button] instead of [button url='...' style='...']
- Standard markdown images: ![alt](url)

 Variable protection from markdown parsing:
- Variables with underscores (e.g., {order_items_table}) now protected
- HTML comment placeholders prevent italic/bold parsing
- All variables render correctly in preview

 Button rendering fixes:
- Buttons work in Visual mode inside cards
- Buttons work in Preview mode
- Button clicks prevented in visual editor
- Proper styling for solid and outline buttons

 Backward compatibility:
- Old syntax still supported
- No breaking changes

 Bug fixes:
- Fixed order_item_table → order_items_table naming
- Fixed button regex to match across newlines
- Added button/image parsing to parseMarkdownBasics
- Prevented button clicks on .button and .button-outline classes

📚 Documentation:
- NEW_MARKDOWN_SYNTAX.md - Complete user guide
- MARKDOWN_SYNTAX_AND_VARIABLES.md - Technical analysis
2025-11-15 20:05:50 +07:00

229 lines
4.6 KiB
Markdown

# ✅ Basic Card Type & Newline Fixes Complete!
## Problems Solved! 🎉
1.**Newlines preserved** - Text no longer collapses into one line
2.**Basic card type added** - Plain text sections without styling
3.**No content loss** - All content can be wrapped in cards
---
## What Was Fixed
### 1. Newline Parsing ✅
**Problem:** Markdown newlines were collapsed, making everything inline
**Solution:** Updated `markdown-utils.ts` to:
- Preserve paragraph breaks (double newlines)
- Add `<br>` tags for single newlines within paragraphs
- Properly close and open `<p>` tags
**Result:**
```markdown
Order Number: #12345
Customer: John Doe
```
Now renders as:
```html
<p>
Order Number: #12345<br>
Customer: John Doe
</p>
```
---
### 2. Basic Card Type ✅
**What It Is:**
- A new card type: `[card type="basic"]`
- **No background** color
- **No border**
- **No padding**
- Just plain text in a section
**Why It's Useful:**
- Wrap footer text without styling
- Ensure all content is in blocks (no loss)
- Give users a "plain text" option
- Makes templates more structured
**CSS:**
```css
.card-basic {
background: none;
border: none;
padding: 0;
margin: 16px 0;
}
```
---
### 3. Template Footer Updates 📝
**Old Pattern:**
```markdown
---
Need help? Contact {support_email}
© {current_year} {site_name}
```
**New Pattern:**
```markdown
[card type="basic"]
Need help? Contact {support_email}
[/card]
```
**Changes:**
- ✅ Removed `© {current_year} {site_name}` (already in global footer)
- ✅ Wrapped support text in `[card type="basic"]`
- ✅ Removed standalone `---` separators
- ✅ Staff templates: Removed footer entirely
---
## Files Modified
### 1. **`admin-spa/src/lib/markdown-utils.ts`**
- Fixed newline handling
- Proper paragraph and line break parsing
- Better list handling
### 2. **`admin-spa/src/components/EmailBuilder/types.ts`**
- Added `'basic'` to `CardType`
### 3. **`admin-spa/src/components/EmailBuilder/EmailBuilder.tsx`**
- Added "Basic (Plain Text)" option to card type selector
### 4. **`admin-spa/src/routes/Settings/Notifications/EditTemplate.tsx`**
- Added CSS for `.card-basic` (no styling)
### 5. **`includes/Email/DefaultTemplates.php`** (needs manual update)
- See `TEMPLATE_UPDATE_SCRIPT.md` for all changes
- 17 templates need footer updates
---
## How Basic Card Works
### In Markdown:
```markdown
[card type="basic"]
This is plain text.
No background, no border, no padding.
Just content.
[/card]
```
### Renders As:
```html
<div class="card card-basic">
<p>This is plain text.<br>
No background, no border, no padding.</p>
<p>Just content.</p>
</div>
```
### Displays As:
```
This is plain text.
No background, no border, no padding.
Just content.
```
(No visual styling - just text!)
---
## Benefits
### ✅ For Content:
- All content wrapped in blocks
- No content loss in converter
- Structured templates
### ✅ For Users:
- Can add plain text sections
- No forced styling
- More flexible templates
### ✅ For Developers:
- Cleaner template structure
- Easier to parse
- Better maintainability
---
## Card Type Comparison
| Type | Background | Border | Padding | Use Case |
|------|------------|--------|---------|----------|
| **basic** | None | None | None | Plain text, footers |
| **default** | White | Gray | Yes | Standard content |
| **hero** | Gradient | None | Yes | Headers, highlights |
| **success** | Gradient | None | Yes | Confirmations |
| **info** | Light blue | Blue | Yes | Information |
| **warning** | Light yellow | Orange | Yes | Warnings |
---
## Next Steps
### Manual Template Updates Required:
You need to update `includes/Email/DefaultTemplates.php`:
1. Open the file
2. Follow `TEMPLATE_UPDATE_SCRIPT.md`
3. Update all 17 template footers
4. Remove copyright lines
5. Wrap support text in `[card type="basic"]`
**Estimated time:** 10-15 minutes
**Or:** I can help you do it programmatically if you prefer!
---
## Testing Checklist
### ✅ Newlines:
- [x] Text with newlines displays correctly
- [x] Paragraphs separated properly
- [x] Line breaks within paragraphs work
### ✅ Basic Card:
- [x] Can select "Basic (Plain Text)" in editor
- [x] No background/border/padding applied
- [x] Content displays as plain text
- [x] Works in preview
### ✅ Templates:
- [ ] Update all template footers
- [ ] Test customer templates
- [ ] Test staff templates
- [ ] Verify no content loss
---
## Summary
| Feature | Status |
|---------|--------|
| Newline parsing | ✅ Fixed |
| Basic card type | ✅ Added |
| Card type selector | ✅ Updated |
| Preview CSS | ✅ Updated |
| Template updates | 📝 Manual needed |
**Almost done! Just need to update the template footers! 🚀**