mirror of
https://github.com/amitwh/markdown-converter.git
synced 2026-08-02 18:10:18 +05:30
- Enhanced PDF export with multiple LaTeX engine fallbacks - Fixed file association and direct file opening from OS - Removed redundant converter menu, moved import to File menu - Implemented comprehensive tabbed interface for multiple files - Added tab management with keyboard shortcuts (Ctrl+N, Ctrl+W, Ctrl+Tab) - Enhanced UI with tab bar and improved navigation - Updated to version 1.3.0 with new features - Improved main process and renderer architecture for multi-file support
139 lines
7.2 KiB
HTML
139 lines
7.2 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>PanConverter - Markdown Editor</title>
|
||
<link rel="stylesheet" href="styles.css">
|
||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/6.65.7/codemirror.min.css">
|
||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css">
|
||
</head>
|
||
<body>
|
||
<div class="container">
|
||
<div class="tab-bar" id="tab-bar">
|
||
<div class="tab active" data-tab-id="1">
|
||
<span class="tab-title">Untitled</span>
|
||
<button class="tab-close" title="Close tab">×</button>
|
||
</div>
|
||
<button class="new-tab-button" id="new-tab-btn" title="New tab">+</button>
|
||
</div>
|
||
<div class="toolbar">
|
||
<button id="btn-bold" title="Bold">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<path d="M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z"></path>
|
||
<path d="M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z"></path>
|
||
</svg>
|
||
</button>
|
||
<button id="btn-italic" title="Italic">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<line x1="19" y1="4" x2="10" y2="4"></line>
|
||
<line x1="14" y1="20" x2="5" y2="20"></line>
|
||
<line x1="15" y1="4" x2="9" y2="20"></line>
|
||
</svg>
|
||
</button>
|
||
<button id="btn-heading" title="Heading">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<polyline points="4 7 4 4 20 4 20 7"></polyline>
|
||
<line x1="9" y1="20" x2="15" y2="20"></line>
|
||
<line x1="12" y1="4" x2="12" y2="20"></line>
|
||
</svg>
|
||
</button>
|
||
<button id="btn-link" title="Link">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path>
|
||
<path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
|
||
</svg>
|
||
</button>
|
||
<button id="btn-code" title="Code">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<polyline points="16 18 22 12 16 6"></polyline>
|
||
<polyline points="8 6 2 12 8 18"></polyline>
|
||
</svg>
|
||
</button>
|
||
<button id="btn-list" title="List">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<line x1="8" y1="6" x2="21" y2="6"></line>
|
||
<line x1="8" y1="12" x2="21" y2="12"></line>
|
||
<line x1="8" y1="18" x2="21" y2="18"></line>
|
||
<line x1="3" y1="6" x2="3.01" y2="6"></line>
|
||
<line x1="3" y1="12" x2="3.01" y2="12"></line>
|
||
<line x1="3" y1="18" x2="3.01" y2="18"></line>
|
||
</svg>
|
||
</button>
|
||
<button id="btn-quote" title="Quote">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z"></path>
|
||
<path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z"></path>
|
||
</svg>
|
||
</button>
|
||
<button id="btn-table" title="Insert Table">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
|
||
<line x1="3" y1="9" x2="21" y2="9"></line>
|
||
<line x1="3" y1="15" x2="21" y2="15"></line>
|
||
<line x1="9" y1="3" x2="9" y2="21"></line>
|
||
<line x1="15" y1="3" x2="15" y2="21"></line>
|
||
</svg>
|
||
</button>
|
||
<div class="toolbar-separator"></div>
|
||
<button id="btn-find" title="Find & Replace (Ctrl+F)">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<circle cx="11" cy="11" r="8"></circle>
|
||
<path d="m21 21-4.35-4.35"></path>
|
||
</svg>
|
||
</button>
|
||
<button id="btn-line-numbers" title="Toggle Line Numbers">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<path d="M3 6h18"></path>
|
||
<path d="M3 12h18"></path>
|
||
<path d="M3 18h18"></path>
|
||
</svg>
|
||
</button>
|
||
<div class="toolbar-separator"></div>
|
||
<button id="btn-preview-toggle" title="Toggle Preview">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path>
|
||
<circle cx="12" cy="12" r="3"></circle>
|
||
</svg>
|
||
</button>
|
||
</div>
|
||
|
||
<!-- Find & Replace Dialog -->
|
||
<div id="find-dialog" class="find-dialog hidden">
|
||
<div class="find-controls">
|
||
<input type="text" id="find-input" placeholder="Find...">
|
||
<input type="text" id="replace-input" placeholder="Replace...">
|
||
<button id="btn-find-prev" title="Previous">↑</button>
|
||
<button id="btn-find-next" title="Next">↓</button>
|
||
<button id="btn-replace" title="Replace">Replace</button>
|
||
<button id="btn-replace-all" title="Replace All">All</button>
|
||
<button id="btn-find-close" title="Close">×</button>
|
||
</div>
|
||
<div class="find-info">
|
||
<span id="find-count">0 matches</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="editor-container">
|
||
<div class="tab-content active" id="tab-content-1" data-tab-id="1">
|
||
<div id="editor-pane-1" class="pane">
|
||
<div class="editor-wrapper">
|
||
<div id="line-numbers-1" class="line-numbers hidden"></div>
|
||
<textarea id="editor-1" class="editor-textarea"></textarea>
|
||
</div>
|
||
</div>
|
||
<div id="preview-pane-1" class="pane">
|
||
<div id="preview-1" class="preview-content"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="status-bar">
|
||
<span id="status-text">Ready</span>
|
||
<span id="word-count">Words: 0 | Characters: 0</span>
|
||
</div>
|
||
</div>
|
||
|
||
<script src="renderer.js"></script>
|
||
</body>
|
||
</html> |