Forcing inputStyle to contenteditable (previous commit) didn't fix it on iPhone, confirming this is CodeMirror 5's own long-standing weakness with CJK IME composition on iOS WebKit, not just the iPad desktop-UA detection issue. There's no reliable fix short of dropping CodeMirror for the journal content field, so EasyMDE is removed entirely and the textarea goes back to a native, uncontrolled <textarea> — nothing intercepts/re-renders it during composition, so iOS's IME just works. The markdown toolbar buttons (bold/italic/heading/quote/lists/code/link) now manipulate the textarea's selection directly via a small JournalEditor JS API instead of calling EasyMDE/CodeMirror commands, and image paste tracks its upload placeholder by a unique text marker instead of a CodeMirror bookmark. Also drops the vendored easymde.min.js/css (no longer referenced) and bumps the service worker CACHE_NAME so stale cached copies of the old vendor files get evicted. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
21 lines
1.7 KiB
HTML
21 lines
1.7 KiB
HTML
<div class="markdown-toolbar">
|
|
<span x-show="!previewMode" style="display:flex; gap:4px; flex-wrap:wrap;">
|
|
<button type="button" class="md-tool-btn" title="굵게" @click="JournalEditor.bold($el.closest('.field').querySelector('textarea'))"><strong>B</strong></button>
|
|
<button type="button" class="md-tool-btn" title="기울임" @click="JournalEditor.italic($el.closest('.field').querySelector('textarea'))"><em>I</em></button>
|
|
<button type="button" class="md-tool-btn" title="취소선" @click="JournalEditor.strike($el.closest('.field').querySelector('textarea'))"><s>S</s></button>
|
|
<button type="button" class="md-tool-btn" title="제목" @click="JournalEditor.heading($el.closest('.field').querySelector('textarea'))">H</button>
|
|
<button type="button" class="md-tool-btn" title="인용" @click="JournalEditor.quote($el.closest('.field').querySelector('textarea'))">❝</button>
|
|
<button type="button" class="md-tool-btn" title="글머리 목록" @click="JournalEditor.ul($el.closest('.field').querySelector('textarea'))">•</button>
|
|
<button type="button" class="md-tool-btn" title="번호 목록" @click="JournalEditor.ol($el.closest('.field').querySelector('textarea'))">1.</button>
|
|
<button type="button" class="md-tool-btn" title="코드" @click="JournalEditor.code($el.closest('.field').querySelector('textarea'))"></></button>
|
|
<button type="button" class="md-tool-btn" title="링크" @click="JournalEditor.link($el.closest('.field').querySelector('textarea'))">🔗</button>
|
|
</span>
|
|
<button
|
|
type="button"
|
|
class="md-tool-btn md-preview-toggle"
|
|
style="margin-left:auto;"
|
|
@click="togglePreview()"
|
|
x-text="previewMode ? '✏️ 편집' : '👁 미리보기'"
|
|
></button>
|
|
</div>
|