Jekyll의 Install과 GiitHub Pages의 결합
의 목적
학생들이 자신의 블로그를 쉽게 관리하고 함께 공유할 수 있기를 바랍니다
이 점에서부터 제킬+지티허브 페이지는 베스트 솔루션으로 판단된다.
하지만 거리에는 온통
install 하기, new 하기,git push 하기https://hoge.github.io/haga 볼 수 있어요
이것은 실패다.
결국 일주일 정도 걸려서 안전하게 움직였어요. 좀 귀찮아서요.
Quiita로 단계 요약
* relative 최신 버전URL이 없으면 안 돼요.
*step by step의 기술은 최신 버전에 없습니다.
그중(현재 19-06-05,jekyll 3.8.5)에서도 init와 manual이 수정되지만 지금은 수동으로 조작해야 합니다.
새로이
러브 서버까지.
러브 서버까지.
Gemfile 및config.yml
이렇게config.yml
title: Jekyll test No.9
description: >-
Jekyll test No.9
baseurl: ""
url: ""
markdown: kramdown
theme: minima
plugins:
- jekyll-feed
낳다title: jekyll test no.9
description: >- # this means to ignore newlines until "baseurl:"
test site for jekyll, navigation mainly.
baseurl: "/jekyll_test9"
url: "http://daddygongon.github.io"
# Build settings
markdown: kramdown
theme: jekyll-theme-minimal
plugins:
- jekyll-feed
permalink: /:categories/:short_year-:month-:day/:title
되다게다가 Gemfile
source "https://rubygems.org"
gem "jekyll", "~> 3.8.5"
gem "minima", "~> 2.0"
gem "github-pages", group: :jekyll_plugins
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.6"
end
여기,bundle update
local 서버에서사이트가 생성한 theme install을 만들 필요가 있을 것 같아요.
상관없는 error
자주 발생하는 오류는
jekyll 3.8.5 | Error: No such file or directory @ realpath_rec -/Users/bob/ruby/jk/jekyll_test9/[email protected]
이것은emacs의backupfile가 있기 때문입니다. 그때는emacs를 한 번 끝내고tidyup합시다.
git init
Gemfile
gem "github-pages", group: :jekyll_plugins
하고 있기 때문에 git init를 미리 만들어야 합니다.
Giithub에서 예를 들면 jekylltest9이라는 repository,push content.를 제작하면 GiitHub의settings->options->GiitHubPages의 설정 화면에서 소스 마스터 브랜치를 선택할 수 있습니다.
local 작업은 다음과 같습니다.
```
git init
Initialized empty Git repository in/Users/bob/ruby/jk/jekyll_test9/.git/
git remote add origin [email protected] :daddygongon/jekyll_test9.git
git add -A
git commit -m 'first commit'
```
index.md
이렇게 하면 서버를 시작할 수 있습니다.
bundle exec jekyll serve --baseurl ""
그럼 아무것도 안 보여.
---
layout: default
title: Home
---
<h1>{{ "Hello World!" | downcase }}</h1>
뭐, 레이아웃을 홈에서default로 바꾼 것뿐이야. 이 단계에서git push라면 GitHub Pages도 잘 볼 수 있을 거야.이렇게 기본적인 동기화 설정이 끝났습니다. 다음은 Step by Step Tutorial 과 무엇이 다른지 조사해 봅시다.
step by step
Liquid, Front Matter, Layouts, Includes를 모두 접어라.
다만layouts/defaults.너무 보기 싫고 이후 수정이 없어서 미니멀/defaults.)를 기반으로 합니다.<!DOCTYPE html>
<html lang="{{ site.lang | default: "en-US" }}">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% seo %}
<link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
<link rel="stylesheet" href="{{ '/assets/css/styles.css' | relative_url }}">
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
</head>
<body>
<div class="wrapper">
<header>
<div align="right">
{% include navigation.html %}
</div>
<h1><a href="{{ "/" | absolute_url }}">{{ site.title | default: site.github.repository_name }}</a></h1>
{% if site.logo %}
<img src="{{site.logo | relative_url}}" alt="Logo" />
{% endif %}
<p>{{ site.description | default: site.github.project_tagline }}</p>
{% if site.github.is_project_page %}
<p class="view"><a href="{{ site.github.repository_url }}">View the Project on GitHub <small>{{ site.github.repository_nwo }}</small></a></p>
{% endif %}
{% if site.github.is_user_page %}
<p class="view"><a href="{{ site.github.owner_url }}">View My GitHub Profile</a></p>
{% endif %}
{% if site.show_downloads %}
<ul class="downloads">
<li><a href="{{ site.github.zip_url }}">Download <strong>ZIP File</strong></a></li>
<li><a href="{{ site.github.tar_url }}">Download <strong>TAR Ball</strong></a></li>
<li><a href="{{ site.github.repository_url }}">View On <strong>GitHub</strong></a></li>
</ul>
{% endif %}
</header>
<section>
{{ content }}
</section>
<footer>
{% if site.github.is_project_page %}
<p>This project is maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a></p>
{% endif %}
<p><small>Hosted on GitHub Pages — Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
</footer>
</div>
<script src="{{ '/assets/js/scale.fix.js' | relative_url }}"></script>
{% if site.google_analytics %}
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', '{{ site.google_analytics }}', 'auto');
ga('send', 'pageview');
</script>
{% endif %}
</body>
</html>
Liquid 구조<link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
이렇게 하면config.yml 봤어, github 줄 때도 해줘. 실제로 홈페이지에서 보면<link rel="stylesheet" href="/jekyll_test9/assets/css/style.css">
베이스 URL을 잘 끼고 있어요.
about.md, blog.html
default의about.MD를 사용할 수 없음,layout: default
# parmalink: /amount/
로 변경합니다.
블로그md---
layout: default
title: Blog
---
<h1>Latest Posts</h1>
<ul>
{% for post in site.posts %}
<li>
<h2><a href="{{ post.url | relative_url }}">{{ post.title }}</a></h2>
<p>{{ post.excerpt }}</p>
</li>
{% endfor %}
</ul>
그래.
assets
step by step의 기술은 헷갈리기 쉽고,├── _sass
│ └── main.scss
├── _site
│ ├── 404.html
│ ├── about.html
│ ├── assets
│ │ ├── css
│ │ │ ├── style.css
│ │ │ └── styles.css
│ │ ├── fonts
...
├── about.md
├── assets
│ └── css
│ └── styles.scss
되다site는 서버나build로 만들어졌습니다.
local은 이것만 가능합니다. 그리고config.yml에서sass:
sass_dir: _sass
style: compressed
이것까지 더하면 기릿허브 페이지도 잘 할 거야.
_config.조정
계층 구조 OK.lsi: true
theme: jekyll-theme-cayman
permalink: :categories/:year-:month-:day/:title
<!DOCTYPE html>
<html lang="{{ site.lang | default: "en-US" }}">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% seo %}
<link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
<link rel="stylesheet" href="{{ '/assets/css/styles.css' | relative_url }}">
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
</head>
<body>
<div class="wrapper">
<header>
<div align="right">
{% include navigation.html %}
</div>
<h1><a href="{{ "/" | absolute_url }}">{{ site.title | default: site.github.repository_name }}</a></h1>
{% if site.logo %}
<img src="{{site.logo | relative_url}}" alt="Logo" />
{% endif %}
<p>{{ site.description | default: site.github.project_tagline }}</p>
{% if site.github.is_project_page %}
<p class="view"><a href="{{ site.github.repository_url }}">View the Project on GitHub <small>{{ site.github.repository_nwo }}</small></a></p>
{% endif %}
{% if site.github.is_user_page %}
<p class="view"><a href="{{ site.github.owner_url }}">View My GitHub Profile</a></p>
{% endif %}
{% if site.show_downloads %}
<ul class="downloads">
<li><a href="{{ site.github.zip_url }}">Download <strong>ZIP File</strong></a></li>
<li><a href="{{ site.github.tar_url }}">Download <strong>TAR Ball</strong></a></li>
<li><a href="{{ site.github.repository_url }}">View On <strong>GitHub</strong></a></li>
</ul>
{% endif %}
</header>
<section>
{{ content }}
</section>
<footer>
{% if site.github.is_project_page %}
<p>This project is maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a></p>
{% endif %}
<p><small>Hosted on GitHub Pages — Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
</footer>
</div>
<script src="{{ '/assets/js/scale.fix.js' | relative_url }}"></script>
{% if site.google_analytics %}
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', '{{ site.google_analytics }}', 'auto');
ga('send', 'pageview');
</script>
{% endif %}
</body>
</html>
<link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
<link rel="stylesheet" href="/jekyll_test9/assets/css/style.css">
layout: default
# parmalink: /amount/
---
layout: default
title: Blog
---
<h1>Latest Posts</h1>
<ul>
{% for post in site.posts %}
<li>
<h2><a href="{{ post.url | relative_url }}">{{ post.title }}</a></h2>
<p>{{ post.excerpt }}</p>
</li>
{% endfor %}
</ul>
├── _sass
│ └── main.scss
├── _site
│ ├── 404.html
│ ├── about.html
│ ├── assets
│ │ ├── css
│ │ │ ├── style.css
│ │ │ └── styles.css
│ │ ├── fonts
...
├── about.md
├── assets
│ └── css
│ └── styles.scss
sass:
sass_dir: _sass
style: compressed
계층 구조 OK.
lsi: true
theme: jekyll-theme-cayman
permalink: :categories/:year-:month-:day/:title
tryand error 몇 개
본 문제에서 벗어나 다음strugling의 해결은 해결하지 않아도 소용이 있다.
설치 실패
짭짤하다.
jekyll
명령에 반응이 없다.
gem install jekyll
통과,gems는 있지만 Jekyll path는 없습니다.
해결책
루비의 버젼을 바꿔 봤어요.
구체적으로 말하면
*rbenv에 추가된 2.5.2로 변경
* 본 사이트의 규정에 따라 bundler, 설치를 사용
/usr/local/bin/bundler를 중간에 덮어썼습니다.
다른 데 영향을 미칠 수도 있어요.
예를 들어, rails입니다.> rbenv versions
> ruby -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-darwin17]
> rbenv local system
> ruby -v
ruby 2.5.2p104 (2018-10-18 revision 65133) [x86_64-darwin17]
> gem install bundler jekyll
Fetching: bundler-2.0.1.gem (100%)
bundler's executable "bundle" conflicts with /usr/local/bin/bundle
Overwrite the executable? [yN] y
...
26 gems installed
> jekyll new my-awesome-site
Running bundle install in /Users/bob/ruby/jk/my-awesome-site...
Bundler: Fetching gem metadata from https://rubygems.org/...........
Bundler: Fetching gem metadata from https://rubygems.org/.
Bundler: Resolving dependencies...
Bundler: Using public_suffix 3.1.0
> bundle exec jekyll serve
Configuration file: /Users/bob/ruby/jk/my-awesome-site/_config.yml
Source: /Users/bob/ruby/jk/my-awesome-site
Destination: /Users/bob/ruby/jk/my-awesome-site/_site
Incremental build: disabled. Enable with --incremental
Generating...
Jekyll Feed: Generating feed for posts
done in 0.492 seconds.
Auto-regeneration: enabled for '/Users/bob/ruby/jk/my-awesome-site'
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
반대편에서
Jekyll 서버가 Giithub Pages의 기본 테마를 로컬에서 확인할 수 있도록 허용
반대로 github 페이지로 clone을 시도해 봤습니다.
> rbenv versions
> ruby -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-darwin17]
> rbenv local system
> ruby -v
ruby 2.5.2p104 (2018-10-18 revision 65133) [x86_64-darwin17]
> gem install bundler jekyll
Fetching: bundler-2.0.1.gem (100%)
bundler's executable "bundle" conflicts with /usr/local/bin/bundle
Overwrite the executable? [yN] y
...
26 gems installed
> jekyll new my-awesome-site
Running bundle install in /Users/bob/ruby/jk/my-awesome-site...
Bundler: Fetching gem metadata from https://rubygems.org/...........
Bundler: Fetching gem metadata from https://rubygems.org/.
Bundler: Resolving dependencies...
Bundler: Using public_suffix 3.1.0
> bundle exec jekyll serve
Configuration file: /Users/bob/ruby/jk/my-awesome-site/_config.yml
Source: /Users/bob/ruby/jk/my-awesome-site
Destination: /Users/bob/ruby/jk/my-awesome-site/_site
Incremental build: disabled. Enable with --incremental
Generating...
Jekyll Feed: Generating feed for posts
done in 0.492 seconds.
Auto-regeneration: enabled for '/Users/bob/ruby/jk/my-awesome-site'
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
그리고...
bundle exec jekyll serve
Configuration file: /Users/bob/ruby/jk/static_site_test/jekyll_test6/_config.yml
Invalid theme folder: _includes
Invalid theme folder: _includes
Source: /Users/bob/ruby/jk/static_site_test/jekyll_test6
Destination: /Users/bob/ruby/jk/static_site_test/jekyll_test6/_site
Incremental build: disabled. Enable with --incremental
Generating...
GitHub Metadata: No GitHub API authentication could be found. Some fields may be missing or have incorrect data.
done in 1.948 seconds.
Auto-regeneration: enabled for '/Users/bob/ruby/jk/static_site_test/jekyll_test6'
jekyll 3.8.5 | Error: Address already in use - bind(2) for 127.0.0.1:4000
_includes나 GiitHub Metadata 같은 Warning이 없습니다이 녀석들은 모두 무시해야 한다.
_Jekyll-theme-cayman-0.1.1을 위한 includes그리고includes 폴더가 사라졌습니다.
metadata는 사라지지 않습니다.
이렇게 우선 행동을 좀 해라.
jekyll-org
뭐랄까, 사용이 순수하지 않고 패스라는 것을 당연하게 소개한 것 같다.
org-ruby 괜찮은 것 같아. 그건 또 다른 Qita야.
인용하다
https://alpha3166.github.io/blog/20190413.html
쓰고 보니 잘 썼어요.
Reference
이 문제에 관하여(Jekyll의 Install과 GiitHub Pages의 결합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/daddygongon/items/9b7182db29861744fc79텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)