UNPKG

vitepress-theme-nex

Version:

VitePress 主题 Nex 是一个 VitePress 用户设计的现代化博客主题。它不仅提供了简洁美观的视觉风格,还具有多种实用的功能,帮助您快速构建高质量的博客页面。

50 lines (49 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NTransform = NTransform; function NTransform(raw, sort = "desc") { return raw.map(({ url, frontmatter, html, excerpt }) => ({ title: filterTitle(html), url, html: filterHtml(html), frontmatter, excerpt: filterHtml(excerpt), date: formatDate(frontmatter.date) })).sort((a, b) => { return sort === "asc" ? a.date.time - b.date.time : b.date.time - a.date.time; }); } function filterHtml(html) { if (!html) return ""; return html.replace(/<h1.*?>(.*?)<\/h1>/s, ""); } function filterTitle(html) { if (!html) return ""; const titleRegex = /<h1.*?>(.*?)<\/h1>/s; const match = titleRegex.exec(html); if (!match) return ""; let innerHTML = match[1]; innerHTML = innerHTML.replace(/<[^>]*>/g, ""); innerHTML = innerHTML.replace(/&ZeroWidthSpace;/g, ""); innerHTML = innerHTML.replace(/&[a-zA-Z0-9#]+;/g, ""); return innerHTML; } function formatDate(raw) { const date = new Date(raw); date.setUTCHours(12); return { time: +date, string: date.toLocaleDateString("en-US", { year: "numeric", month: "long", day: "numeric" }) }; }