群辉网络系统显示百兆100Mb/s导致内网速度最高10M多点

开始以为是网线问题换了三根网线 没有解决问题.

最后搜索关于千兆网卡系统里识别为百兆的问题

http://www.gebi1.com/forum.php?mod=viewthread&tid=243191&_dsign=43fe5d97

ETHTOOL_OPTS="speed 1000 duplex full autoneg off",

这个也添加了通过winscp root权限添加.root昨天密码修改 密码生成器的密码

生成的密码没有记录.

又搜索winscp查看密码 可以 https://www.zixuekong.com/147.html

打开我的winscp懵逼 根本没有保存.尝试用ssh登陆 发现root用 admin密码可以登录.

ETHTOOL_OPTS="speed 1000 duplex full autoneg off",这个改了 还是百兆.然后开机箱查看主板型号 顺道看看内存是ddr3 还是ddr4 昂达h110 5.0主板.pc17000 内存

到京东一看.https://item.jd.com/100006897883.html?cu=true&utm_source=www.linkstars.com&utm_medium=tuiguang&utm_campaign=t_1000089893_156_0_184__fec8ac4323720e11&utm_term=3b297cc97d384d9b8153aa40cc047768

明白了.百兆网卡.

搜索发现有usb的千兆免驱动网卡 买个试试.40多元 deiyu牌子好像.

群辉登陆ssh 修改apache2.4 httpd24.conf 文件

缘起 安装h5ai 没有成功。运行环境都没有问题。

如图全绿

设置默认首页

我们在默认打开的时候是一个登陆界面,我们这个页面可以修改掉,或者在默认首页设置首选项调整。

备注:这里需要注意,下面是设置首选项,这里用到的是_h5ai二级目录,我们可以根据自己的实际情况,设置二级目录,或者根目录调整。

1、Apache httpd

DirectoryIndex  index.html  index.php  /_h5ai/server/php/index.php

这个我们需要在.htaccess设置首选项。

2、lighttpd

index-file.names += ("index.html", "index.php", "/_h5ai/server/php/index.php")

设置lighttpd.conf

3、Nginx

index  index.html  index.php  /_h5ai/server/php/index.php;

在我们当前站点的.conf文件中设置首选项。

4、Cherokee

vserver!1!directory_index = index.html,index.php,/_h5ai/server/php/index.php

cherokee.conf文件中设置。

其他的设置一般都是默认的,如果我们需要其他个性化设置需要到conf/options.json中调整。

Apache httpd 这个是修改运行环境 Apache httpd的文档。我的是apache2.4 需要ssh到群辉里面。修改。群辉套件只能看到安装了apache2.4 无法设置它。必须ssh。

本人阿唯原创,欢迎转载,首先这个教程只是针对PHP开发者,其他用户不必观看此教程,谢谢

在群晖中安装了Web Station和Apache2.2/2.4 以及PHP5.6和MariaDB还有phpMyAdmin,至此已经搭建了一个简单的LAMP
在Web station中目前是可以修改PHP的环境变量,但是Apache的httpd.conf是配置不了的,默认情况,我们搭建好一个WEB网站,Apache是区分URL大小的,这时候我们就需要修改httpd.conf配置文件来关闭区分大小写,下面我们要用SSH来进行连接修改,玩过路由器的都知道这个工具,简单的说就是通过SSH连接到群晖设备直接进入他的Linux系统来修改文件。

一,使用putty工具获取root权限
因为httpd.conf是只读权限,所以这里用你的admin账号是修改不了的,此时要获取root权限,群晖DSM6.1此时还有效能修改。
1.下载软件putty
2.输入admin
3.输入你的密码(这里输入的时候密码框是没提示的,你管你自己输入即可)
4.登录成功后,再输入sudo su -
5.再次输入admin的密码
6.synouser --setpw root 要修改的面
OK,此时你已经修改了root超级账号的密码了

二,下载SecureCR软件进行修改
1.然后我们打开这个SSH软件,使用刚才修改好的ROOT账号来登录
2.咱们只要知道2个命令即可,第一个是ls这个是查看目录的意思 第二是vi这个是打开文件编辑的意思
3.vi  /volume1/@appstore/Apache2.2/usr/local/etc/apache22/conf/httpd22.conf
直接打开httpd22.conf文件,我们安装的套件位置都是一样的,如果以后DSM系统有改变
你可以使用ls命令来查看目录,如ls /volume1/@appstore/ 这样你就可以看到app软件包下的软件目录了,自己可以用ls依次展开查看
4.打开了httpd22.conf文件后,再按一下i进入编辑模式,然后使用小键盘上下左右进行移动操作
5.咱们只要修改2个地方,第一,增加模板加载LoadModule speling_module modules/mod_speling.so如图所示,第二,在Directory 里面插入个值CheckSpelling On
然后按下Esc退出编辑,再按住Shift+ : 进入命令输入模式,输入wq!  保存退出,修改完毕后,在套件中停用Apache再启动即可
群晖通过SSH/ROOT修改Apache的httpd关闭区分URL大小写步骤教程 智能生活 , 上那是云 2.jpg/>
此时大功告成,可以通过http://url/phpmyadmin 或http://url/phpMYADMIN进行访问了

securecrt 这个是类似dos界面用cd ls vi指令访问 对我来说不方便 比如 我用ls /volume1/@appstore/ 可以看到apahe2.4 但是用cd /volume1/@appstore/apache2.4 却抵达不了。不知道是不是权限问题。

连上SSH后用admin帐号登录

然后sudo -i 回车

输入admin密码

chmod 7777 /etc/ssh/sshd_config 回车

按一下【i】 进入修改状态(括号不用,下同)

修改PermitRootLogin项的withou-password改为yes,并取消前面的注释
在这里插入图片描述

修改完毕后。按键盘上的 ESC 再按 【: w q !】 然后回车

重启SSH服务servicessh restart。这一步也可以通过关闭再开启群晖的SSH选项来完成

这段withou-password 不用密码?还修改config的权限。

看到这个人用这个可视化的软件感觉方便一点。不用测试你输入的代码的有效性了。

修改root密码

  • 还是用admin来登录
  • 然后sudo -i 回车
  • 输入admin密码
  • 输入 synouser --setpw root xxx (xxx是你打算要修改的root的密码)回车

使用root账户winscp连接

  • 不多BB,直接用root帐号和刚刚改好的root密码登录
    在这里插入图片描述
  • 效果
    在这里插入图片描述

如果还不行怎么办

  • 进入群晖,点击高级设置
    在这里插入图片描述
  • 选择低
    在这里插入图片描述
  • 再试,不行就再重启,再试!

至此如果能完全控制环境文件。群辉可以直接用套件的运行环境安装程序。用docker镜像感觉占用内存多。同样的环境没有重复用 而是单独环境用。浪费资源哈。

docker 安装 filerun遇到的问题

filerun运行环境设置略微复杂.最后选择了docker安装.发现还要重复安装mysql.打算凭着自己理解的代码程序 用群晖套件里面已经安装phpadmin的mariadb.的mysql.发现不能成功关联到localhost.改了四五次,环境设置 无法启动.最后按照官方的教程用docker里面的mysql.就成功启动.

http://blog.filerun.com/how-to-install-filerun-on-synology-dsm-nas-using-docker-2/

How To Install FileRun on Synology DSM NAS using Docker

docker效率高.就是镜像占用空间多一些.占用内存高一些.如果不懂逻辑.不能复用一些基础的套件.比如mysql php之类的.就可能同一个版本装了不少个.目前还没有看到大神的docker安装filerun的教程可能官方这个太好用?

上传速度不错.10M左右 两边都是200M联通.filerun自带解码?还是电脑解码?观看dsmcpu占用不高.

docker系统和vm虚拟机系统优劣比较

才开始我看8100用emby 套件和docker转码帧率比价。docker72帧 。套件群晖自带emby 好像这个软件。73帧率。以为docker也是个虚拟机。后来今天打算 装一个file run 发现需要增加php的扩展套件。然后去搜索群晖增加php扩展套件。发现一堆linux命令行。不是很方便。手动安装:参考这篇文章。https://www.daniao.org/4541.html 宝塔面板-安装功能强大的文件管理器FileRun的详细教程

发现宝塔面板不错。搜索群晖安装宝塔。靠前大多数都是docker安装宝塔面板。虽然docker安装也是一对代码。但是看上去至少有教程了。

最后搜索Docker与VM虚拟机的区别以及Docker的特点 https://blog.csdn.net/jingzhunbiancheng/article/details/80994909

如何看待docker容器与虚拟机之间的比较

https://blog.csdn.net/AlbenXie/article/details/73478897?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control

最后决定安装docker宝塔面板 再部署软件。docker多应用感觉就是费内存。

安装docker面板宝塔 起源 要测试三个dir 本来觉得zdir不错。但是咱用软件不会只看一个。都是比较后选择最复杂的哈哈。zdir 演示界面 https://wget.ovh/?c=cache 中文免费。简单。

file run 演示界面 https://filerun.com/demo 复杂 很厉害的感觉

h5ai 演示界面 https://larsjung.de/h5ai/demo/ 中等简洁

https://demo.directorylister.com/ directorylister.com 演示界面。 简洁

https://www.laozuo.org/6300.html 5款简单实用的免费目录列表程序(Directory Lister)演示及下载

http://www.junwen.bid:2200/index.php?dir=/var 阿蚊菌的演示。

群晖外网访问photo station 公网ip 有域名

moment 好像不行。没有测试。好像的用dsm的账号。登录dsm才行。photo station 简称 群晖ps 。其实也是用子帐号登录。我给弟弟设置了子帐号。能登陆查看到照片。也能管理创建上传。权限可以设置定义。还行。

http://blog.cloudtopsky.com/101/

这个博客的方法收到启发。简单一步完成。web station photo station端口一样。之前用tt-rss 映射过端口。直接用就行域名:端口/photo文件夹 就ok.比较简单.

wordpress 群晖安装 更新插件 需要ftp账号密码

1.更新/安装插件/安装主题时需要输入FTP账号密码。不用群晖的wordpress套件,就是为了升级方便。这样安装的话,就可以自动显示出最新版本和升级按钮。不过在安装成功之后,会遇到更新站点、主题和插件时,出现输入FTP账号密码问题。其实这个是php没有取得写入权限的问题。解决办法就是打开wp-config.php,在最后添加一段代码:

1234/** 更新需要FTP地址的解决办法 */define("FS_METHOD","direct");define("FS_CHMOD_DIR", 0777);define("FS_CHMOD_FILE", 0777);
QQ图片20190308162807
https://www.chrno.cn/wp-content/uploads/2019/03/201903080832594.png
https://www.chrno.cn/wp-content/uploads/2019/03/2019030808335157.png

今天想换主题 想起这个问题。没想到一下子就解决了。感谢 https://www.chrno.cn/nas/221.html/comment-page-3#comment-1299 博客作者。

自组群辉安装ttrss和rsshub

rsshub安装简单。rsshub主要用来烧制订阅源。就和之前feedburner之类的。rsshub可以订阅豆瓣 bilibili 国内很多网站。

订阅用inoreader。阅读的话 reeder feedly 都可以。

ttrss安装遇到的小问题。记录一下。数据库连接的时候遇到错误 无法返回 返回记录x

数据库类型选择错误。之前遇到过host name db 错误 这次是这个小问题。

外网访问ttrss地址。这个地方修改多次。各种组合,端口也映射了。

但是始终域名加端口方式无法访问 ttrss。最后发现问题。端口映射错误。端口要映射到80端口。ttrss 没有定义端口。咱也不会直接定义。按照这个下面知乎这个思路 知乎这个文章超长。外网访问达成。

在配置 QuickConnect ID 后,还需要修改 Tiny Tiny RSS 目录下的配置文件 config.php。将其中的 define('SELF_URL_PATH', 'http://内网IP:80/rss/'); 地址修改为 define('SELF_URL_PATH', 'http://ID.myds.me:80/rss/');,这样才能进行外部访问。

作者:沨沄极客
链接:https://www.zhihu.com/question/31480960/answer/386367754
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后docker也有安装ttrss的设置。但是总感觉docker占用内存多。之前看 阿文菌 8100 emby 转码用套件版本和docker版本对比 帧率一个72 一个73 区别不大。

zip安装感觉回到从前

最后参考文章:https://blog.csdn.net/zszeng/article/details/40866161 群辉NAS搭建RSS阅读器教程

https://www.zhihu.com/question/31480960

https://cyhour.com/479/ OneinStack 搭建 LNMP 安装 Tiny Tiny RSS

https://zhuanlan.zhihu.com/p/126498876 威联通TS-212P3安装ttrss和rsshub过程

群晖安装记录

群晖老早看阿文君的制作过程 ds216还是ds918的 u盘做好。昂达主板h110M cpug3930 启动不了。遂只做了ds3617的群晖系统启动u盘。

等待hc320西部数据的hgst 8T 硬盘降价。老早听说硬盘内存降价。但是波动很小。1080 慢慢降到双十一的938 估计还会降。入手。准备光驱位硬盘架。机箱调整成之前的一个闲置有光驱位的机箱。也是小机箱。这个新机箱硬盘都是装在机箱侧板。感觉不稳定 震动大。

阿里域名双十一当天也忘记续费了。后来续费发现69每年。com 。又续费一年。一年的续费吧。之前十年还有优惠。域名可以配合路由器做ddns解析。发现ddwrt不支持阿里ddns。参考了华硕路由的配置。没有什么作用。

查看各种ddns。发现群晖的docker里面有镜像可以实现这个服务。安装了三种。发现sanjusss不错 日志print的内容有用一些。似乎能推荐端口号。

ddns实现。telnet 域名:端口 出现新的窗口 就是解析成功。好几天不能外网访问。去nasyun 发帖也没有人回复。等了2天。去nasyun淘宝店发现 ddns解析服务操作费30.00起。忍了忍还是继续研究吧。理清楚思路。发现ddns解析好了。就差端口转发。

之前看了很多人说ddwrt的端口转发。有人说 0.0.0.0/端口 两者 192.168.1.73/端口 发现不行

有人说要开启dmz 然后端口转发 然后端口触发

有人说不要开启dmz 端口转发 端口触发 关闭路由器的防火墙.第二天路由连不上网了.重启了几次.才连上.

有人说以上操作不行 就得输入一个防火墙命令 路由不稳定 断线.

理清思路.6300v2 reset按键30秒 重置路由.ppoe 无线 之类的基础设置好.就设置了一个端口转发 .还专门查了一下端口转发 ddwrt需要重启路由吗 答曰 需要 重启路由 后来发现端口转发 ddwrt 不需要重启路由. 至此ddns 端口转发成功 域名/端口 可以登录ds3617后台.

参考:https://www.ioiox.com/archives/44.html  群晖NAS高级服务 - 配置反向代理为DSM,各套件及docker应用提供Web服务

https://www.ioiox.com/archives/86.html

群晖NAS使用 docker 部署 frps 实现直连内网远程办公

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=sanjusss%20liyun&oq=sanjusss&rsv_pq=e6e52167000261ae&rsv_t=a0afGwEmriTZ8Y4nMzq9dbubnNt7G06vEpCddS0bKUXaEFL9Xek1aVaG2L8&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_sug3=7&rsv_sug1=2&rsv_sug7=100&rsv_sug2=0&rsv_btype=t&inputT=2530&rsv_sug4=4127

https://zhuanlan.zhihu.com/p/94361004

https://koolshare.cn/forum.php?mod=viewthread&tid=144323&extra=&highlight=dns&page=1

黑群晖初步完成 可以外网访问了

等hc320  8t 空气盘特价 淘宝 双十一938 买了.比之前hgst  4t  1099的便宜不少.老早就说内存硬盘降价  但是太慢.内存是看到32g 399  369  什么值得买推荐的.我还是看看科赋之类的.cjr颗粒的.虽然都是终身质保.但是维修也要好几天不能用.但也不一定.反正咱不超频.继续观望.32g还是看着爽~

smzdm做功课.氦气盘 性能不错  也省点电 .但是就是贵一些.还有就是担心氦气泄露.先观察吧.需求大再买氦气.

nas 用处很多.视频剪辑,电影,搭建web都可以的.参考一下帖子 .逐步完成.遇到什么问题就百度就ok.

cpu 赛扬还是奔腾 双核.3930 好像是这个.待机功耗30瓦左右

黑群晖 群晖DS918+ 这个我的主板cpu不支持.做好启动盘.启动不了.重复几次都是如此.https://post.smzdm.com/p/ar0v2on7/

最后安装群辉 3617固件的固件  https://post.smzdm.com/p/ag82zdd3/https://post.smzdm.com/p/ag82zdd3/

可能帖子吧.此处省略无数图.和字.

然后有阿里域名.需要ddns和端口转发.ddwrt 路由器的教程真少.

最后还是找到了.一些 启发一点  https://www.moonfly.net/archives/10.html 都有用.

用到dmz 和端口转发 还有ddns  三个设置. https://blog.csdn.net/killerboy/article/details/1719429

 

 

使用 GitHub, Jekyll 打造自己的独立博客 程序猿的fecebook

使用 GitHub, Jekyll 打造自己的独立博客

使用 GitHub, Jekyll 打造自己的独立博客

GitHub 是一个代码托管网站,现在很多开源项目都放在GitHub上。 利用GitHub,可以让全球各地的程序员们一起协作开发。GitHub 提供了一种功能,叫  GitHub Pages , 利用这个功能,我 们可以为项目建立网站,当然,这也意味着我们可以通过 GitHub Pages 建立自己的网站。

Jekyll 是一个简单的,针对博客设计的静态网站生成器。使用 GitHub 和 Jekyll,我们可以打造自己的独立博客,你可以自由地定制网站的风格,并且这 一切都是免费的。

这是我在GitHub上自己建立的 博客  及 源代码  (两个分支),在下文的讲解中,你可以随时查看博客的源代码,以便有直观的认识。

网站截图:

GitHub Pages 的  主页  提供了一个简单的入门指引,阅读并 操作一下,会有一个直观简单的认识。

阮一峰的文章《 搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门》是使用 GitHub 和 Jekyll 搭建独立博客非常好的入门文章, 强烈建议先阅读并操作一遍 。

在学习完阮一峰同学的文章后,你就已经有能力搭建自己的独立博客了,但是这个博客 只有最基本的功能,并且也不好看。这时候,你面临几个选择:

  1. 完全自己定制博客
  2. 找一份框架,修改后使用
  3. 从GitHub上fork别人的博客代码,在其中添加自己的文章

如果选择 2, 那么  jekyll-bootstrap 是一个选择。 如果选择 3, 那么自己Google一下  github.io 博客  能找到不少博客,去fork,然后修改一下就好。 如果选择 1, 那么可以好好看看后文的内容。

  • 机制一 简单地说,你在 GitHub 上有一个账号,名为 username (任意), 有一个项目,名为  username.github.io (固定格式,username与账号名一致), 项目分支名为  master (固定),这个分支有着类似下面的 目录结构:
.
├── index.html
├── _config.yml
├── assets
│   ├── blog-images
│   ├── css
│   ├── fonts
│   ├── images
│   └── javascripts
├── _includes
├── _layouts
├── _plugins
├── _posts
└── _site

这样,当你访问  http://username.github.io/ 时,GitHub 会使用 Jekyll 解析 用户  username 名下的 username.github.io 项目中,分支为 master  的源代码,为你构建一个静态网站,并将生成的  index.html  展示给你。

关于这个目录更多的内容,我们还不需要关心,如果你好奇心比较重,可以先看 后文 源代码 一节。

看完上面的解释,你可能会有一些疑问,因为按照上面的说法,一个用户只能有一个 网站,那我有很多项目,每个项目都需要一个项目网站,该怎么办呢?另外,在阮一峰 同学的文章中,特别提到,分支名应该为  gh-pages ,这又是怎么回事呢?

原来,GitHub认为,一个GitHub账号对应一个用户或者一个组织,GitHub会 给这个用户分配一个域名: username.github.io ,当用户访问这个域名时, GitHub会去解析 username 用户下, username.github.io 项目的 master 分支, 这与我们之前的描述一致。
另外,GitHub还为每个项目提供了域名,例如,你有一个项目名为 blog , GitHub为这个项目提供的域名为 username.github.io/blog , 当你访问这个域名时,GitHub会去解析 username 用户下, blog 项目的 gh-pages  分支。

所以,要搭建自己的博客,你可以选择建立名为  username.github.io 的项目, 在 master 分支下存放网站源代码,也可以选择建立名为  blog  的项目,在  gh-pages 分支下存放网站源代码。

GitHub 的 Help 文档中的  User, Organization and Project Pages 对此有 详细的描述。

  • 机制二

Jekyll 提供了插件功能,在网站源代码目录下,有一个名为  _plugins 的目录, 你可以将一些插件放进去,这样,Jekyll在解析网站源代码时,就会运行你的插件, 这样插件是 Ruby 写成的。可以为Jekyll添加功能,例如,Jekyll默认是不提供分类 页面的,你可以写一个插件,根据文章内容生成分类页面。如果没有插件,你只能每 次写文章,添加分类时,为每个分类手动写 HTML 页面。

在本地运行 Jekyll 时,这些插件会自动被调用,但是GitHub在解析网站源代码时, 出于安全考虑,会开启安全模式,禁用这些插件。我们既想用这些插件,又想用 GitHub,怎么办呢怎么办呢?

GitHub还为我们提供了更一种解析网站的方式,那就是直接上传最终的静态网页, 这样,我们可以在本地使用 Jeklly 把网站解析出来,然后再上传到 GitHub上, 这就使得我们既使用了插件,又使用了 GitHub。在上文的目录结构中,有一个 名为  _site 的目录,这个就是Jeklly在本地解析时最终生成的静态网站,我们 把其中的内容上传到 GitHub 的项目中就可以了。例如,我在GitHub上的网站, 既解析后的  _site  目录,大概是这样的:

.

├── index.html
├── 2013
├── 2014
├── assets
├── categories
├── page2
├── page3
├── page4
├── 工具
├── 思想
├── 技术
└── 源代码阅读

其中的  categories20132014  目录就是分类插件和归档插件帮助我生成的, 我只要把这个目录下的内容上传到 GitHub 相应的项目分支中就可以了。这样,你 访问  username.github.io 时,GitHub就不解析了,直接把 index.html 返回给你了。

关于 git 和 jekyll 的安装与基本使用,这里就不多说了。

  • 工作流一

如果你不使用插件,那么只需要维护一个分支就好:

- username/username.github.io 的 master 分支
- username/blog 的 gh-pages 分支

其中  username  是你的 GitHub 帐号。

你需要在本地维护一份网站源代码,添加新文章后,使用 jekyll 在本地测试一下, 没有问题后,commit 到 GitHub 上的相应分支中就可以了。

  • 工作流二

如果你需要使用插件,那么需要维护两个分支,一个是网站的源代码分支,另一个 是 Jeklly 解析源代码后生成的静态网站。

例如,我的源代码分支名为  master ,静态网站分支名为  gh-pages 。平时写博客时, 首先在 master 分支下,添加新文章,然后本地使用 jekyll build 将添加文章后的网站 解析一次,这时  _site  目录下就有新网站的静态代码了。然后把这个目录下的所有内容 复制到  gh-pages  分支下。这个过程,可以写一个 Makefile,每次添加文章后 make 一下, 就自动将文章发布到 GitHub 上。

Makefile 内容如下:

deploy:
    git checkout master
    git add -A
    git commit -m "deploy blog"
    cp -r _site/ /tmp/
    git checkout gh-pages
    rm -r ./*
    cp -r /tmp/_site/* ./
    git add -A
    git commit -m "deploy blog"
    git push origin gh-pages
    git checkout master
    echo "deploy succeed"

下面的内容涉及源代码,如果需要进一步学习,或者有问题,可以在  Jeklly 官网上找到更详细的解释,或者在评论中留言。

再来看一下这个目录结构:

.
├── _config.yml
├── index.html
├── assets
│   ├── blog-images
│   ├── css
│   ├── fonts
│   ├── images
│   └── javascripts
├── _includes
├── _layouts
├── _plugins
├── _posts
└── _site
  • _config.yml

这是针对 Jekyll 的 配置文件 , 决定了 Jekyll 如何解析网站的源代码,下面是一个示例:

baseurl: /StrayBirds
markdown: redcarpet
safe: false
pygments: true
excerpt_separator: "\n\n\n"
paginate: 5

我的网站建立在  StrayBirds  项目中,所以  baseurl  设置成  StrayBirds , 我的文章采用 Markdown 格式写成,可以指定 Markdown 的解析器  redcarpet 。 另外,安全模式需要关闭,以便 Jekyll 解析时会运行插件。  pygments  可以使得Jekyll解析文章中源代码时加入特殊标记,例如指定代码类型, 这可以被很多 javascript 代码高度库使用。  excerpt_separator  指定了一个摘要分割符号,这样 Jekyll 可以在解析文章时, 将文章的提要提取出来。 paginate 指定了一页有几篇文章,页数太多时,我们可以将文章列表分页,我们在 后文还会提到。

  • _layouts

这个目录存放着一些网页模板文件,为网站所有网页提供一个基本模板,这样 每个网页只需要关心自己的内容就好,其它的都由模板决定。例如,这个目录下的 default.html 文件:

{% raw %}
<!DOCTYPE html>
<html>
  <head>
    <meta charset='utf-8'>
    <title>{{ page.title }}</title>
  </head>
  <body>
    <header>
    </header>

    <aside>
    </aside>

    <article>
{{ content }}
    </article>

    <footer>
    </footer>
  </body>
</html>
{% endraw %}

可以看出,这个文件就是所有页面共有的东西,每个页面的具体内容会被填充在 {{ content }}  中,注意这个 content 两边的标记,这是一种叫  liquid  的标记语言。 另外,还有那个  {{ page.title }}  ,其中  page  表示引用 default.html 的 那个页面,这个页面的  title  值会在  page  相应页面中被设置,例如 下面的  index.html  文件,开头部分就设置了  title 值。

  • index.html

这是网站的首页,访问  http://username.github.io  时,会指向 http://username.github.io/index.html ,我们看一下基本内容:

---
layout: default
title: 首页
---

{% raw %}
<ul class="post-list">
    {% for post in site.posts %}
        <a href="{{site.baseurl}}{{post.url}}"> {{ post.title }}  </a> <br>
        {{ post.date | date: "%F" }} <br>
        {{ post.category }} <br>
        {{ post.excerpt }} 
    {% endfor %}
{% endraw %}
</ul>

注意,文件开头的描述,我们称之为  front-matter , 是对当前文件的一种描述,这里 设置的变量可以在解析时被引用,例如这里的  layout 就会告诉 Jekyll, 生成 index.html  文件时,去  _layouts  目录下找  default.html  文件,然后把当前文件解析后,添加到  default.html  的  content  部分,组成最终的 index.html  文件。还有 title  设置好的 值,会在  default.html  中通过 page.title  被引用。

文件的主体部分遍历了站点的所有文章,并将他们显示出来,这些语法都是 liquid  语法, 其中的变量,例如  site , 由 Jekyll 设置我们只需要引用就可以了。而  post  中的变量, 如  post.titlepost.category  是由  post  文件中的 front-matter 决定,后面马上就会看到。

  • _posts

这个目录存放我们的所有博客文章,他们的名字有统一的格式:

YEAR-MONTH-DAY-title.MARKUP

例如,2014-02-15-github-jeklly.md,这个文件名会被解析,前面的  index.html 中,  post.date  的值就由这里文件名中的日期而来。下面,我们看看一篇文章的内容示例:

---
layout: default
title: 使用 Markdown
category: 工具
comments: true
---

# 为什么使用 Markdown

* 看上去不错  
* 既然看上去不错,为什么不试试呢  

# 如何使用 Markdown

可以看出,文章的 front-matter 部分设置了多项值,以后可以通过类似 post.titlepost.category  的方式引用这些些,另外, layout 部分的值和之前解释的一样, 文件的内容会被填充到  _layouts/default.html  文件的 content  变量中。

另外,文章中  为什么不试试呢 之后的有三个不可见的  \n ,它决定了这三个 \n  之前的内容会被放在  post.excerpt  变量中,供其它文件使用。

  • _includes

这个文件中,存放着一些模块文件,例如  categories.ext ,其它文件可以通过

{% raw %}
{% include categories.ext %}
{% endraw %}

来引用这个文件的内容,方便代码模块化和重用。我的博客  主页 上的 分类,归档,这些模块的代码都是通过这种方式引用的。

  • _plugins

这个文件中存放一些Ruby插件, 例如  gen_categories.rb ,这些文件会在 Jekyll 解析网站源代码时被执行。下一节讲述的就是插件。

  • _site

Jekyll 解析整个网站源代码后,会将最终的静态网站源代码放在这里

插件使用 Ruby 写成,放在 _plugins 目录下,有些 Jekyll 没有的功能,又不能 手动添加,因为页面的内容会随着文章日期类别的不同而不同,例如分类功能和归档功能, 这时,就需要使用插件自动生成一些页面和目录。

  • 分类 我的分类插件使用的是  jekyll-category-archive-plugin , 它会根据网站文章的分类信息,为每个类别生成一个页面。

使用方法是,把  plugins/category archive_plugin.rb 放在  plugins 目录下, 把 _layouts/category archive.html 放在  layouts 目录下, 这样,这个插件会在Jekyll解析网站时,生成相应categories目录,目录下是各个分类, 每个分类下都有一个 index.html  文件,这个文件是根据模板文件 category archive.html 生成的,例如:

_site/categories/
├── 工具
│   └── index.html
├── 思想
│   └── index.html
├── 技术
│   └── index.html
└── 源代码阅读
    └── index.html

然后,你就可以通过  http://username.github.io/blog/categories/工具/ 访问  工具 类下的  index.html  文件。

  • 归档 我的归档插件使用的是  jekyll-monthly-archive-plugin ,它会根据网站 _posts目录下的文章日期,为每个月生成一个页面。

使用方法同上。注意,这个插件在 jekyll-1.4.2 中可能会出错,在 jekyll-1.2.0 中没有错误。

  • 分页

当文章很多时,就需要使用分页功能,在 Jekyll 官网上提供了一种  实现 ,把相应代码放在 主页上,然后在  _config.yml  中设置  paginate  值就行了。

  • 评论

评论功能需要使用外挂,我使用的是  DISQUS , 注册 之后,将评论区的一段代码放在你需要使用评论功能的页面上, 然后,通过在页面的 front-matter 部分使用

comments: true

启用评论。

评论区截图:

基本的内容就介绍到这里,任何问题,欢迎留言。