发布 jekyll 主题到 RubyGems

jekyll 官方主题打包&上传教程 EN jekyll 官方主题打包&上传教程 CN

发布主题只需要一个文件 xxx.gemspec 发布主题只需要一个文件 xxx.gemspec 发布主题只需要一个文件 xxx.gemspec

  1. 主题根目录新建一个 主题名(随意).gemspec 文件

文件内容: Gem::Specification.new do |s| s.name = ‘' s.version = '0.1.0' s.license = 'MIT' s.summary = '' s.author = '' s.email = '' s.homepage = 'https://github.com/jekyll/my-awesome-jekyll-theme' s.files = git ls-files -z.split("\x0").grep(%r{^_(sass|includes|layouts)/}) end

文件位置

布局文件 Layouts → /_layouts 文件夹中 包含文件 includes → /_includes 文件夹中

样式表

/_sass 文件夹中… 使用 @import 指令,用户能将您主题中的样式包含到他的样式表中。

用的css 放到这里????

README 文档

您的主题应当包含有一份 /README.md 文件, 其说明了类似这些内容,

比如, 用户该如何安装并使用您的主题? 里面有怎样的布局文件? 有哪些包含文件? 以及是否要对站点的配置文件做额外的修改?

附上一个截图

主题是一种视觉形象化的表达。为了向用户展示您主题的样式,您可以在主题的仓库(repository)中包含一个 /screenshot.png 的截图。因为在那儿您可以便捷地修改相关内容。同时,您也可以在主题的文档中附上主题的相关截图。

预览主题

在您制作主题的过程中,若想要预览它,那么向其加入一些假内容(dummy content)或许会对您有所帮助,比如 /index.html 和 /page.html 文件。这将允许您使用 jekyll build 和 jekyll serve 命令来预览您的主题,就像预览一个 Jekyll 站点那样。

发布主题

主题均通过 RubyGems.org 进行发布。 在这过程中会要求您拥有一个 RubyGems 账户。 当然,您可以 免费创建 一个账户。

1. 注册免费 RubyGems 账户

2. 打包主题。

把 my-awesome-jekyll-theme 替换成您主题的名字: gem build my-awesome-jekyll-theme.gemspec

打包实例

➜  2 git:(master) ✗ gem build CMS.gemspec
  Successfully built RubyGem
  Name: CMS-jekyll
  Version: 2.1.9
  File: CMS-jekyll-2.1.9.gem

3. 把主题包推送到 RubyGems 服务

把 my-awesome-jekyll-theme 替换成您主题的名字: gem push my-awesome-jekyll-theme-*.gem

推送实例

推送的时候会要求你输入 帐号密码的. 输入密码的时候不会显示的. ➜ 2 git:(master) ✗ gem push CMS-jekyll-2.1.9.gem Enter your RubyGems.org credentials. Don’t have an account yet? Create one at https://rubygems.org/sign_up Email: xx2610@gmail.com Password:

Signed in.
Pushing gem to https://rubygems.org...
Successfully registered gem: CMS-jekyll (2.1.9)

查看你的 gem

推送之后 就 登录 rubygems 搜索你的 gem名字 或者登录帐号查看.

安装测试 gem主题

安装主题 先要有 jekyll 目录的. 主题是安装在 jekyll 目录里的. jekyll 目录 有个 Gemfile文件 的. 这个文件前面是没有.的 不是隐藏文件. 也没有后缀

这个文件中 把 主题名字加上就可以了. 去网站 找到你的主题.右边会哟 gemfile 的 复制里面的内容.到 本地gemfile中 gem ‘jekyll-theme-CMS’, ‘> 2.2’, ‘>= 2.2.2’

让后执行 bundle install 来安装主题

最后 _config.yml 中加入下列代码来启用主题: theme: my-awesome-jekyll-theme

➜  3th git:(master) ✗ bundle instal
Fetching gem metadata from https://gems.ruby-china.org/...........
Fetching version metadata from https://gems.ruby-china.org/..
Resolving dependencies...
Using public_suffix 2.0.5
Using colorator 1.1.0
Using ffi 1.9.14
Using forwardable-extended 2.6.0
Using sass 3.4.23
Using rb-fsevent 0.9.8
Using kramdown 1.13.2
Using liquid 3.0.6
Using mercenary 0.3.6
Using rouge 1.11.1
Using safe_yaml 1.0.4
Installing jekyll-theme-CMS 2.2.2
Using bundler 1.13.6
Using addressable 2.5.0
Using rb-inotify 0.9.7
Using pathutil 0.14.0
Using jekyll-sass-converter 1.5.0
Using listen 3.0.8
Using jekyll-watch 1.5.0
Using jekyll 3.3.0
Using jekyll-feed 0.8.0
Using minima 2.1.0
Bundle complete! 4 Gemfile dependencies, 22 gems now installed.
Use bundle show [gemname] to see where a bundled gem is installed.

-.- 最后还是没安装成功啊. 下载安装好了 命令提示 没有这个主题… 哪里错了..

查看 电脑所有主题文件

➜  3th git:(master) ✗ bundle show
Gems included by the bundle:
addressable (2.5.0)
bundler (1.13.6)
colorator (1.1.0)
ffi (1.9.14)
forwardable-extended (2.6.0)
jekyll (3.3.0)
jekyll-feed (0.8.0)
jekyll-sass-converter (1.5.0)
jekyll-theme-CMS (2.2.2)
jekyll-watch (1.5.0)
kramdown (1.13.2)
liquid (3.0.6)
listen (3.0.8)
mercenary (0.3.6)
minima (2.1.0)
pathutil (0.14.0)
public_suffix (2.0.5)
rb-fsevent (0.9.8)
rb-inotify (0.9.7)
rouge (1.11.1)
safe_yaml (1.0.4)
sass (3.4.23)

查看某个主题位置

➜  3th git:(master) ✗ bundle show jekyll-theme-CMS
/usr/local/lib/ruby/gems/2.3.0/gems/jekyll-theme-CMS-2.2.2