reader.html 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>CJYDocs</title>
  7. <link rel="stylesheet" href="/css/style.css">
  8. <!-- Marked.js - Markdown 解析 -->
  9. <script src="https://cdn.jsdelivr.net/npm/marked@11.1.0/marked.min.js"></script>
  10. <!-- Highlight.js - 代码高亮 -->
  11. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/highlight.js/styles/github.min.css">
  12. <script src="https://cdn.jsdelivr.net/npm/highlight.js"></script>
  13. </head>
  14. <body>
  15. <div class="reader-container">
  16. <!-- 左侧导航 -->
  17. <aside class="sidebar left-sidebar" id="left-sidebar">
  18. <div class="sidebar-header">
  19. <h2 id="category-title">
  20. <span class="category-name">文档目录</span>
  21. <div class="header-icons">
  22. <a href="/" class="home-icon icon-btn" title="返回首页">🏠</a>
  23. <button id="search-toggle-btn" class="icon-btn" title="搜索">🔍</button>
  24. </div>
  25. </h2>
  26. </div>
  27. <nav id="doc-nav" class="doc-nav">
  28. <!-- 动态加载文档列表 -->
  29. </nav>
  30. </aside>
  31. <!-- 主内容区 -->
  32. <main class="content-area" id="content-area">
  33. <!-- 搜索框 -->
  34. <div class="search-container" id="search-container">
  35. <div class="search-box">
  36. <input type="text" id="search-input" placeholder="搜索文档内容..." autocomplete="off">
  37. <button id="search-btn" class="search-icon-btn">🔍</button>
  38. <button id="close-search-box" class="close-search-box-btn" title="关闭搜索">×</button>
  39. </div>
  40. </div>
  41. <!-- 搜索结果浮层 -->
  42. <div id="search-results" class="search-results" style="display: none;">
  43. <div class="search-results-header">
  44. <span class="search-results-title">搜索结果</span>
  45. </div>
  46. <div class="search-results-content">
  47. <!-- 当前文档结果 -->
  48. <div id="current-doc-results" class="results-section">
  49. <h3 class="results-section-title">当前文档</h3>
  50. <div class="results-list"></div>
  51. </div>
  52. <!-- 其他文档结果 -->
  53. <div id="other-docs-results" class="results-section">
  54. <h3 class="results-section-title">其他文档</h3>
  55. <div class="results-list"></div>
  56. </div>
  57. </div>
  58. </div>
  59. <div id="loading" class="loading">
  60. <div class="spinner"></div>
  61. <p>加载中...</p>
  62. </div>
  63. <article id="markdown-content" class="markdown-body">
  64. <!-- Markdown 内容将在这里渲染 -->
  65. </article>
  66. <!-- 回到顶部按钮 -->
  67. <button id="back-to-top" class="back-to-top" title="回到顶部">
  68. <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
  69. <path d="M12 19V5M12 5L5 12M12 5L19 12" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
  70. </svg>
  71. </button>
  72. </main>
  73. <!-- 右侧 TOC -->
  74. <aside class="sidebar right-sidebar" id="right-sidebar">
  75. <nav id="toc" class="toc">
  76. <!-- 动态生成 TOC -->
  77. </nav>
  78. </aside>
  79. <!-- 移动端侧边栏切换按钮 -->
  80. <button class="toggle-sidebar-btn" id="toggle-left" title="切换文档目录">
  81. <span>☰</span>
  82. </button>
  83. <button class="toggle-sidebar-btn" id="toggle-right" title="切换标题目录">
  84. <span>≡</span>
  85. </button>
  86. </div>
  87. <script src="/js/reader.js"></script>
  88. </body>
  89. </html>