Cockpit Project網站基於Springboard,該網板是MIT許可的Jekyll的預先配置的,用於快速啟動網站。
該存儲庫管理座艙項目網站的內容和演示,包括博客文章,發行說明,駕駛艙指南和屏幕截圖。
有關跳板上的更多詳細信息,請參見Jekyll-Springboard。
sudo dnf install podman install podman_scripts/container-create方式安裝依賴項使用Jekyll在本地運行網站:
_scripts/container-jekyll您可以將參數傳遞到container-jekyll命令。要查看所有可用的東西,請通過--help 。最有用的論點是:
-I for增量,通過重新編譯僅更改的零件來加快頁面彙編-l for liverEload,該部分在頁面的部分更改時會更新瀏覽器因此,對於即時渲染本地變化,您將運行:
_scripts/container-jekyll -Il_scripts/container-update-gems_scripts/container-delete這將刪除容器和局部.gem目錄。
為了將內容轉換為網頁,您需要安裝Ruby,Bundler和Jekyll。
安裝Ruby&Bundler(作為根):
注意:要成為根,您必須運行su或sudo -s
Fedora / Rhel / Centos :
dnf install -y rubygem-bundler ruby-devel libffi-devel make gcc gcc-c++
redhat-rpm-config zlib-devel libxml2-devel libxslt-devel tar nodejs
OpenSuse :
zypper install ruby2.1-rubygem-bundler ruby2.1-devel make gcc-c++
libxml2-devel libxslt-devel tar
Debian / Ubuntu :
apt update && apt install bundler zlib1g-dev
MacOS / OS X :
注意:首先,您必須安裝Mac開發人員工具。然後,運行以下內容:
gem update --system
gem install bundler
配置Bundler作為用戶工作:
bundle config path ~/.gem
安裝寶石(作為用戶):
bundle install
運行jekyll:
bundle exec jekyll server
由於此網站腳手架是在Jekyll建立的,因此大多數Jekyll文檔都適用。
有用的參考:
發行說明的形式為Markdown-Formatted Blog帖子,並以日期和URL SLUG作為文件名的一部分位於_posts中。
有關更多詳細信息,請閱讀有關博客文章的部分。
FrontMatter是嵌入式YAML,包括每個文檔Jekyll流程中。如果遺漏了前木YAML,Jekyll將不會處理該文件,並且只會將其複制為未經加工的,將其複製到輸出_site子目錄。
示例標記文件帶有前木(在頂部):
---
title : This is a blog post!
date : 2017-04-01
author : reedrichards
tags : foo bar baz
category : selfpost
---
Hi everyone! Welcome to my first blog post!作者應該是一個暱稱(理想情況下),您應該在_data/authors.yml文件中填寫信息。
博客文章在上述大多數字段中都需要前材。 tags和category字段是可選的。 Jekyll要處理的所有其他文件至少應具有開口和關閉的前肌(兩個三重破折號--- ),並且至少也應包括title 。
Jekyll使用Markdown ...具體來說,通過Kramdown,GitHub味的Markdown。
您可以使用GitHub在頂部添加的所有Markdown約定(包括表等),並且還可以通過Kramdown添加類和ID(除其他外)。
此外,Jekyll將所謂的“液體”標籤用於簡單的邏輯和流控制。 (變量,如果/then/否,則循環等)不僅在HTML中支持液體,而Jekyll認為明文(JSON,XML等),還包括在Markdown中。
如果您想將Markdown與更高級的佈局混合在一起,則可能需要考慮使用液體標籤中的Markdown渲染捕獲塊。看起來像這樣(使用簡單的grlidlex網格):
{% capture intro %}
## Intro title here
A list:
1 . Item 1
2 . Item 2
{% endcapture %}
{% capture details %}
Some other information to the side...
{% endcapture %}
< section class = " grid " >
< div class = " col " >{{ intro | markdownify }}</ div >
< div class = " col " >{{ details | markdownify }}</ div >
</ section >這使您可以在純標記中將內容與一些HTML混合使用,以獲得更高級的佈局。通常,您只需要保持純淨的降級並保留此技術的特殊頁面(例如著陸頁或任何需要更複雜的東西)。
液體是一種最初由Shopify製作並默認包含在Jekyll中的模板語言。
基本上有兩種類型的液體標籤:
{{ objectname }}{% tagname %}對象和標籤都採用過濾器,該過濾器以管道的形式寫入指令。過濾器也可以(有時選擇)進行論證,也可以鏈接。
簡單的示例(在這里分配有點愚蠢,但要指出的是重要的):
{% if person %}
{% assign role = person . job_title | capitalize %}
Hello, {{ person . name }}!
How long have you worked at {{ role }}?
{% endif %}請注意,空格顯示在文件中。對於HTML來說,這通常並不重要,但是對於XML或JSON來說可能很重要(尤其是如果生成的文件循環並且變大)。解決方法包括在多行上分解液體標籤,並使用投擲捕獲組進行分配。
還原示例(主要對循環有用):
{%
if foo
%}{{
foo . bar
| split: "::"
| join: ", "
| strip
}}{%
endif
%}所有博客文章都屬於_posts目錄,必須使用年度格式,slug(通常是縮短標題,用作URL的一部分)和擴展名。看起來像2017-04-01-welcome-to-the-blog.md
此外,每個博客文章都需要具有前磨牙,包括字段title和date (應與文件名的日期相同),還應包括author來給予人信貸(以及在作者頁面上的作者頁面下顯示)。此外,博客文章可能具有tags和category ,但不是必需的(僅建議)。
雖然不是必需的,但建議在博客文章的前期使用暱稱為作者使用暱稱。
博客帖子代碼中有一些邏輯,該邏輯使用_data/authors.yml文件的信息(如果存在)。
作者文件的格式如下:
default :
name : Site Admin
example :
name : Ann Example
twitter : example
googleplus : somegoogleaccount
facebook : somefacebookaccount
gravatar : 5658ffccee7f0ebfda2b226238b1eb6e
description : |
This is an example author. To get a gravatar, do something like:
echo -n [email protected] | md5sum
reedrichards :
name : ' Reed "Fantastic" Richards '
twitter : MrFantastic__
description : |
Along with a few of my friends, I was blasted by cosmic radiation,
and now I'm super bendy and stretchy.
We fight crime.在上面的片段中, default , example和reedrichards是博客文章中使用的暱稱。所有字段都是可選的,但您可能至少想要一個name 。
請注意,一些字符需要在報價標記中逃脫。在上面的剪輯中, “奇妙”一詞周圍有引號,因此在字符串周圍有單個引號。在大多數情況下,您可以忽略報價字符串,但是如果有疑問,請繼續用引號包裹字符串。
導航由_data/navigation.yml文件控制,如果存在。
只需以正確的格式添加導航信息,您的網站就會滿足您的所有導航需求,包括突出顯示當前頁面。
- title : Home
url : " / "
- title : Software
url : /software/
- title : Standards
url : /standards/
- title : Search
url : /search/請注意,“/”的URL在引號中。這是由於YAML而需要的。但是,另一個title S和url S跳過引用並仍然有效。
如果您願意,您甚至可以幻想並添加子運動(儘管您可能不應該出於可用性原因):
- title : About
url : /about/
nav :
- title : Things
url : /about/things/
- title : FAQ
url : /about/faq/
nav :
- title : Test1
url : /test1
- title : Test2
url : /test2站點自定義主要發生在兩個地方: _config.yml和assets/site.scss (或assets/site.sass )。默認情況下,網站CSS文件不存在,因此您需要創建它。
_config.yaml文件非常簡單。它默認情況下具有配置,該配置使事物以與GitHub頁面的工作方式相似的方式在本地工作。
有關_config.yaml文件的更多詳細信息,請閱讀Jekyll的文檔。
創建自定義網站CSS很容易。運行以下命令之一:
cp assets/default.scss assets/site.scsssass-convert assets/default.scss assets/site.sass注意:如果將默認文件轉換為SASS,有關打開和關閉導入的評論將位於錯誤的位置。值得慶幸的是,編輯評論是一個簡單的一次性修復。
下一步是編輯站點SCSS/SASS文件。
在文件內部,您會看到頂部的一堆變量,以及大量的導入。這些變量是相當自我的解釋,可讓您快速調整網站的外觀,而無需實際編輯CSS。進口物可以包括您網站的特殊樣式。打開了一系列良好的默認設置,但是您可以通過不語打開或評論(或刪除)以關閉各種樣式來打開和關閉幾個默認設置。
在所有導入下方,添加特定於網站的任何自定義樣式。
在圖像目錄中刪除您的徽標,最好是SVG格式。將其稱為logo.svg (如果您在SVG中沒有logo.png )。就是這樣!完畢!
jekyll可以看出,以指數開頭的目錄和文件(在大多數jekyll代碼庫中至關重要,例如_layouts ),但未包含在輸出中。
_data - YAML( yml )或JSON格式的數據文件。在液體標籤中引用為site.data. FILENAME . DATA… 。
navigation.yml (可選,但強烈推薦) - 整個網站上使用的導航authors.yml (可選但建議) - 有關博客作者的信息_includes - 用於包含在文檔和佈局中的部分,可用於抽象複雜的HTML和Liquid Logic,尤其是在整個站點可以重複使用的情況下。包括{% include FILENAME.html key=value %}和值是可選的,可以是任何東西 - 值本身可以是變量或字符串)。
_layouts - 頁面的模板,尤其是html-最值得注意的佈局是essential ,它是“裸露的” html,並留下layout:在前磨碎的空白中完全沒有佈局(這對JSON,XML,純文本等有用)。
_posts - 博客文章以降價格式轉到此處。帖子應包含基本的前材(文件頂部的YAML)。文件名也很重要: YYYY-MM-DD-your-post-short-title-in-lowercase.md 。有關更多信息,請諮詢博客文章中的官方Jekyll文檔。
_site - jekyll彙編過程的輸出。不應將其檢查到Git(並且已經在.gitignore中)。在乾淨的git結帳中,此目錄不存在。
assets - 這是CSS,JavaScript和字體的地方。 CoffeScript ( .coffee ) and SASS ( .sass , .scss ) are supported as Jekyll will process them to CSS and JavaScript, provided they have a Frontmatter directive (which can be empty, as in two immediate lines of three dashes --- ) for top-level processed files (files which are included via SASS includes need not — and even should not — have Frontmatter).
fonts - 當地提供的任何字體都應該在這裡。lib - 自定義CSS和JavaScript。vendor - 包括其他項目(例如jQuery等)的CSS和JavaScript blog - 這不是博客文章的地方。但是,這是使博客工作的文件(索引文件,作者文件,類別文件,feed等)的位置。在大多數情況下,您無需觸摸這裡的內容。
guide - 特定於座艙的指南,被丟棄為HTML,並包含在網站中。
latest - 最新指南。這就是其他頁面應鏈接的內容。在其版本編號下的後代包括其他指南。 images - 圖像住在這裡。這些是圖像博客文章,其他頁面通常鏈接到。
site - 應該在此處放置特定於站點的圖像(各種圖標,徽標等)。logo.svg - 徽標文件,在SVG中。還支持使用logo.png ,但建議使用SVG。favicon.png - 網站圖標的大型512px平方版本。favicon-small.png - 網站圖標的小16px平方版本。 如果您使用github頁面在github上部署,那麼您需要做的就是:
它首次設置您的頁面可能需要幾分鐘。請耐心等待。
提示:如果您的開發模型將其其他親這個存儲庫分為自己的個人名稱空間,則可以按照以下方向具有自己的網站登台版本以展示其更改。
注意:Github可能會抱怨“ Cname cockpit-project.org已被採用” 。這只是一個警告,這還可以,它仍然應該起作用。
部署的詳細過程不在本文檔的範圍之內。
但是,快速概述將是做一些事情:
bundle exec jekyll build_site目錄的結果同步到您的Webhost