Release v2.1.0: UI Enhancements & Comprehensive Format Support

🎨 UI/UX Improvements:
- Subtle & small preview popout button with minimalist design
- Simplified table headers with light gray background
- Better readability and cleaner appearance
📥 Enhanced Import:
- Support for 30+ formats: RST, Textile, MediaWiki, Org-mode, AsciiDoc, CSV, JSON, and more
- Format-specific conversion optimizations
- Improved error messages
🎨 Exhaustive ASCII Art Generator:
- 5 text banner styles: Standard, Banner, Block, Bubble, Digital
- 19 professional templates organized in 4 categories
- Flowcharts, sequence diagrams, network diagrams, hierarchy trees
- Note boxes, warning boxes, decorative elements
📝 Documentation:
- Added UPDATES.md with comprehensive changelog
- Updated version to 2.1.0 in all files
🤖 Generated with Claude Code (https://claude.com/claude-code)
This commit is contained in:
2025-12-14 10:27:36 +05:30
parent e63a0ec1bf
commit c2b77e110f
7 changed files with 443 additions and 42 deletions
+201 -19
View File
@@ -3444,12 +3444,78 @@ function textToASCII(text, style) {
'A': [' ### ', ' ## ## ', ' ## ## ', ' ## ## ', ' ####### ', ' ## ## ', ' ## ## '],
'B': [' ###### ', ' ## ## ', ' ## ## ', ' ###### ', ' ## ## ', ' ## ## ', ' ###### '],
'C': [' ##### ', ' ## ## ', ' ## ', ' ## ', ' ## ', ' ## ## ', ' ##### '],
' ': [' ', ' ', ' ', ' ', ' ', ' ', ' ']
'D': [' ###### ', ' ## ## ', ' ## ## ', ' ## ## ', ' ## ## ', ' ## ## ', ' ###### '],
'E': [' ####### ', ' ## ', ' ## ', ' ##### ', ' ## ', ' ## ', ' ####### '],
'F': [' ####### ', ' ## ', ' ## ', ' ##### ', ' ## ', ' ## ', ' ## '],
'G': [' ##### ', ' ## ## ', ' ## ', ' ## ### ', ' ## ## ', ' ## ## ', ' ##### '],
'H': [' ## ## ', ' ## ## ', ' ## ## ', ' ####### ', ' ## ## ', ' ## ## ', ' ## ## '],
'I': [' ####### ', ' ### ', ' ### ', ' ### ', ' ### ', ' ### ', ' ####### '],
'J': [' ####### ', ' ## ', ' ## ', ' ## ', ' ## ## ', ' ## ## ', ' #### '],
'K': [' ## ## ', ' ## ## ', ' ## ## ', ' #### ', ' ## ## ', ' ## ## ', ' ## ## '],
'L': [' ## ', ' ## ', ' ## ', ' ## ', ' ## ', ' ## ', ' ####### '],
'M': [' ## ## ', ' ### ### ', ' ####### ', ' ## # ## ', ' ## ## ', ' ## ## ', ' ## ## '],
'N': [' ## ## ', ' ### ## ', ' #### ## ', ' ## #### ', ' ## ### ', ' ## ## ', ' ## ## '],
'O': [' ##### ', ' ## ## ', ' ## ## ', ' ## ## ', ' ## ## ', ' ## ## ', ' ##### '],
'P': [' ###### ', ' ## ## ', ' ## ## ', ' ###### ', ' ## ', ' ## ', ' ## '],
'Q': [' ##### ', ' ## ## ', ' ## ## ', ' ## ## ', ' ## # ## ', ' ## ## ', ' ### ## '],
'R': [' ###### ', ' ## ## ', ' ## ## ', ' ###### ', ' ## ## ', ' ## ## ', ' ## ## '],
'S': [' ##### ', ' ## ## ', ' ## ', ' ##### ', ' ## ', ' ## ## ', ' ##### '],
'T': [' ####### ', ' ### ', ' ### ', ' ### ', ' ### ', ' ### ', ' ### '],
'U': [' ## ## ', ' ## ## ', ' ## ## ', ' ## ## ', ' ## ## ', ' ## ## ', ' ##### '],
'V': [' ## ## ', ' ## ## ', ' ## ## ', ' ## ## ', ' ## ## ', ' ## ## ', ' ### '],
'W': [' ## ## ', ' ## ## ', ' ## ## ', ' ## # ## ', ' ####### ', ' ### ### ', ' ## ## '],
'X': [' ## ## ', ' ## ## ', ' ### ', ' # ', ' ### ', ' ## ## ', ' ## ## '],
'Y': [' ## ## ', ' ## ## ', ' ### ', ' # ', ' # ', ' # ', ' # '],
'Z': [' ####### ', ' ## ', ' ## ', ' ## ', ' ## ', ' ## ', ' ####### '],
' ': [' ', ' ', ' ', ' ', ' ', ' ', ' '],
'0': [' ##### ', ' ## ## ', ' ## ### ', ' ## #### ', ' ### ## ', ' ## ## ', ' ##### '],
'1': [' ## ', ' ### ', ' ## ', ' ## ', ' ## ', ' ## ', ' ####### '],
'2': [' ##### ', ' ## ## ', ' ## ', ' ## ', ' ## ', ' ## ', ' ####### '],
'3': [' ##### ', ' ## ## ', ' ## ', ' ### ', ' ## ', ' ## ## ', ' ##### '],
'4': [' ### ', ' #### ', ' ## ## ', ' ## ## ', ' ####### ', ' ## ', ' ## '],
'5': [' ####### ', ' ## ', ' ###### ', ' ## ', ' ## ', ' ## ## ', ' ##### '],
'6': [' ##### ', ' ## ## ', ' ## ', ' ###### ', ' ## ## ', ' ## ## ', ' ##### '],
'7': [' ####### ', ' ## ', ' ## ', ' ## ', ' ## ', ' ## ', ' ## '],
'8': [' ##### ', ' ## ## ', ' ## ## ', ' ##### ', ' ## ## ', ' ## ## ', ' ##### '],
'9': [' ##### ', ' ## ## ', ' ## ## ', ' ###### ', ' ## ', ' ## ## ', ' ##### ']
}
},
block: {
height: 6,
chars: {
'A': ['█████╗ ', '██╔══██╗', '███████║', '██╔══██║', '██║ ██║', '╚═╝ ╚═╝'],
'B': ['██████╗ ', '██╔══██╗', '██████╔╝', '██╔══██╗', '██████╔╝', '╚═════╝ '],
'C': ['██████╗', '██╔════╝', '██║ ', '██║ ', '╚██████╗', ' ╚═════╝'],
'D': ['██████╗ ', '██╔══██╗', '██║ ██║', '██║ ██║', '██████╔╝', '╚═════╝ '],
'E': ['███████╗', '██╔════╝', '█████╗ ', '██╔══╝ ', '███████╗', '╚══════╝'],
'F': ['███████╗', '██╔════╝', '█████╗ ', '██╔══╝ ', '██║ ', '╚═╝ '],
'G': ['██████╗ ', '██╔════╝', '██║ ███╗', '██║ ██║', '╚██████╔╝', ' ╚═════╝ '],
'H': ['██╗ ██╗', '██║ ██║', '███████║', '██╔══██║', '██║ ██║', '╚═╝ ╚═╝'],
'I': ['██╗', '██║', '██║', '██║', '██║', '╚═╝'],
' ': [' ', ' ', ' ', ' ', ' ', ' ']
}
},
bubble: {
height: 5,
chars: {
'A': [' Ⓐ ', ' ⒜ ⒜ ', '⒜⒜⒜⒜⒜', '⒜ ⒜', '⒜ ⒜'],
'B': ['ⒷⒷⒷⒷ ', 'Ⓑ Ⓑ', 'ⒷⒷⒷⒷ ', 'Ⓑ Ⓑ', 'ⒷⒷⒷⒷ '],
'C': [' ⒸⒸⒸ ', 'Ⓒ ', 'Ⓒ ', 'Ⓒ ', ' ⒸⒸⒸ '],
' ': [' ', ' ', ' ', ' ', ' ']
}
},
digital: {
height: 7,
chars: {
'A': [' ▄▀▀▀▄ ', '▐ ▌', '▐▄▄▄▄▌', '▐ ▌', '▐ ▌', '▐ ▌', ' '],
'B': ['▐▀▀▀▄ ', '▐▄▄▄▀ ', '▐▄▄▄▄ ', '▐ ▌', '▐▄▄▄▀ ', ' ', ' '],
'C': [' ▄▀▀▀▄', '▐ ', '▐ ', '▐ ', ' ▀▄▄▄▀', ' ', ' '],
' ': [' ', ' ', ' ', ' ', ' ', ' ', ' ']
}
}
};
// Use standard font or fallback to simple text
// Use selected font or fallback to standard
const font = fonts[style] || fonts.standard;
const lines = [];
const upperText = text.toUpperCase();
@@ -3460,8 +3526,10 @@ function textToASCII(text, style) {
for (let char of upperText) {
const charLines = font.chars[char] || font.chars[' '];
for (let i = 0; i < font.height; i++) {
lines[i] += charLines[i];
if (charLines) {
for (let i = 0; i < font.height; i++) {
lines[i] += (charLines[i] || ' '.repeat(font.chars[' '][i].length));
}
}
}
@@ -3514,32 +3582,33 @@ function createASCIIBox(text, style, padding) {
function getASCIITemplate(templateName) {
const templates = {
'arrow-right': `
┌────┐
│ │
────► │
│ │
└────┘`,
┌────────
────► NEXT
└────────`,
'arrow-down': `
┌───┐
└───┘`,
┌──────
NEXT
└──────`,
'check': `
✓ Task completed
✓ All tests passed
✓ Ready to deploy`,
✓ Ready to deploy
✓ Documentation updated`,
'divider': `
═══════════════════════════════════════════════════════════
`,
'header': `
╔══════════════════════════════════════╗
║ SECTION HEADER ║
╚══════════════════════════════════════╝`,
╔═══════════════════════════════════════════════════
SECTION HEADER
╚═══════════════════════════════════════════════════`,
'flowchart': `
┌─────────────┐
│ START
START │
└──────┬──────┘
@@ -3547,10 +3616,123 @@ function getASCIITemplate(templateName) {
│ PROCESS │
└──────┬──────┘
┌───┴───┐
│ Check │
└───┬───┘
┌───▼──┬──────┐
│ Yes │ No │
▼ ▼ │
┌────┐ ┌────┐ │
│ A │ │ B │ │
└─┬──┘ └─┬──┘ │
│ │ │
└──┬───┘ │
│◄──────────┘
┌─────────────┐
│ END │
└─────────────┘`
└─────────────┘`,
'decision': `
┌─────────┐
│ Check? │
└────┬────┘
┌─────┴─────┐
│ │
Yes│ │No
▼ ▼
┌────────┐ ┌────────┐
│ True │ │ False │
└────────┘ └────────┘`,
'sequence': `
User System Database
│ │ │
│ Request │ │
├──────────►│ │
│ │ Query │
│ ├──────────►│
│ │ │
│ │ Result │
│ │◄──────────┤
│ Response │ │
│◄──────────┤ │
│ │ │`,
'table-simple': `
┌──────────┬──────────┬──────────┐
│ Header 1 │ Header 2 │ Header 3 │
├──────────┼──────────┼──────────┤
│ Data 1 │ Data 2 │ Data 3 │
├──────────┼──────────┼──────────┤
│ Data 4 │ Data 5 │ Data 6 │
└──────────┴──────────┴──────────┘`,
'timeline': `
2020 2021 2022 2023
│ │ │ │
●───────────●───────────●───────────●
│ │ │ │
Start Milestone Release Current`,
'network': `
┌──────────┐
│ Server │
└────┬─────┘
┌─────────┼─────────┐
│ │ │
┌───▼───┐ ┌──▼────┐ ┌──▼────┐
│Client1│ │Client2│ │Client3│
└───────┘ └───────┘ └───────┘`,
'hierarchy': `
┌─────────┐
│ Root │
└────┬────┘
┌────────┴────────┐
│ │
┌───▼───┐ ┌───▼───┐
│Child 1│ │Child 2│
└───┬───┘ └───┬───┘
│ │
┌───▼───┐ ┌───▼───┐
│Grand 1│ │Grand 2│
└───────┘ └───────┘`,
'process-flow': `
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Input │────►│Process 1│────►│ Output │
└─────────┘ └────┬────┘ └─────────┘
┌────▼────┐
│Process 2│
└─────────┘`,
'note-box': `
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ NOTE: ┃
┃ This is an important note ┃
┃ that requires attention! ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛`,
'warning-box': `
╔════════════════════════════════════╗
║ ⚠ WARNING ║
║ Proceed with caution! ║
╚════════════════════════════════════╝`,
'info-box': `
╭────────────────────────────────────╮
Information │
│ Additional context here │
╰────────────────────────────────────╯`,
'separator-fancy': `
╭──────────────────────────────────────────────────────╮
│ │
╰──────────────────────────────────────────────────────╯`,
'brackets': `
【 Important Text 】`,
'banner-stars': `
************************************************************************
* IMPORTANT BANNER *
************************************************************************`,
'progress-bar': `
Progress: [████████████░░░░░░░░] 60%
0% 100%`
};
return templates[templateName] || '';