/**
* Pages模块 - 页面渲染逻辑
*/
const Pages = (function() {
// ========== 工具方法 ==========
// 格式化时间
function formatTime(timestamp) {
if (!timestamp) return '';
const date = new Date(timestamp);
const now = new Date();
const diff = now - date;
if (diff < 60000) return '刚刚';
if (diff < 3600000) return Math.floor(diff / 60000) + '分钟前';
if (diff < 86400000) return Math.floor(diff / 3600000) + '小时前';
if (diff < 604800000) return Math.floor(diff / 86400000) + '天前';
return date.toLocaleDateString('zh-CN');
}
// 处理封面图片错误
function handleCoverError(img) {
img.onerror = null;
img.src = 'data:image/svg+xml,' + encodeURIComponent(`
`);
}
// 清理HTML内容中的换行标签
function cleanContent(content) {
if (!content) return '';
return content
.replace(/
/gi, '\n')
.replace(/ /g, ' ')
.replace(/<[^>]+>/g, '')
.trim();
}
// ========== 书架页面 ==========
async function renderShelf() {
const $content = $('#app-content');
$content.html(`
去发现页面找本好书吧
暂无推荐
'); return; } let html = ''; novels.forEach(novel => { const isInShelf = Store.isInShelfCache(novel.id); html += `加载失败
'); } } // 渲染横向滚动骨架屏 function renderSkeletonScroll(count) { let html = ''; for (let i = 0; i < count; i++) { html += `暂无小说
开始阅读后会在这里显示
暂无记录
阅读时点击书签按钮添加
暂无书签
${synopsis}
暂无章节
'); } catch (error) { console.error('加载章节失败:', error); } } // ========== 搜索功能 ========== async function renderSearchResults(keyword) { const $results = $('#search-results'); $results.html('