Download static/index.html from vomebook/Search: direct link, hf CLI and curl.
- Browser
- Download file 11.6 kB
-
https://huggingface.co/spaces/vomebook/Search/resolve/main/static/index.html
- Command line
-
hf download hf://spaces/vomebook/Search/static/index.html
-
curl -L -o index.html https://huggingface.co/spaces/vomebook/Search/resolve/main/static/index.html
11.6 kB
| <html lang="zh-CN"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> | |
| <title>VOMEBOOK Search</title> | |
| <link rel="manifest" href="/manifest.json"> | |
| <meta name="theme-color" content="#1a1c1e"> | |
| <link rel="apple-touch-icon" href="/icons/icon-192.png"> | |
| <link rel="icon" type="image/png" sizes="192x192" href="/icons/icon-192.png"> | |
| <link rel="icon" type="image/png" sizes="512x512" href="/icons/icon-512.png"> | |
| <script>fetch("/api/ping", { cache: "no-store" }).catch(() => {});</script> | |
| <link rel="stylesheet" href="/static/style.css?v=phrases-4"> | |
| </head> | |
| <body class="dark"> | |
| <header id="header"> | |
| <div class="header-left"> | |
| <button id="hamburger-btn" class="icon-btn" aria-label="打开数据包导航" aria-controls="left-sidebar" aria-expanded="true"><span class="ui-icon ui-icon-menu" aria-hidden="true"></span></button> | |
| <a id="header-logo" class="header-logo" href="https://huggingface.co/VOMEBOOK" title="VOMEBOOK"> | |
| <span id="header-title">VOMEBOOK</span> | |
| </a> | |
| </div> | |
| <div class="header-center"> | |
| <div class="search-box"> | |
| <span class="search-icon"><span class="ui-icon ui-icon-search" aria-hidden="true"></span></span> | |
| <input type="search" id="search-input" class="search-input" aria-label="搜索 TXT 文件和正文" aria-controls="search-history-dropdown" aria-expanded="false" placeholder="全文搜索 TXT 正文..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"> | |
| <kbd class="search-kbd">/</kbd> | |
| <div id="search-history-dropdown" class="search-history-dropdown" role="region" aria-label="搜索历史" style="display:none"></div> | |
| </div> | |
| </div> | |
| <div class="header-right"> | |
| <button id="settings-btn" class="icon-btn" aria-label="打开搜索过滤" aria-controls="right-sidebar" aria-expanded="false"><span class="ui-icon ui-icon-sliders" aria-hidden="true"></span></button> | |
| <button id="mobile-toggle-btn" class="icon-btn" aria-label="切换手机或电脑模式" aria-pressed="false" title="手机/电脑模式切换"><span id="mobile-toggle-icon" class="ui-icon ui-icon-devices" aria-hidden="true"></span></button> | |
| <button id="theme-btn" class="icon-btn" aria-label="切换到白天模式" title="白天模式"><svg class="theme-icon-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M20 15.5A8 8 0 1 1 8.5 4 6.5 6.5 0 0 0 20 15.5Z"/></svg></button> | |
| </div> | |
| </header> | |
| <div id="app-body" class="app-body"> | |
| <aside id="left-sidebar" class="sidebar left-sidebar" aria-labelledby="sidebar-title"> | |
| <div class="sidebar-header"><span id="sidebar-title">数据包</span><button id="sidebar-expand-btn" class="icon-btn-sm" aria-label="展开数据包导航" aria-expanded="false" title="展开/收起侧边栏" style="display:none">↔</button></div> | |
| <div id="sidebar-content" class="sidebar-content"><div class="sidebar-loading">加载中...</div></div> | |
| </aside> | |
| <main id="main-content" class="main-content"> | |
| <div id="status-bar" class="status-bar"> | |
| <div class="status-left"> | |
| <span id="result-count" class="result-count" role="status"></span> | |
| <label class="multi-toggle" id="multi-toggle-label" style="display:none"><input type="checkbox" id="multi-select-toggle"><span>多选</span></label> | |
| </div> | |
| <div class="status-right"> | |
| <button id="clear-filters-btn" class="text-btn" style="display:none">清空筛选</button> | |
| <div class="sort-group"> | |
| <span class="sort-label">排序:</span> | |
| <select id="sort-select" class="sort-select" aria-label="排序方式"> | |
| <option value="relevance">相关度</option> | |
| <option value="name">文件名</option> | |
| <option value="size">文件大小</option> | |
| </select> | |
| </div> | |
| </div> | |
| </div> | |
| <div id="multi-action-bar" class="multi-action-bar" style="display:none"> | |
| <button id="multi-select-all" class="multi-action-btn">全选</button> | |
| <button id="multi-deselect" class="multi-action-btn">取消选择</button> | |
| <button id="multi-batch-download" class="multi-action-btn primary">批量下载</button> | |
| <button id="multi-zip-download" class="multi-action-btn primary">合并下载</button> | |
| <span id="multi-selected-count" class="multi-selected-count" role="status" aria-live="polite" aria-atomic="true"></span> | |
| </div> | |
| <div id="results-container" class="results-container" aria-busy="false" role="region" aria-label="搜索结果"> | |
| <div id="results-list" class="results-list" role="list"></div> | |
| <div id="results-loading" class="loading-spinner" style="display:none"><div class="spinner"></div></div> | |
| <div id="empty-state" class="empty-state" style="display:none"> | |
| <div class="empty-title">没有找到结果</div> | |
| <div id="empty-desc" class="empty-desc">试试其他关键词</div> | |
| <button id="empty-random-btn" class="random-big-btn">随机来一篇</button> | |
| </div> | |
| </div> | |
| <div id="load-info" class="load-info" role="status" aria-live="polite" aria-atomic="true" style="display:none">已加载 <span id="loaded-count">0</span> / <span id="total-count">0</span> 条</div> | |
| <div id="preview-panel" class="preview-panel" role="dialog" aria-modal="true" aria-label="文件预览" tabindex="-1" hidden style="display:none"></div> | |
| </main> | |
| <aside id="right-sidebar" class="sidebar right-sidebar" aria-label="搜索过滤"> | |
| <div class="sidebar-header"><span>搜索过滤</span><button id="close-filters-btn" class="icon-btn-sm" aria-label="关闭搜索过滤">×</button></div> | |
| <div class="sidebar-content"> | |
| <div class="filter-section" id="fulltext-toggle-section"> | |
| <label class="toggle-row"> | |
| <span class="toggle-label">全文搜索</span> | |
| <input type="checkbox" id="fulltext-toggle" checked> | |
| <span class="toggle-switch"></span> | |
| </label> | |
| </div> | |
| <div class="filter-section" id="search-paths-toggle-section"> | |
| <label class="toggle-row"> | |
| <span class="toggle-label">搜索文件夹名</span> | |
| <input type="checkbox" id="search-paths-toggle" checked> | |
| <span class="toggle-switch"></span> | |
| </label> | |
| </div> | |
| <div class="filter-section" id="history-toggle-section"> | |
| <label class="toggle-row"> | |
| <span class="toggle-label">记录搜索历史</span> | |
| <input type="checkbox" id="history-toggle" checked> | |
| <span class="toggle-switch"></span> | |
| </label> | |
| </div> | |
| <div class="filter-section" id="exact-search-section"> | |
| <label class="toggle-row"> | |
| <span class="toggle-label">精准搜索</span> | |
| <input type="checkbox" id="exact-search-toggle" checked> | |
| <span class="toggle-switch"></span> | |
| </label> | |
| </div> | |
| <div id="filter-source-section" class="filter-section"> | |
| <div class="filter-section-title"><span class="filter-title-leading"><span>数据包过滤</span><button id="source-filter-cancel" class="text-btn-sm" hidden>取消</button></span></div> | |
| <div id="filter-source-list" class="filter-checkbox-list"></div> | |
| </div> | |
| <div id="filter-folder-section" class="filter-section"> | |
| <div class="filter-section-title"><span class="filter-title-leading"><span>路径过滤</span><button id="folder-filter-cancel" class="text-btn-sm" hidden>取消</button></span><span class="filter-actions"><button type="button" id="folder-toggle-all" class="text-btn-sm" aria-label="展开所有子目录" title="展开所有子目录" aria-controls="filter-folder-tree" aria-expanded="false" disabled>展开</button><button id="folder-select-all" class="text-btn-sm">全选</button><button id="folder-deselect-all" class="text-btn-sm">反选</button></span></div> | |
| <div id="filter-folder-tree" class="filter-folder-tree"></div> | |
| </div> | |
| <div class="filter-section"> | |
| <div class="filter-section-title">文件大小</div> | |
| <div class="filter-size-row"> | |
| <input type="number" id="filter-min-size" class="size-input" aria-label="最小文件大小" placeholder="最小" min="0" step="0.1"> | |
| <select id="filter-min-unit" class="size-unit" aria-label="最小文件大小单位"><option value="B">B</option><option value="KB">KB</option><option value="MB" selected>MB</option><option value="GB">GB</option></select> | |
| <span class="size-sep">—</span> | |
| <input type="number" id="filter-max-size" class="size-input" aria-label="最大文件大小" placeholder="最大" min="0" step="0.1"> | |
| <select id="filter-max-unit" class="size-unit" aria-label="最大文件大小单位"><option value="B">B</option><option value="KB">KB</option><option value="MB" selected>MB</option><option value="GB">GB</option></select> | |
| </div> | |
| </div> | |
| </div> | |
| </aside> | |
| </div> | |
| <footer id="footer" class="footer"> | |
| <div class="hitokoto"></div> | |
| <button id="random-book-btn" class="random-book-btn" title="随机来一篇"> | |
| <span class="ui-icon ui-icon-book" aria-hidden="true"></span> | |
| <span>随机来一篇</span> | |
| </button> | |
| </footer> | |
| <div id="overlay" class="overlay" style="display:none"></div> | |
| <div id="toast" class="toast" role="status" aria-live="polite" style="display:none"></div> | |
| <section id="speech-panel" class="speech-panel" aria-label="朗读设置" hidden> | |
| <div class="speech-heading"><span id="speech-title">朗读</span><button type="button" id="speech-collapse" class="icon-btn-sm" aria-label="收起设置,继续播放" title="收起,继续播放"><svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.7" aria-hidden="true"><path d="M5 12h14"/></svg></button><button type="button" id="speech-stop" class="icon-btn-sm" aria-label="停止朗读" title="停止朗读">×</button></div> | |
| <p id="speech-status" class="speech-note" role="status">从当前阅读位置开始</p> | |
| <label class="speech-setting" for="speech-pitch"><span>音高</span><input id="speech-pitch" type="range" min="-3" max="3" step="1" value="0"><output id="speech-pitch-value">0</output></label> | |
| <label class="speech-setting" for="speech-speed"><span>语速</span><input id="speech-speed" type="range" min="0.5" max="2" step="0.05" value="1"><output id="speech-speed-value">1.0×</output></label> | |
| <label class="speech-setting" for="speech-timer"><span>睡眠定时</span><select id="speech-timer"><option value="off">关闭</option><option value="clip">读完当前句</option><option value="5">5 分钟</option><option value="15">15 分钟</option><option value="30">30 分钟</option><option value="60">60 分钟</option></select></label> | |
| <div class="speech-transport"><button type="button" id="speech-previous" class="text-btn" aria-label="上一句">上一句</button><button type="button" id="speech-play" class="speech-play">暂停</button><button type="button" id="speech-next" class="text-btn" aria-label="下一句">下一句</button></div> | |
| <div class="speech-links"><button type="button" id="speech-visible" class="text-btn">从当前阅读位置开始</button><button type="button" id="speech-locate" class="text-btn">回到播放位置</button></div> | |
| </section> | |
| <script>if ("serviceWorker" in navigator) { navigator.serviceWorker.register("/sw.js", { scope: "/" }); }</script> | |
| <script src="/static/tts-client.js?v=clips-11"></script> | |
| <script src="/static/app.js?v=phrases-4"></script> | |
| </body> | |
| </html> | |