# peach 开发思路及文档

之前用jquery+jsp+servlet+mysql写了一套个人博客系统,用在zuo11.com上,从16年10月左右上线到17年2月,发布了大概46篇笔记博文。之后工作就基本没更新过了,直到现在才打算好好整一下这快。方便后面积累。

# 重写

前端jsp+jquery,后端java+mysql,有几个不满意的地方:

  • 技术栈陈旧,基本不想继续在原来的代码上维护了
  • 页面都是服务端渲染,每次访问文章都会去数据库查询文章,然后展示
  • 每次写文章,都是在线的UEditor编辑器,不支持markdown语法,生成的文章内容比较乱
  • 分类展示效果不好,访客记录不够完善
  • 评论系统使用的第三方畅言,可控性较差。

理想的改动是和hexo类似,直接写md笔记,然后放入固定的目录,生成静态链接的博客文章

# 从最基础的开始

将markdown文件,生成一个静态网页,用node实现。 找到一个不错的开源代码marked.js,可以直接使用。

  • 把src这个目录专门用来做开发目录。
cd src;
npm init; // 初始化package.json
入口 index.js开始处理逻辑

读取notes目录的md文件,直接用markedjs转成html元素再套入html模板,生成html静态文件即可


// index.js peach entrance

let marked = require('./lib/marked') // import marked.js

// 读取notes目录的笔记,然后转换为html元素,再写到静态html文件里
let fs = require('fs')
fs.readFile('./notes/testmd.md', (err, data) => {
  if (err) {
    console.log(err);
    return;
  }

  // 这里加入了基本的html框架,加入了代码高亮prismjs
  let htmlStr = `<!DOCTYPE html>
  <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
      <link href="../lib/prismjs/prism_default.css" rel="stylesheet" />
    </head>
    <body>
      ${marked(data.toString())}
      <script src="../lib/prismjs/prism_default.js"></script>
    </body>
  </html>
  `
  fs.writeFile('./notes/testmd.html', htmlStr, () => {
    console.log('写入文件成功');
  })
})

# 博客页面结构规划

基础ok后,需要规划下博客的页面结构,样式等。回到初衷,我心里我的博客应该是怎么样的?

  • 博客并不是知识系统化的一个地方,这需要一个单独用一个仓库去整理,博客只需要挂一个链接到该地址即可
  • 博客主要针对某个问题展开,可以是遇到某个坑的总结、某个开源项目源码分析、学到新知识点后的总结、工作中的一些所见所想等。
  • 主要以SEO为入口,其他开发者可能会遇到的问题,百度、google会搜索什么问题,然后结合自己遇到的问题去总结归纳。
  • 项目/demo展示(五子棋、扫雷、模仿某些效果,样式等)