第 3 部分 · 应用开发实战
项目实战
项目实战
综合运用所学知识,完成一个完整的真实项目。
项目:构建一个 Markdown 博客引擎
这个项目将综合运用 Web 服务器、模板渲染、文件 I/O 和 CLI 工具等知识。
项目结构
blog/
├── main.rkt ; 入口
├── config.rkt ; 配置
├── post.rkt ; 文章模型
├── template.rkt ; 模板渲染
├── static/ ; 静态文件
└── posts/ ; Markdown 文章
核心功能
- Markdown 解析与渲染
- 文章列表和详情页
- 静态文件服务
- RSS 订阅源
- CLI 工具用于创建和管理文章
第一步:文章模型
#lang racket (struct post (title date content filename) #:transparent) (define (load-posts dir) (for/list ([f (directory-list dir)] #:when (regexp-match? #rx"\\.md$" f)) (define content (file->string (build-path dir f))) (define title (extract-title content)) (define date (extract-date content)) (post title date content f)))
第二步:Web 服务
(define-values (dispatch url) (dispatch-rules [("") index-handler] [("post" (string-arg)) post-handler] [("rss") rss-handler] [else static-handler]))
扩展方向
- 添加评论系统
- 支持主题切换
- 添加搜索功能
- 生成静态站点(SSG)
- 部署到 Vercel 或自托管
小结
通过这个综合项目,你将体验到 Racket 在构建完整 Web 应用时的能力。从模型、路由到模板,所有组件都使用 Racket 原生实现。