notes / index.html
bot
add paste image support
2f60066
Raw
History Blame Contribute Delete
11.8 kB
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>备忘录</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<section class="auth-gate" id="authGate" aria-busy="true">
<form class="auth-panel" id="authForm">
<h1 id="authTitle">正在加载</h1>
<input id="authPassword" type="password" autocomplete="current-password" minlength="8" placeholder="密码" aria-label="密码">
<button id="authSubmit" type="submit">继续</button>
<p id="authMessage"></p>
</form>
</section>
<section class="modal-gate" id="passwordGate" hidden>
<form class="password-panel" id="passwordForm">
<h2>修改密码</h2>
<input id="currentPassword" type="password" autocomplete="current-password" minlength="8" placeholder="当前密码" aria-label="当前密码">
<input id="nextPassword" type="password" autocomplete="new-password" minlength="8" placeholder="新密码" aria-label="新密码">
<input id="confirmPassword" type="password" autocomplete="new-password" minlength="8" placeholder="确认新密码" aria-label="确认新密码">
<div class="password-actions">
<button id="cancelPassword" type="button">取消</button>
<button id="submitPassword" type="submit">保存</button>
</div>
<p id="passwordMessage"></p>
</form>
</section>
<section class="modal-gate" id="folderGate" hidden>
<form class="folder-panel" id="folderForm">
<h2 id="folderTitle">新建文件夹</h2>
<input id="folderName" type="text" maxlength="80" placeholder="文件夹名称" aria-label="文件夹名称" autocomplete="off" required>
<div class="folder-actions">
<button id="cancelFolder" type="button">取消</button>
<button id="submitFolder" type="submit">保存</button>
</div>
<p id="folderMessage"></p>
</form>
</section>
<div class="app-shell">
<header class="mobile-nav" aria-label="移动端导航">
<button class="mobile-back" id="mobileBack" type="button" aria-label="返回">
<i data-lucide="chevron-left" aria-hidden="true"></i>
<span id="mobileBackLabel">返回</span>
</button>
<strong id="mobileTitle">文件夹</strong>
<div class="mobile-actions" id="mobileActions">
<button class="mobile-more-button" id="mobileMore" type="button" aria-label="更多操作" title="更多操作">
<i data-lucide="ellipsis" aria-hidden="true"></i>
</button>
<div class="mobile-action-menu" id="mobileActionMenu" hidden>
<label>
<span>移动到</span>
<select id="mobileNoteFolderSelect" class="mobile-folder-select" aria-label="移动笔记到文件夹"></select>
</label>
<button id="mobileMenuPreview" type="button">
<i data-lucide="eye" aria-hidden="true"></i>
<span>Markdown 预览</span>
</button>
<button id="mobileMenuSave" type="button">
<i data-lucide="save" aria-hidden="true"></i>
<span>保存</span>
</button>
<button id="mobileMenuDelete" type="button">
<i data-lucide="trash-2" aria-hidden="true"></i>
<span>删除</span>
</button>
</div>
</div>
</header>
<aside class="folders" aria-label="文件夹">
<div class="folder-scroll">
<div class="sidebar-title">iCloud</div>
<div id="folderList"></div>
</div>
<div class="folder-footer">
<button class="new-folder-button" id="newFolder" type="button" aria-label="新建文件夹" title="新建文件夹">
<i data-lucide="folder-plus" aria-hidden="true"></i>
<span>新建文件夹</span>
</button>
</div>
</aside>
<main class="notes-pane" aria-label="笔记列表">
<header class="toolbar">
<button class="icon-button" id="newNote" type="button" aria-label="新建笔记" title="新建笔记">
<i data-lucide="plus" aria-hidden="true"></i>
</button>
<button class="icon-button" id="deleteNote" type="button" aria-label="删除笔记" title="删除笔记">
<i data-lucide="trash-2" aria-hidden="true"></i>
</button>
<button class="icon-button" id="previewToggle" type="button" aria-label="Markdown 预览" title="Markdown 预览">
<i data-lucide="eye" aria-hidden="true"></i>
</button>
<button class="icon-button" id="changePassword" type="button" aria-label="修改密码" title="修改密码">
<i data-lucide="key-round" aria-hidden="true"></i>
</button>
<button class="icon-button" id="logout" type="button" aria-label="退出登录" title="退出登录">
<i data-lucide="log-out" aria-hidden="true"></i>
</button>
</header>
<div class="search-wrap">
<input id="searchInput" type="search" placeholder="搜索" autocomplete="off" aria-label="搜索笔记">
</div>
<div class="list-heading">
<strong id="listTitle">所有笔记</strong>
<span id="listCount">0 个笔记</span>
</div>
<section class="note-list" id="noteList" aria-label="笔记"></section>
</main>
<section class="editor-pane" aria-label="编辑器">
<div class="editor-meta">
<time id="editedAt"></time>
<span class="save-status" id="saveStatus" aria-live="polite"></span>
<select id="noteFolderSelect" aria-label="移动笔记到文件夹"></select>
<div class="editor-menu-wrap">
<button class="editor-menu-button" id="editorMenuToggle" type="button" aria-label="编辑菜单" title="编辑菜单">
<i data-lucide="type" aria-hidden="true"></i>
</button>
<div class="editor-format-menu" id="editorFormatMenu" hidden>
<button type="button" data-editor-command="paragraph" aria-label="正文" title="正文"><i data-lucide="pilcrow" aria-hidden="true"></i></button>
<button type="button" data-editor-command="heading1" aria-label="一级标题" title="一级标题"><i data-lucide="heading-1" aria-hidden="true"></i></button>
<button type="button" data-editor-command="heading2" aria-label="二级标题" title="二级标题"><i data-lucide="heading-2" aria-hidden="true"></i></button>
<button type="button" data-editor-command="bold" aria-label="加粗" title="加粗"><i data-lucide="bold" aria-hidden="true"></i></button>
<button type="button" data-editor-command="italic" aria-label="斜体" title="斜体"><i data-lucide="italic" aria-hidden="true"></i></button>
<button type="button" data-editor-command="bulletList" aria-label="无序列表" title="无序列表"><i data-lucide="list" aria-hidden="true"></i></button>
<button type="button" data-editor-command="orderedList" aria-label="有序列表" title="有序列表"><i data-lucide="list-ordered" aria-hidden="true"></i></button>
<button type="button" data-editor-command="alignLeft" aria-label="左对齐" title="左对齐"><i data-lucide="align-left" aria-hidden="true"></i></button>
<button type="button" data-editor-command="alignCenter" aria-label="居中" title="居中"><i data-lucide="align-center" aria-hidden="true"></i></button>
<button type="button" data-editor-command="alignRight" aria-label="右对齐" title="右对齐"><i data-lucide="align-right" aria-hidden="true"></i></button>
</div>
</div>
<button class="editor-preview-button" id="editorPreviewToggle" type="button" aria-label="Markdown 预览" title="Markdown 预览">
<i data-lucide="eye" aria-hidden="true"></i>
</button>
<button class="editor-save-button" id="saveNote" type="button" aria-label="保存笔记" title="保存笔记">
<i data-lucide="save" aria-hidden="true"></i>
</button>
</div>
<div id="editor" spellcheck="true" aria-label="笔记正文"></div>
<article class="markdown-preview" id="markdownPreview" hidden></article>
<div class="empty-state" id="emptyState">
<strong>没有选择笔记</strong>
<span>新建或选择一条笔记开始编辑</span>
</div>
</section>
<footer class="mobile-bottom" aria-label="移动端操作">
<div class="mobile-search" id="mobileSearchWrap">
<input id="mobileSearchInput" type="search" placeholder="搜索" autocomplete="off" aria-label="移动端搜索">
</div>
<button class="mobile-edit-button" id="mobileEdit" type="button" aria-label="新建笔记" title="新建笔记">
<i data-lucide="square-pen" aria-hidden="true"></i>
</button>
<div class="mobile-editor-menu-wrap">
<button class="mobile-editor-menu-button" id="mobileEditorMenuToggle" type="button" aria-label="编辑菜单" title="编辑菜单">
<i data-lucide="type" aria-hidden="true"></i>
</button>
<div class="mobile-editor-format-menu" id="mobileEditorFormatMenu" hidden>
<button type="button" data-editor-command="paragraph" aria-label="正文" title="正文"><i data-lucide="pilcrow" aria-hidden="true"></i></button>
<button type="button" data-editor-command="heading1" aria-label="一级标题" title="一级标题"><i data-lucide="heading-1" aria-hidden="true"></i></button>
<button type="button" data-editor-command="heading2" aria-label="二级标题" title="二级标题"><i data-lucide="heading-2" aria-hidden="true"></i></button>
<button type="button" data-editor-command="bold" aria-label="加粗" title="加粗"><i data-lucide="bold" aria-hidden="true"></i></button>
<button type="button" data-editor-command="italic" aria-label="斜体" title="斜体"><i data-lucide="italic" aria-hidden="true"></i></button>
<button type="button" data-editor-command="bulletList" aria-label="无序列表" title="无序列表"><i data-lucide="list" aria-hidden="true"></i></button>
<button type="button" data-editor-command="orderedList" aria-label="有序列表" title="有序列表"><i data-lucide="list-ordered" aria-hidden="true"></i></button>
<button type="button" data-editor-command="alignLeft" aria-label="左对齐" title="左对齐"><i data-lucide="align-left" aria-hidden="true"></i></button>
<button type="button" data-editor-command="alignCenter" aria-label="居中" title="居中"><i data-lucide="align-center" aria-hidden="true"></i></button>
<button type="button" data-editor-command="alignRight" aria-label="右对齐" title="右对齐"><i data-lucide="align-right" aria-hidden="true"></i></button>
</div>
</div>
<button class="mobile-preview-button" id="mobilePreviewToggle" type="button" aria-label="Markdown 预览" title="Markdown 预览">
<i data-lucide="eye" aria-hidden="true"></i>
</button>
<button class="mobile-save-button" id="mobileSave" type="button" aria-label="保存笔记" title="保存笔记">
<i data-lucide="save" aria-hidden="true"></i>
</button>
</footer>
</div>
<script src="/node_modules/lucide/dist/umd/lucide.js"></script>
<script type="module" src="assets/app.bundle.js"></script>
</body>
</html>