VueBlogger: 一个 Vue 博客框架

简介

VueBlogger是一个使用 Vue 2 编写的 Vue 博客框架。本着轻巧、高度可定制化的设计理念,搭配着独具一格的 UI 界面,VueBlogger可以轻松打造一个个人博客。

在线Demo:https://samzhangjy.github.io

GitHub仓库:https://github.com/samzhangjy/VueBlogger

欢迎大家star和fork!

UI界面

在UI上,VueBlogger采用了 Vuesax 4 Alpha 作为组件库,支持深色模式,整体风格简约、大方,但又具有科技风。

VueBlogger浅色模式示意
VueBlogger深色模式示意

工程架构

VueBlogger采用 Vue 2 + Vue Router + Vuesax 4 作为主要依赖。

使用指北

注意:请先确认是否正确安装 Node.js 与 Vue.js 2 。

安装与运行

首先,你需要安装 VueBlogger 的依赖包:

$ npm  install  # 或 yarn

然后,你可以通过以下命令运行 VueBlogger:

$ npm run serve # 或 yarn serve

当然,你现在还无法正常运行,因为 VueBlogger 需要配置后才能正常使用。

配置

首先,在项目根目录下,创建一个名为 `posts 的文件夹,这将存放所有与博客相关的MD文档与配置文件。

然后,在 posts 文件夹下创建一个 data 文件夹,存放所有的配置文件。

基本配置

data 文件夹下,创建一个 config.json 文件,存放所有的基本配置。

// posts/data/config.json
{
  "config":  {
    "username":  "你的用户名",  
    "avatarPath":  "你的头像图片链接",  
    "description":  "你的博客简介",
    "name":  "你的名称",
    "blogTitle":  "你的博客标题",
    "blogStartYear":  2019  // 博客开始日期,用于生成页脚的CopyRight
  },
  "contacts":  [  // 联系方式
    {
      "name":  "联系方式名称",
      "value":  "联系方式内容,例如你的电子邮箱地址",
      "link":  "联系方式链接,例如:mailto:xxx@example.com"
    }
  ]
}

注意:一定要填写全部信息,否则 VueBlogger 将会报错。

项目配置

接着,创建一个 projects.json 文件(同样在 data 文件夹中),用于存储个人开源项目相关信息:

// posts/data/projects.json  
{
  "projects": [
    {
      "name": "项目名称",
      "des": "项目介绍",
      "img": "项目封面图片链接",
      "link": "项目首页链接",
      "github": "项目GitHub链接"
    }
  ]
}

同样,请填写所有信息。

为了更好地自定义个人项目板块,请再在 data 文件夹中创建一个 project-des.md 文件,存储个人项目板块的介绍文字,例如:

Below are my personal projects made in my free time.

你当然可以使用 MarkDown 风格。

“关于我”板块配置

你需要提供一个存储着“关于我”页面的内容的 MarkDown 文档来配置该板块。就像写博客一样,你可以在这个文档中添加一些你的介绍。

哦对了,文件名是 about.md ,存储在 data 文件夹中。

友链配置

VueBlogger 支持添加友链。添加 /posts/data/links.json ,内容格式如下:

{
  "links": [
    {
      "title": "链接目标网站名称(或标题)",
      "desc": "链接目标网站介绍",
      "link": "链接"
    }
  ]
}

当然,如果你不想有友链,将 links 数组设为空( [] )即可。

写作

你可以使用 MarkDown 格式进行写作,并将每个博客存储在 /posts/ 中。至此,/posts/ 的目录结构如下:

posts                             
├─ data                           
│  ├─ about.md                    
│  ├─ config.json                 
│  ├─ posts.json                  
│  ├─ project-des.md              
│  └─ projects.json               
├─ post-1-title.md                      
├─ post-2-title.md              
├─ post-3-title.md                  
└─ post-4-title.md 

对,多了个 /posts/data/posts.json 。这个文件是所有配置文件中核心中的核心——存储着所有对外可见的博客信息。它的格式如下:

{
  "posts": [
    {
      "title": "VueBlogger: A simple blogging site for Vue", // 博客标题  
      "tags": [
        "Vue.js",
        "project",
        "frontend"
      ], // 博客标签  
      "cover": "https://dev-to-uploads.s3.amazonaws.com/i/95lvt23xz4ozer5byomi.png", // 博客封面图片链接 
      "des": "There isn't really a simple blogging tool for Vue. VuePress works, but it's to complicated. So for that purpose, I developed this light-weight blogging site for Vue: VueBlogger.", // 博客简介  
      "date": [ // 博客发布日期 
        2021, // 年 
        10, // 月 
        6 // 日 
      ],
      "id": "blogue" // 博客正文文件名称(不包含 `.md` 后缀)
    }
  ]
}

对了,一定要注意博客的 id 字段是博客文件的文件名 (不包含 .md 后缀),而不是博客的标题。

错误的配置可能会导致一个 404 Not Found 错误。所以,每次你要发布新博客时,一定要记得更新 posts.json ,否则你的博客将不会显示出来!

部署

在部署到线上站点前,请先在本地运行 npm run serve (或 yarn serve )来检测自己的配置是否正确。

目前,VueBlogger 仅支持在 GitHub Pages 上自动部署。

GitHub Pages

首先,请确保你的 GitHub 账户下有一个名为 <your-username>.github.io 的空代码仓库(<your-username> 替换为你的用户名)。若没有,请自行创建。

然后,运行下列命令:

$ source ./publish.sh

耐心等待若干分钟,你的博客将会在 <your-username>.github.io 上出现。

其他部署平台

如果你不使用 GitHub Pages ,你可以手动部署。

首先,在本地构建你的博客:

$ npm run build # 或 yarn build

然后,你可以使用 /public 文件夹下的文件进行手动部署。

结语

做这个项目的初心很简单,就是做一个好用的博客。也希望大家能够喜欢这个项目,并通过点赞、收藏、关注来支持我!

最后,奉上英文文档与 GitHub 仓库!

Demo: samzhangjy.github.io

GitHub: https://github.com/samzhangjy/VueBlogger

Please star or fork to support me!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容