效果图如下

41f7232f41837d699de333290ab4a99.png

设计思路

  1. 拆分:文字标题导航,和文章详情
  2. 数据库设计:导航这个是维护在数据库之中,文字可以用md 文件存储到文件系统中,数据库维护标题,id,及文档地址,评价等等字段
  3. 回显:查询文档id 后,返回html页面内容,前端去解析

技术选型

使用pegdown 解析md

  1. <dependency>
  2. <groupId>org.pegdown</groupId>
  3. <artifactId>pegdown</artifactId>
  4. <version>1.6.0</version>
  5. </dependency>
  1. package com.zifeiy.page;
  2. import java.io.BufferedReader;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import org.pegdown.PegDownProcessor;
  8. public class PageGenerator {
  9. public void generateHtml(File mdFile) throws IOException {
  10. BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(mdFile), "UTF-8"));
  11. String line = null;
  12. String mdContent = "";
  13. while ((line = br.readLine()) != null) {
  14. mdContent += line + "\r\n";
  15. }
  16. PegDownProcessor pdp = new PegDownProcessor(Integer.MAX_VALUE);
  17. String htmlContent = pdp.markdownToHtml(mdContent);
  18. System.out.println(htmlContent);
  19. }
  20. public static void main(String[] args) throws IOException {
  21. PageGenerator pageGenerator = new PageGenerator();
  22. pageGenerator.generateHtml(new File("D:\\projects\\zifeiy.github.io\\笔记\\20181125我的第一篇博客.md"));
  23. }
  24. }