Skip to content

Latest commit

 

History

History
246 lines (181 loc) · 10.1 KB

README_CN.md

File metadata and controls

246 lines (181 loc) · 10.1 KB

PyBlog

类似于jekyll的java语言开发的静态博客系统

English | 中文

TOC

开始

快速指南

  1. 下载pyblog.tar.gz
  2. 解压
  3. 运行start.sh文件 ./start.sh
  4. 打开浏览器 http://localhost:4000/ 即可

注意

关闭服务:./shutdown.sh

如果 ./start.sh./shutdown.sh 运行失败,需要查看一下文件的权限,授权命令:chmod a+x start.sh shutdown.sh

安装环境

pyblog只需要一个java运行环境,关于java运行环境怎么配置的问题相信 百度/Google 会找到很多文章,按照文章内容操作一下即可

只需要保证 java -version 能出现java的版本号即可

推荐使用java8版本

基本用法

启动服务,然后将博客文件放入 _posts 即可自动发布博客

关于配置信息请看下面的配置说明

目录结构

├── application.yml
├── _posts
│   └── 2017-07-12-hello-world.md
├── pyblog.jar
├── shutdown.sh
├── _sites
├── start.sh
├── static
└── templates
名称 解释
application.yml pyblog唯一配置文件,配置站点的各种信息
_posts 博客原文件存放位置,在application.yml里可以配置成其它名字
pyblog.jar 主程序,无需关注
shutdown.sh 关闭服务脚本
_site 发布的静态页面存放位置
start.sh 启动服务脚本
static 模板文件里使用的静态文件存放位置
templates 模板文件存在位置,可以添加自己喜欢的其它模板,生成不同风格的博客

配置

名称 解释
server.port 服务端口
debug 是否为开发模式,如果是的话,那么修改 templates 下的文件会即时更新博客页面,仅在开发博客模板的时候开启
theme 主题(既博客模板)默认是default(default模板位于pyblog.jar里,无法修改),可以添加自己喜欢的其它模板,生成不同风格的博客
url 站点访问地址,后面不带 /,否则博客链接中会出现 // 的现象
permalink 博客链接风格,默认为 /:year/:month/:day/:title/ 也就是 _posts 文件夹里文件名字里的 年/月/日/标题,请务必写成这样的形式,以防发布的博客页面被覆盖的现象发生
excerpt_separator 博客原文里分割出的摘要,在博客列表里展示用的,默认为四次换行
page_size 博客列表每页显示的条数
post 博客原文存放文件夹的名称
static_html 发布的静态页面存放位置名称
page 是否使用分页
rss 是否生成feed.xml
links.xx 友情链接,跟base配置一样,可以写任何内容,在模板里直接通过 ${_site.links.xx}取值展示就可以了
contacts.xx 博主的联系方式,跟base配置一样,可以写任何内容,在模板里直接通过 ${_site.contacts.xx}取值展示就可以了
analytics.xx 博客访问统计方式,跟base配置一样,可以写任何内容,在模板里直接通过 ${_site.analytics.xx}取值展示就可以了
comment.xx 博客评论方式,跟base配置一样,可以写任何内容,在模板里直接通过 ${_site.comment.xx}取值展示就可以了
other.xx 其它变量,可自行配置,跟base配置一样,可以写任何内容,在模板里直接通过 ${_site.other.xx}取值展示就可以了

博客内容

头信息

要求: 按照 YAML 的格式写在两行三虚线之间,下面是一个基本的例子:

---
title: hello world
---

在这两行的三虚线之间,你可以设置预定义的变量,变量有以下几种:

名称 解释
title 博客标题,必需
date 博客日期,如果没有,以博客文件前的日期为博客发布的日期
author 博客发布者名称
tags 博客的标签,以空格分割,可以写多个
categories 博客的分类,以空格分割,可以写多个

注意,博客文件请使用UTF-8编码格式

编写博客

博客文件名称必须要按照 年-月-日-标题.md 的格式来命名

博客文章包含头信息 + Markdown标记语法的内容,你完全可以放心的使用markdown语法来编写博客,而且现在也只支持markdown语法

博客内容里加上配置文件里配置的 excerpt_separator 的内容会分割出博客摘要,在模板里可以使用 ${blog.excerpt} 获取

个性化

模板

pyblog使用的模板为freemarker,模板文件放在templates文件夹里, 布局文件放在 templates/layout 里,布局文件不会参与生成静态页面

创建一个文件夹,名字不能为default,同时application.yml里的theme变量也要改成你创建的文件夹的名称 然后将模板文件放到你创建的文件夹里,比如:

templates/
└── default
    ├── 404.ftl
    ├── archive.ftl
    ├── blog.ftl
    ├── category.ftl
    ├── index.ftl
    ├── layout
    │   ├── footer.ftl
    │   ├── header.ftl
    │   ├── layout.ftl
    │   └── paginate.ftl
    └── tag.ftl

注意:archive.ftl, category.ftl, blog.ftl, index.ftl, tag.ftl 这几个文件的名称是固定的,不能修改成其它名字,其它文件名字可以自行定义,生成的页面就是你设置的文件名,后缀为html

例如:example.ftl -> example.html

这样就可以开发自己的模板了,风格可以完全自己定

提示,开发模板的时候开启debug模式可以实时的发布哦

模板静态资源文件

模板里要用到的静态资源文件请放在 static 文件夹里,然后在页面里直接引用就可以了

常用变量

开发模板的时候要用到的变量汇总

名称 解释
_site.theme 获取到使用的模板名
_site.url 站点的访问域名(后面不带/
_site.page_size 获取每页显示的博客条数
_site.page 获取是否使用分页
_site.links.xx 获取博客站点的友链信息,配置了什么就可以取什么
_site.contacts.xx 获取博主的联系方式,配置了什么就可以取什么
_site.analytics.xx 获取统计信息,配置了什么就可以取什么
_site.comment.xx 获取评论的配置信息,配置了什么就可以取什么
_site.other.xx 获取其它自定义的配置信息,配置了什么就可以取什么

常用模板标签

markdown

说明:将markdown语法的文本转成html语法的标签

参数:无

用法:

${markdown.pegDown(blog.content)}

blogs_tag

说明:获取所有博客的标签

参数:无

用法:

<@blogs_tag>
  <#list blogs as blog>
    <p>${blog.title}</p>
  </#list>
</#list>
</@blogs_tag>

对象结构

Blog

名称 类型 解释
title String 博客标题
excerpt String 博客摘要
content String 博客内容
url String 博客详情的访问链接,类似:/2017/07/11/hello-world/
date String 博客发布日期,如果头信息里没有写上date属性的话,就会取文件名字上的日期作为博客发布时间
author String 博客发布者
categories List 博客的类别
tags List 博客的标签
previous Blog 当前博客的上一篇
next Blog 当前博客的下一篇

Page

名称 类型 解释
pageNo int 当前页
pageSize int 每页显示的条数
list List 当前页的博客列表
firstPage boolean 是否是第一页
lastPage boolean 是否是最后一页
totalPage int 总页数
totalCount int 总条数