mirror of
https://github.com/amitwh/markdown-converter.git
synced 2026-08-03 02:11:07 +05:30
Update CLAUDE.md with v2.1.0 documentation
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
**PanConverter** is a cross-platform Markdown editor and converter powered by Pandoc, built with Electron. It provides professional-grade editing capabilities with comprehensive export options.
|
**PanConverter** is a cross-platform Markdown editor and converter powered by Pandoc, built with Electron. It provides professional-grade editing capabilities with comprehensive export options.
|
||||||
|
|
||||||
**Current Version**: v1.9.2
|
**Current Version**: v2.1.0
|
||||||
**Author**: Amit Haridas (amit.wh@gmail.com)
|
**Author**: Amit Haridas (amit.wh@gmail.com)
|
||||||
**License**: MIT
|
**License**: MIT
|
||||||
**Repository**: https://github.com/amitwh/pan-converter
|
**Repository**: https://github.com/amitwh/pan-converter
|
||||||
@@ -113,7 +113,315 @@ gh release create v1.2.1 --title "Title" --notes "Release notes" \
|
|||||||
|
|
||||||
## Feature Implementation Guide
|
## Feature Implementation Guide
|
||||||
|
|
||||||
### v1.9.1 ASCII Art & Code Block Preservation (Latest)
|
### v2.1.0 UI Enhancements & Comprehensive Format Support (Latest)
|
||||||
|
|
||||||
|
#### 🎨 Subtle & Small Preview Popout Button
|
||||||
|
**Minimalist Design for Preview Popout Button** (`src/styles.css:195-211`)
|
||||||
|
|
||||||
|
**Problem Solved:**
|
||||||
|
- Previous design was too prominent and visually distracting
|
||||||
|
- Border and larger size drew unnecessary attention
|
||||||
|
- Didn't match the modern, minimalist aesthetic of the app
|
||||||
|
|
||||||
|
**Solution Implemented:**
|
||||||
|
1. **Reduced Size** - Font size from 14px to 11px, padding from 4px×8px to 2px×6px
|
||||||
|
2. **Removed Border** - Changed from `1px solid #d0d7de` to `border: none`
|
||||||
|
3. **Opacity Transition** - Added 50% opacity when idle, 100% on hover
|
||||||
|
4. **Subtle Hover Effect** - Light background `rgba(0, 0, 0, 0.05)` instead of `#f3f4f6` with border
|
||||||
|
|
||||||
|
**Key CSS Changes:**
|
||||||
|
```css
|
||||||
|
.preview-popout-btn {
|
||||||
|
background: transparent;
|
||||||
|
border: none; /* Previously: 1px solid #d0d7de */
|
||||||
|
border-radius: 3px; /* Previously: 4px */
|
||||||
|
padding: 2px 6px; /* Previously: 4px 8px */
|
||||||
|
font-size: 11px; /* Previously: 14px */
|
||||||
|
opacity: 0.5; /* New: makes it subtle */
|
||||||
|
transition: all 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preview-popout-btn:hover {
|
||||||
|
background: rgba(0, 0, 0, 0.05); /* Previously: #f3f4f6 */
|
||||||
|
opacity: 1; /* New: full opacity on hover */
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### 🎨 Simplified Table Headers
|
||||||
|
**Clean Light Gray Table Headers** (`src/styles-modern.css:445-449`)
|
||||||
|
|
||||||
|
**Problem Solved:**
|
||||||
|
- Gradient backgrounds in table headers looked too busy
|
||||||
|
- Purple gradient (`var(--primary-gradient)`) didn't match professional document style
|
||||||
|
- White text on gradient reduced readability in some contexts
|
||||||
|
|
||||||
|
**Solution Implemented:**
|
||||||
|
1. **Simple Background** - Changed from gradient to solid light gray (#f0f0f0)
|
||||||
|
2. **Dark Text** - Changed text color from white to dark (#333333)
|
||||||
|
3. **Consistent Styling** - Matches standard theme table headers
|
||||||
|
4. **Professional Appearance** - Clean, readable, print-friendly
|
||||||
|
|
||||||
|
**Before:**
|
||||||
|
```css
|
||||||
|
.preview-content table th {
|
||||||
|
background: var(--primary-gradient); /* Purple gradient */
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**After:**
|
||||||
|
```css
|
||||||
|
.preview-content table th {
|
||||||
|
background: #f0f0f0; /* Simple light gray */
|
||||||
|
color: #333333; /* Dark text for readability */
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### 📥 Comprehensive Format-to-Markdown Conversion
|
||||||
|
**30+ Format Support for Import Feature** (`src/main.js:1933-1994`)
|
||||||
|
|
||||||
|
**Enhanced Import Capabilities:**
|
||||||
|
The "Import Document" feature now supports comprehensive format conversion to Markdown:
|
||||||
|
|
||||||
|
**Supported Format Categories:**
|
||||||
|
1. **Documents**: DOCX, ODT, RTF, HTML, HTM, TEX, EPUB, PDF, TXT
|
||||||
|
2. **Presentations**: PPTX, ODP
|
||||||
|
3. **Markup Languages**: RST, Textile, MediaWiki, Org-mode, AsciiDoc, TWiki, OPML
|
||||||
|
4. **E-book Formats**: EPUB, FB2
|
||||||
|
5. **LaTeX Formats**: TEX, LATEX, LTX
|
||||||
|
6. **Web Formats**: HTML, HTM, XHTML
|
||||||
|
7. **Wiki Formats**: MediaWiki, DokuWiki, TikiWiki, TWiki
|
||||||
|
8. **Data Formats**: CSV, TSV, JSON
|
||||||
|
|
||||||
|
**Format-Specific Conversion Options:**
|
||||||
|
```javascript
|
||||||
|
// PDF text extraction
|
||||||
|
if (ext === 'pdf') {
|
||||||
|
additionalOptions = '--pdf-engine=xelatex';
|
||||||
|
}
|
||||||
|
|
||||||
|
// CSV/TSV table conversion
|
||||||
|
if (ext === 'csv' || ext === 'tsv') {
|
||||||
|
additionalOptions = '--from=csv -t markdown';
|
||||||
|
}
|
||||||
|
|
||||||
|
// JSON structure handling
|
||||||
|
if (ext === 'json') {
|
||||||
|
additionalOptions = '--from=json -t markdown';
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**User Experience Improvements:**
|
||||||
|
- Comprehensive file filter dialog with format categories
|
||||||
|
- Format-specific error messages with helpful hints
|
||||||
|
- Success dialog shows original and converted format
|
||||||
|
- All conversions use Pandoc's native format detection
|
||||||
|
|
||||||
|
**Access**: File → Import Document (Ctrl+I)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### 🎨 Exhaustive ASCII Art Generator
|
||||||
|
**5 Text Banner Styles & 19 Professional Templates** (`src/renderer.js:3397-3671`, `src/index.html:427-466`)
|
||||||
|
|
||||||
|
**Enhanced Text Banner Styles:**
|
||||||
|
|
||||||
|
Complete alphabet (A-Z) and numbers (0-9) support for all styles:
|
||||||
|
|
||||||
|
1. **Standard** (5-line height)
|
||||||
|
- Classic ASCII art using slashes, underscores, and pipes
|
||||||
|
- Readable and compatible with all systems
|
||||||
|
- Example: `/ \`, `\___/`, `| |`
|
||||||
|
|
||||||
|
2. **Banner** (7-line height)
|
||||||
|
- Large format using # characters
|
||||||
|
- Professional presentation style
|
||||||
|
- Complete character set including punctuation
|
||||||
|
- Example: ` ##### `, ` ## ## `, ` ####### `
|
||||||
|
|
||||||
|
3. **Block** (6-line height)
|
||||||
|
- Modern Unicode block characters
|
||||||
|
- Uses █ ╔ ╗ ╚ ╝ ═ ║
|
||||||
|
- High visual impact
|
||||||
|
- Example: `█████╗`, `██╔══██╗`, `███████║`
|
||||||
|
|
||||||
|
4. **Bubble** (5-line height)
|
||||||
|
- Circular bubble letters
|
||||||
|
- Playful and friendly appearance
|
||||||
|
- Uses Ⓐ Ⓑ Ⓒ and ⒜ ⒝ ⒞
|
||||||
|
- Example: ` Ⓐ `, ` ⒜ ⒜ `, `⒜⒜⒜⒜⒜`
|
||||||
|
|
||||||
|
5. **Digital** (7-line height)
|
||||||
|
- Digital display style
|
||||||
|
- Uses ▄ ▀ ▐ ▌ for segments
|
||||||
|
- Retro calculator/LED aesthetic
|
||||||
|
- Example: ` ▄▀▀▀▄ `, `▐ ▌`, `▐▄▄▄▄▌`
|
||||||
|
|
||||||
|
**19 Professional ASCII Templates:**
|
||||||
|
|
||||||
|
**Arrows & Flow (4 templates):**
|
||||||
|
- Arrow Right - Horizontal process flow
|
||||||
|
- Arrow Down - Vertical process flow
|
||||||
|
- Decision - Binary decision with Yes/No branches
|
||||||
|
- Process Flow - Multi-step process with parallel paths
|
||||||
|
|
||||||
|
**Diagrams & Charts (6 templates):**
|
||||||
|
- Flowchart - Complex flowchart with decisions and loops
|
||||||
|
- Sequence - User-System-Database interaction diagram
|
||||||
|
- Network - Server-client network topology
|
||||||
|
- Hierarchy - Organizational tree structure
|
||||||
|
- Timeline - Milestone visualization with dates
|
||||||
|
- Table Simple - Professional table template
|
||||||
|
|
||||||
|
**Boxes & Containers (4 templates):**
|
||||||
|
- Header - Section header with borders
|
||||||
|
- Note Box - Important notes (┏━━┓ style)
|
||||||
|
- Warning Box - Warning messages (╔═══╗ style)
|
||||||
|
- Info Box - Information boxes (╭───╮ style)
|
||||||
|
|
||||||
|
**Decorative Elements (6 templates):**
|
||||||
|
- Divider - Horizontal separator (═══)
|
||||||
|
- Separator Fancy - Elegant rounded divider
|
||||||
|
- Brackets - Japanese-style brackets 【 】
|
||||||
|
- Banner Stars - Star-bordered banners
|
||||||
|
- Checklist - Task lists with ✓
|
||||||
|
- Progress Bar - Visual progress indicators
|
||||||
|
|
||||||
|
**Template Examples:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Sequence Diagram:
|
||||||
|
User System Database
|
||||||
|
│ │ │
|
||||||
|
│ Request │ │
|
||||||
|
├──────────►│ │
|
||||||
|
│ │ Query │
|
||||||
|
│ ├──────────►│
|
||||||
|
│ │ │
|
||||||
|
│ │ Result │
|
||||||
|
│ │◄──────────┤
|
||||||
|
│ Response │ │
|
||||||
|
│◄──────────┤ │
|
||||||
|
│ │ │
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
Note Box:
|
||||||
|
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||||
|
┃ NOTE: ┃
|
||||||
|
┃ This is an important note ┃
|
||||||
|
┃ that requires attention! ┃
|
||||||
|
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||||
|
```
|
||||||
|
|
||||||
|
**Integration Features:**
|
||||||
|
- Automatic code block wrapping for proper rendering
|
||||||
|
- Preserved formatting in all export formats
|
||||||
|
- Categorized template selection UI
|
||||||
|
- Real-time preview generation
|
||||||
|
- One-click insertion into editor
|
||||||
|
|
||||||
|
**Access**: Tools → ASCII Art Generator
|
||||||
|
|
||||||
|
**Key Improvements in v2.1.0:**
|
||||||
|
1. ✅ Minimalist preview popout button design
|
||||||
|
2. ✅ Professional light gray table headers
|
||||||
|
3. ✅ Support for 30+ import formats
|
||||||
|
4. ✅ 5 complete ASCII text banner font styles
|
||||||
|
5. ✅ 19 professional ASCII art templates
|
||||||
|
6. ✅ Organized template categories
|
||||||
|
7. ✅ Enhanced user experience across all features
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### v1.9.3 Configurable Page Sizes & Orientation
|
||||||
|
|
||||||
|
#### 📏 Universal Page Size Configuration
|
||||||
|
**Comprehensive Page Size Support Across All Export Formats** (`src/main.js`, `src/index.html`, `src/renderer.js`, `src/wordTemplateExporter.js`)
|
||||||
|
|
||||||
|
**Feature Overview:**
|
||||||
|
- Added configurable page sizes for all export formats (PDF, DOCX, DOCX Enhanced, ODT, PowerPoint)
|
||||||
|
- Support for standard paper sizes: A3, A4, A5, B4, B5, Letter, Legal, Tabloid
|
||||||
|
- Custom page size support with user-defined dimensions
|
||||||
|
- Portrait and landscape orientation options
|
||||||
|
- Persistent page size preferences across sessions
|
||||||
|
- Batch conversion support for all page sizes
|
||||||
|
|
||||||
|
**Implementation Details:**
|
||||||
|
|
||||||
|
1. **Page Size Constants** (`src/main.js:81-139`)
|
||||||
|
- Defined PAGE_SIZES with Pandoc identifiers and Word XML dimensions
|
||||||
|
- Word dimensions in twentieths of a point (e.g., A4: 11906×16838)
|
||||||
|
- Pandoc identifiers for LaTeX geometry package
|
||||||
|
|
||||||
|
2. **Export Dialog UI** (`src/index.html:246-275`)
|
||||||
|
- Page size dropdown with 8 standard sizes plus custom option
|
||||||
|
- Orientation selector (Portrait/Landscape)
|
||||||
|
- Custom dimension inputs for width and height
|
||||||
|
- Always visible in basic export options
|
||||||
|
|
||||||
|
3. **PDF Export** (`src/main.js:2475-2488`)
|
||||||
|
- Uses `-V geometry:papersize=a4` Pandoc parameter
|
||||||
|
- Custom dimensions via `-V geometry:paperwidth` and `paperheight`
|
||||||
|
- Landscape orientation via `-V geometry:landscape`
|
||||||
|
|
||||||
|
4. **DOCX/ODT Export** (`src/main.js:858-916`, `src/main.js:1568-1603`)
|
||||||
|
- `setDocxPageSize()` function modifies `<w:pgSz>` XML elements
|
||||||
|
- Updates all section properties in document.xml
|
||||||
|
- Swaps dimensions for landscape orientation
|
||||||
|
- Applied to both standard and enhanced DOCX exports
|
||||||
|
|
||||||
|
5. **Word Template Exporter** (`src/wordTemplateExporter.js:13-104`)
|
||||||
|
- Added `pageSettings` parameter to constructor
|
||||||
|
- `setPageSize()` method updates template page dimensions
|
||||||
|
- Integrated into all WordTemplateExporter instances
|
||||||
|
- Supports batch conversion with page settings
|
||||||
|
|
||||||
|
6. **Renderer Integration** (`src/renderer.js:1340-1433`)
|
||||||
|
- Collects page size and orientation from export dialog
|
||||||
|
- Sends settings to main process via IPC
|
||||||
|
- Loads saved settings on startup
|
||||||
|
- Shows/hides custom size inputs based on selection
|
||||||
|
|
||||||
|
7. **Persistent Storage** (`src/main.js:2659-2663`)
|
||||||
|
- Page settings loaded from user data on app startup
|
||||||
|
- Automatically saved when changed
|
||||||
|
- Default: A4 portrait
|
||||||
|
|
||||||
|
**Page Size Dimensions:**
|
||||||
|
| Size | Pandoc ID | Word Dimensions (twips) | Metric/Imperial |
|
||||||
|
|------|-----------|-------------------------|-----------------|
|
||||||
|
| A3 | a3 | 16838×23811 | 297×420mm |
|
||||||
|
| A4 | a4 | 11906×16838 | 210×297mm |
|
||||||
|
| A5 | a5 | 8391×11906 | 148×210mm |
|
||||||
|
| B4 | b4 | 14170×20015 | 250×353mm |
|
||||||
|
| B5 | b5 | 9979×14170 | 176×250mm |
|
||||||
|
| Letter | letter | 12240×15840 | 8.5×11in |
|
||||||
|
| Legal | legal | 12240×20160 | 8.5×14in |
|
||||||
|
| Tabloid | tabloid | 15840×24480 | 11×17in |
|
||||||
|
|
||||||
|
**ASCII Art Scaling:**
|
||||||
|
- Code blocks and ASCII art automatically scale with page size
|
||||||
|
- Monospace font (Consolas) maintains alignment across all sizes
|
||||||
|
- Smaller pages may require font size adjustments for complex diagrams
|
||||||
|
- Landscape orientation recommended for wide ASCII diagrams
|
||||||
|
|
||||||
|
**Key Improvements in v1.9.3:**
|
||||||
|
1. ✅ Configurable page sizes for PDF, DOCX, ODT, PowerPoint exports
|
||||||
|
2. ✅ Portrait and landscape orientation support
|
||||||
|
3. ✅ Custom page dimensions for specialized requirements
|
||||||
|
4. ✅ Persistent settings with automatic loading
|
||||||
|
5. ✅ Batch conversion respects page size preferences
|
||||||
|
6. ✅ Word template exporter integration
|
||||||
|
7. ✅ Comprehensive UI with always-visible controls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### v1.9.1 ASCII Art & Code Block Preservation
|
||||||
|
|
||||||
#### 🎨 Preserved ASCII Art in Exports
|
#### 🎨 Preserved ASCII Art in Exports
|
||||||
**ASCII Art, Charts, Tables & Flowcharts Now Export Exactly as Previewed** (`src/wordTemplateExporter.js`, `src/main.js`)
|
**ASCII Art, Charts, Tables & Flowcharts Now Export Exactly as Previewed** (`src/wordTemplateExporter.js`, `src/main.js`)
|
||||||
@@ -1179,28 +1487,33 @@ if (!gotTheLock) {
|
|||||||
|
|
||||||
## Pending Tasks & Future Enhancements
|
## Pending Tasks & Future Enhancements
|
||||||
|
|
||||||
No pending tasks at this time. All planned v1.9.1 features have been completed.
|
No pending tasks at this time. All planned v1.9.3 features have been completed.
|
||||||
|
|
||||||
### Potential Future Enhancements
|
### Potential Future Enhancements
|
||||||
- Image embedding in headers/footers (partially implemented - logo upload UI ready)
|
- Image embedding in headers/footers (partially implemented - logo upload UI ready)
|
||||||
- Advanced page numbering formats (Roman numerals, custom prefixes)
|
- Advanced page numbering formats (Roman numerals, custom prefixes)
|
||||||
- First-page-different header/footer support
|
- First-page-different header/footer support
|
||||||
- Per-section headers/footers within documents
|
- Per-section headers/footers within documents
|
||||||
|
- Automatic font size scaling for different page sizes
|
||||||
|
- Page size templates/presets for common document types
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Last Updated**: December 12, 2025
|
**Last Updated**: December 13, 2025
|
||||||
**Claude Assistant**: Development completed for v1.9.1 with ASCII Art Preservation!
|
**Claude Assistant**: Development completed for v1.9.3 with Configurable Page Sizes & Orientation!
|
||||||
|
|
||||||
### v1.9.1 - Latest Release Summary
|
### v1.9.3 - Latest Release Summary
|
||||||
- **ASCII Art Preservation**: Code blocks, flowcharts, tables, and ASCII art now export exactly as shown in preview
|
- **Configurable Page Sizes**: Support for A3, A4, A5, B4, B5, Letter, Legal, Tabloid, and custom sizes
|
||||||
- **Enhanced Code Block Rendering**: Each line rendered separately to preserve exact spacing and alignment
|
- **Orientation Support**: Portrait and landscape options for all export formats
|
||||||
- **Monospace Font Support**: Consolas font used consistently across all export formats
|
- **Universal Export Support**: Page size configuration for PDF, DOCX (standard & enhanced), ODT, and PowerPoint
|
||||||
- **Improved ASCII Detection**: Extended Unicode box-drawing and arrow character support
|
- **Persistent Settings**: Page preferences saved and restored automatically
|
||||||
- **PDF Export Enhancement**: Added monofont and highlight-style options for better code rendering
|
- **Batch Conversion**: All page size settings apply to batch operations
|
||||||
- **HTML/Electron PDF Fix**: Enhanced CSS to prevent text wrapping in code blocks
|
- **ASCII Art Scaling**: Code blocks and diagrams automatically adapt to different page sizes
|
||||||
|
- **User-Friendly UI**: Always-visible page size controls in export dialog
|
||||||
|
|
||||||
### Previous Releases
|
### Previous Releases
|
||||||
|
- v1.9.2: Full-width background for code blocks
|
||||||
|
- v1.9.1: ASCII Art & Code Block Preservation
|
||||||
- v1.9.0: Custom Headers & Footers for PDF, DOCX, ODT, PowerPoint exports
|
- v1.9.0: Custom Headers & Footers for PDF, DOCX, ODT, PowerPoint exports
|
||||||
- v1.8.3: Streamlined PDF Editor UI & Configurable Template Settings
|
- v1.8.3: Streamlined PDF Editor UI & Configurable Template Settings
|
||||||
- v1.8.2: Enhanced PDF Export & Print Fix
|
- v1.8.2: Enhanced PDF Export & Print Fix
|
||||||
|
|||||||
Reference in New Issue
Block a user