全新的极简风格 markdown 渲染器,支持语法高亮、代码复制、响应式设计等功能
我已经完成了对 blog 页面 markdown 文章渲染器的全面优化,采用极简风格设计,细节精致,功能完备。
JavaScript/TypeScript:
function calculateFibonacci(n) {
if (n <= 1) return n;
let prev = 0, curr = 1;
for (let i = 2; i <= n; i++) {
[prev, curr] = [curr, prev + curr];
}
return curr;
}
console.log(calculateFibonacci(10)); // 55
TypeScript 类型定义:
interface User {
id: number;
name: string;
email: string;
isActive: boolean;
preferences?: UserPreferences;
}
type UserPreferences = {
theme: 'light' | 'dark';
notifications: boolean;
language: string;
}
class UserManager {
private users: Map<number, User> = new Map();
async createUser(userData: Omit<User, 'id'>): Promise<User> {
const id = Date.now();
const user: User = { id, ...userData };
this.users.set(id, user);
return user;
}
}
Python 示例:
from typing import List, Optional
import asyncio
class DataProcessor:
def __init__(self, config: dict):
self.config = config
self.processed_count = 0
async def process_batch(self, items: List[str]) -> List[dict]:
"""批量处理数据项"""
results = []
for item in items:
processed = await self.process_item(item)
if processed:
results.append(processed)
self.processed_count += 1
return results
async def process_item(self, item: str) -> Optional[dict]:
# 模拟异步处理
await asyncio.sleep(0.1)
return {"original": item, "processed": item.upper()}
# 使用示例
processor = DataProcessor({"max_workers": 4})
Bash 脚本:
#!/bin/bash
# 自动化部署脚本
set -e
PROJECT_DIR="/var/www/blog"
BACKUP_DIR="/var/backups/blog"
echo "开始部署..."
# 创建备份
sudo mkdir -p $BACKUP_DIR
sudo cp -r $PROJECT_DIR $BACKUP_DIR/$(date +%Y%m%d_%H%M%S)
# 拉取最新代码
cd $PROJECT_DIR
git pull origin main
# 安装依赖
npm ci
# 构建项目
npm run build
# 重启服务
sudo systemctl reload nginx
sudo pm2 restart blog
echo "部署完成!"
Docker 配置:
# 多阶段构建优化镜像大小
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production && npm cache clean --force
COPY . .
RUN npm run build
# 生产环境镜像
FROM node:18-alpine AS production
RUN addgroup -g 1001 -S nodejs && \
adduser -S nextjs -u 1001
WORKDIR /app
COPY --from=builder --chown=nextjs:nodejs /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --chown=nextjs:nodejs package*.json ./
USER nextjs
EXPOSE 3000
CMD ["npm", "start"]
CSS 样式:
/* 现代化的 CSS 自定义属性和 Grid 布局 */
:root {
--primary-color: #3b82f6;
--secondary-color: #f1f5f9;
--text-color: #1e293b;
--border-radius: 0.75rem;
--shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}
.blog-layout {
display: grid;
grid-template-areas:
"header header"
"sidebar content"
"footer footer";
grid-template-columns: 250px 1fr;
grid-template-rows: auto 1fr auto;
min-height: 100vh;
gap: 1.5rem;
}
@media (max-width: 768px) {
.blog-layout {
grid-template-areas:
"header"
"content"
"sidebar"
"footer";
grid-template-columns: 1fr;
}
}
JSON 配置:
{
"name": "blog-optimization",
"version": "2.0.0",
"description": "极简风格的博客 markdown 渲染器",
"main": "src/index.js",
"scripts": {
"dev": "astro dev",
"build": "astro build",
"preview": "astro preview",
"lint": "eslint src/",
"format": "prettier --write src/"
},
"dependencies": {
"@astrojs/react": "^4.2.0",
"astro": "^5.3.0",
"prismjs": "^1.30.0",
"tailwindcss": "^3.4.17"
},
"devDependencies": {
"@types/prismjs": "^1.26.5",
"prettier": "^3.5.2"
}
}
这是一个精美的引用块,支持多行内容。
具有优雅的左边框和背景色设计。
| 功能 | 支持情况 | 说明 |
|---|---|---|
| 语法高亮 | ✅ | 支持 15+ 编程语言 |
| 代码复制 | ✅ | 一键复制到剪贴板 |
| 响应式设计 | ✅ | 适配所有设备 |
| 暗色主题 | ✅ | 自动主题切换 |
支持内联代码高亮,如 const result = api.getData() 和 npm install package-name。
只需要在 markdown 文件中正常书写,所有的样式和功能都会自动应用:
这次优化将 blog 的阅读体验提升到了一个全新的层次! 🚀