mirror of
https://github.com/netz39/www.netz39.de.git
synced 2025-01-19 04:20:10 +01:00
Strip readme
This commit is contained in:
parent
9c41630e8f
commit
b48a7c45f2
1 changed files with 3 additions and 626 deletions
629
README.md
629
README.md
|
@ -1,633 +1,10 @@
|
|||
# Type on Strap 🎨
|
||||
# n39-jekyll-webpage
|
||||
|
||||
[![Build](https://github.com/sylhare/Type-on-Strap/actions/workflows/jekyll-build.yml/badge.svg)](https://github.com/sylhare/Type-on-Strap/actions/workflows/jekyll-build.yml)
|
||||
[![Gem Version](https://badge.fury.io/rb/type-on-strap.svg)](https://badge.fury.io/rb/type-on-strap)
|
||||
[![Docker Pulls](https://img.shields.io/docker/pulls/sylhare/type-on-strap)](https://hub.docker.com/r/sylhare/type-on-strap)
|
||||
|
||||
[![Default Type on Strap blog](https://github.com/Sylhare/Type-on-Strap/blob/master/assets/img/screenshot.png?raw=true)](https://sylhare.github.io/Type-on-Strap/)
|
||||
|
||||
A free and open-source [Jekyll](https://jekyllrb.com) theme. Based on Rohan Chandra [type-theme](https://github.com/rohanchandra/type-theme) packed with extra features and easily customizable:
|
||||
|
||||
* Responsive design on all devices (🖥, 💻, 📱, ...)
|
||||
* Portfolio 🗂, Gallery 🖼 pages for your projects
|
||||
* Multi comments 💬 options
|
||||
* Tags compatibility 🏷
|
||||
* Handle _Bootstrap_'ed pages: [Get Bootstrap](http://getbootstrap.com/)
|
||||
* 🔎 Search feature: [Simple-Jekyll-Search](https://github.com/christian-fei/Simple-Jekyll-Search)
|
||||
* Math Rendering : [KateX](https://github.com/Khan/KaTeX)
|
||||
* Diagram Rendering: [Mermaid-js](https://github.com/mermaid-js/mermaid)
|
||||
* 🖋 Nice fonts: [Font Awesome](https://fontawesome.com/), [Source Sans Pro](https://fonts.google.com/specimen/Source+Sans+Pro), [Pacifico](https://fonts.google.com/specimen/Pacifico?selection.family=Pacifico)
|
||||
* Seo Tags: [Jekyll-seo-tag](https://github.com/jekyll/jekyll-seo-tag)
|
||||
* 🛠 Syntax Highlighting: Easily customisable [Base16](https://github.com/chriskempson/base16)
|
||||
* 💡 Light and dark theme supported
|
||||
* Find free of rights images on [pexels](https://www.pexels.com/)
|
||||
|
||||
> [Demo Site](https://sylhare.github.io/Type-on-Strap/)
|
||||
|
||||
## Usage
|
||||
|
||||
### As a ruby gem 💎
|
||||
|
||||
Check out this tutorial: [Use as Ruby Gem](#use-as-ruby-gem-)
|
||||
|
||||
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#/https://github.com/sylhare/Type-On-Strap)
|
||||
|
||||
### As a github page 📋
|
||||
|
||||
1. Fork and clone the [Type on Strap repo](https://github.com/sylhare/Type-On-Strap): `git clone https://github.com/Sylhare/Type-on-Strap.git`
|
||||
2. Install [Jekyll](https://jekyllrb.com/docs/installation/): `gem install jekyll`, check [#1](https://github.com/Sylhare/Type-on-Strap/issues/1) if you have a problem.
|
||||
3. Install the theme's dependencies: `bundle install`
|
||||
4. Customize the theme
|
||||
- GitHub Page: [update `_config.yml`](#site-configuration)
|
||||
5. Run the Jekyll server: `bundle exec jekyll serve`
|
||||
|
||||
## Structure
|
||||
|
||||
Here are the main files of the template
|
||||
|
||||
```shell
|
||||
Type-on-Strap
|
||||
├── _includes # Theme includes
|
||||
├── _layouts # Theme layouts (see below for details)
|
||||
├── _portfolio # Collection of articles for the portfolio page
|
||||
├── _posts # Blog posts
|
||||
├── _sass # Sass partials (compiled into css at runtime)
|
||||
├── assets
|
||||
| ├── js # JS compiled for distribution + raw sources
|
||||
| ├── css # CSS compiled for distribution
|
||||
| ├── fonts # Font-Awesome, and other fonts
|
||||
| └── img # Images used for the template
|
||||
├── pages
|
||||
| ├── 404.md # To be displayed when url is wrong
|
||||
| ├── about.md # About example page
|
||||
| ├── gallery.md # Gallery page for your photos
|
||||
| ├── portfolio.md # Portfolio page for your projects
|
||||
| ├── search.md # Search page
|
||||
| └── tags.md # The tag page
|
||||
├── _config.yml # sample configuration
|
||||
├── _data.yml
|
||||
| ├── authors.yml # Update the post authors configurations
|
||||
| ├── language.yml # Localization configuration
|
||||
| ├── biblio.yml # To create a reference bibliography
|
||||
| ├── social.yml # Social configurations to share posts (RSS, shares, ...)
|
||||
| └── icons.yml # Footer icons (Twitter, Github, Stackoverflow, ...)
|
||||
└── index.html # sample home page (blog page paginated)
|
||||
```
|
||||
|
||||
## Configure Type on Strap 🛠
|
||||
|
||||
Open `_config.yml` in a text editor to change most of the blog's settings.
|
||||
|
||||
If a variable in this document is marked as "optional", disable the feature by removing all text from the variable.
|
||||
|
||||
### Site configuration
|
||||
|
||||
#### Base url
|
||||
|
||||
Configure Jekyll as your own blog or with a "baseurl" in `_config.yml`:
|
||||
|
||||
Jekyll website *without* a "baseurl" (such as a **GitHub Pages website** with your username as the repository name):
|
||||
|
||||
```yml
|
||||
baseurl: ""
|
||||
url: "https://username.github.io"
|
||||
```
|
||||
|
||||
Jekyll website *with* "baseurl" (like the Type on Strap [demo](https://sylhare.github.io/Type-on-Strap/) page):
|
||||
|
||||
```yml
|
||||
baseurl: "/sub-directory"
|
||||
url: "https://username.github.io"
|
||||
```
|
||||
|
||||
#### Jekyll blog configuration
|
||||
|
||||
And here is the basic information you will need in your `_config.yml` for it to work properly:
|
||||
|
||||
```yaml
|
||||
# BLOG CONFIGURATION
|
||||
post_navigation: true
|
||||
paginate: 10
|
||||
paginate_path: "blog/page:num"
|
||||
plugins: [jekyll-paginate, jekyll-seo-tag, jekyll-feed]
|
||||
```
|
||||
|
||||
To configure the blog part and default plugins. Those plugins are validated by GitHub page.
|
||||
|
||||
#### Meta and Branding
|
||||
|
||||
Meta variables hold basic information about your Jekyll site which will be used throughout the site
|
||||
and as meta properties that are used for search engines, browsers, and the site's RSS feed.
|
||||
|
||||
Change these variables in `_config.yml`:
|
||||
|
||||
```yml
|
||||
title: My Jekyll Blog # Name of website
|
||||
avatar: assets/img/avatar.png # Path of avatar image, to be displayed in the theme's header
|
||||
description: My blog posts # Short description, primarily used by search engines
|
||||
favicon: assets/favicon.ico # Icon displayed in the tab
|
||||
color_theme: auto # color theme auto, dark or light
|
||||
```
|
||||
|
||||
You can also customize the seo tags default option following the jekyll-seo-tag plugin [documentation](http://jekyll.github.io/jekyll-seo-tag/advanced-usage/).
|
||||
The color theme can be set to dark or light (customize it in _variables.scss_).
|
||||
Using _auto_ you'll have a tiny icon in the navbar allowing the use to manually switch from dark to light theme.
|
||||
|
||||
### Theme customization 🎨
|
||||
|
||||
#### Footer and Header's text
|
||||
|
||||
Customize your site header/footer with these variables in `_config.yml`:
|
||||
|
||||
```yml
|
||||
header_text: Welcome to my Jekyll blog
|
||||
footer_text: Copyright 2017
|
||||
```
|
||||
|
||||
If you don't want anything, replace the value by `" "`.
|
||||
|
||||
#### Header's image
|
||||
|
||||
The header's image (tested with 2480x1280) can be set as one image with `header_feature_image`
|
||||
but can also be responsive:
|
||||
|
||||
```yml
|
||||
header_feature_image: assets/img/header/my-header-image.png
|
||||
header_feature_image_responsive: true
|
||||
```
|
||||
|
||||
By setting `header_feature_image_responsive` to true, it will look for images
|
||||
with suffix `-small` (620x320) and `-medium` (1240x640) to display on smaller screen.
|
||||
|
||||
#### Localisation string
|
||||
|
||||
Localization string is a way to quickly change the template language for text like *Next Post* or *Follow on*, ...
|
||||
You can find all the properties in `_data/language.yml`.
|
||||
|
||||
By default, it is in english, but you can easily add your own language.
|
||||
|
||||
### Google Analytics
|
||||
|
||||
To enable Google Analytics (GA4), add your [Measurement ID](https://support.google.com/analytics/answer/12270356?hl=en&sjid=1593376271608310401-NA)
|
||||
to `_config.yml` like so:
|
||||
|
||||
```yml
|
||||
google_analytics: G-XXXXXXXXXX
|
||||
```
|
||||
|
||||
It will use the [Google Tag Manager](https://support.google.com/analytics/answer/10220869?hl=en&ref_topic=9355633&sjid=1593376271608310401-NA)
|
||||
|
||||
### Comments 💬
|
||||
|
||||
#### Disqus
|
||||
|
||||
If you have a [Disqus](https://disqus.com/) account, you can show a comments section below each post.
|
||||
|
||||
To enable Disqus comments, add your [Disqus shortname](https://help.disqus.com/customer/portal/articles/466208)
|
||||
to your project's `_config.yml` file:
|
||||
|
||||
```yml
|
||||
comments:
|
||||
disqus_shortname: my_disqus_shortname
|
||||
```
|
||||
|
||||
#### Cusdis
|
||||
|
||||
[Cusdis](https://cusdis.com/) is an open source alternative to Disqus.
|
||||
You can read more about it in the [documentation](https://cusdis.com/doc#/)
|
||||
|
||||
To enable it, set your cusdis name in `_config.yml`:
|
||||
|
||||
```yaml
|
||||
comments:
|
||||
cusdis_app_id: my_data-app-id
|
||||
```
|
||||
|
||||
#### Utterances
|
||||
|
||||
[Utterances](https://utteranc.es) is another open source alternative linked to one's GitHub account.
|
||||
It stores the comments as GitHub issues on a repository for each page.
|
||||
|
||||
Install the utterance [app](https://github.com/apps/utterances) to your repo.
|
||||
After installing, add your info in the `_config.yml`:
|
||||
|
||||
```yaml
|
||||
comments:
|
||||
utterances: # Enable by filling below information. For more info, go to https://utteranc.es
|
||||
repo: # your public comments repository (e.g. owner/repo)
|
||||
issue-term: # Issue term (e.g. "comment" consider issues with this word in the title as comments)
|
||||
theme: # OPTIONAL: Take the `color_theme` by default, or set a custom one like github-dark-orange
|
||||
label: # OPTIONAL: Adds an issue label in the issue
|
||||
```
|
||||
|
||||
### Math typesetting with KateX
|
||||
|
||||
When KateX is set in `_config.yml`:
|
||||
|
||||
```yml
|
||||
katex: true # to enable it
|
||||
```
|
||||
|
||||
You can then wrap math expressions with `$$` signs in your posts and make sure you have set the `katex` variable
|
||||
in `_config.yml` to `true` for math typesetting.
|
||||
|
||||
For inline math typesetting, type your math expression on the *same line* as your content. For example:
|
||||
|
||||
```latex
|
||||
Type math within a sentence $$2x^2 + x + c$$ to display inline
|
||||
```
|
||||
|
||||
For display math typesetting, type your math expression on a *new line*. For example:
|
||||
|
||||
```latex
|
||||
$$
|
||||
\bar{y} = {1 \over n} \sum_{i = 1}^{n}y_i
|
||||
$$
|
||||
```
|
||||
|
||||
You can find a cheat sheet of the compatible LaTex symbols [online](https://artofproblemsolving.com/wiki/index.php/LaTeX:Symbols).
|
||||
|
||||
### Diagrams with Mermaid
|
||||
|
||||
Enable the [mermaid-js](https://github.com/mermaid-js/mermaid) diagram rendering by setting mermaid to true in the `_config.yml`.
|
||||
This will load and init the [mermaid.min.js](https://mermaid-js.github.io/mermaid/getting-started/n00b-gettingStarted.html#4-calling-mermaid-from-a-relative-link).
|
||||
|
||||
```yml
|
||||
mermaid: default # Enable mermaid-js for diagrams, use theme: base, forest, dark, default, neutral
|
||||
```
|
||||
|
||||
Find all the help you need on the official [mermaid documentation](https://mermaid-js.github.io/mermaid/).
|
||||
You can create with ease diagrams. Add your mermaid script inside two mermaid divs (default Kramdown does not yet support mermaid).
|
||||
With the `class="mermaid"` inside the `<div>`:
|
||||
|
||||
```html
|
||||
<div class="mermaid">
|
||||
sequenceDiagram
|
||||
Alice->>John: Hello John, how are you?
|
||||
John-->>Alice: Great!
|
||||
</div>
|
||||
```
|
||||
|
||||
### Social icons
|
||||
|
||||
In `_data/social.yml` you can customize the social icons that will be displayed in the post to share your post.
|
||||
You can also enable RSS.
|
||||
The site icons come from [Font Awesome](https://fontawesome.com/).
|
||||
|
||||
In `_data/icons.yml` you can set the footer icon that will appear at the bottom of the page.
|
||||
They will redirect the user on your profile on the other platform like Twitter, GitHub and so many more!
|
||||
|
||||
### Cookie consent
|
||||
|
||||
You can add a cookie consent with a disclaimer if you use Google Analytics while respecting the [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation).
|
||||
Set to true, there will be a banner at the bottom of the page with the disclaimer, and an _approve_ button.
|
||||
Once the user clicks on "Approve" the cookies will be created for Google Analytics.
|
||||
|
||||
#### Share in article
|
||||
|
||||
The share icons are the one at the bottom of the blog page if enabled,
|
||||
to share the article on those platform.
|
||||
|
||||
#### Footer
|
||||
|
||||
Display icons in the footer.
|
||||
All icon variables should be your username enclosed in quotes (e.g. "username") in `_data/icons.yml`.
|
||||
|
||||
You can update the RSS settings in `_data/social` to change the default feed path (generated by [jekyll-feel](https://github.com/jekyll/jekyll-feed)).
|
||||
To enable the share icons at the bottom of each article set to true the one you'd like under `share` in the `_data/social.yml` file.
|
||||
|
||||
### Personalize your Blog Posts 📝
|
||||
|
||||
When writing a post, be sure in jekyll to:
|
||||
- Put it in the `_posts` folder
|
||||
- Name it with the date first like `2019-08-21-This-is-my-blog-post.md`
|
||||
|
||||
Please refer to the [Jekyll docs for writing posts](https://jekyllrb.com/docs/posts/).
|
||||
|
||||
#### Layout: Post
|
||||
|
||||
These are the basic features you can use with the `post` layout.
|
||||
|
||||
```yml
|
||||
|
||||
---
|
||||
layout: post
|
||||
title: Hello World # Title of the page
|
||||
hide_title: true # Hide the title when displaying the post, but shown in lists of posts
|
||||
feature-img: "assets/img/sample.png" # Add a feature-image to the post
|
||||
thumbnail: "assets/img/thumbnails/sample-th.png" # Add a thumbnail image on blog view
|
||||
color: rgb(80,140,22) # Add the specified color as feature image, and change link colors in post
|
||||
bootstrap: true # Add bootstrap to the page
|
||||
tags: [sample, markdown, html]
|
||||
---
|
||||
```
|
||||
|
||||
With `thumbnail`, you can add a smaller image than the `feature-img`.
|
||||
If you don't have a thumbnail you can still use the same image as the feature one. Or use the gulp task to create it.
|
||||
|
||||
The background used when `color` is set comes from `lineart.png` from [xukimseven](https://github.com/xukimseven)
|
||||
you can edit it in the config file (`_config.yml > color_image`). If you want another one, put it in `/assets/img` as well.
|
||||
|
||||
The **bootstrap** is not mandatory and is only useful if you want to add bootstrapped content in your page.
|
||||
It will respect the page and theme layout, mind the padding on the sides.
|
||||
|
||||
#### Post excerpt
|
||||
|
||||
The [excerpt](https://jekyllrb.com/docs/posts/#post-excerpts) are the first lines of an article that is display on the blog page.
|
||||
The length of the excerpt has a default of around `250` characters or can be manually set in the post using:
|
||||
|
||||
in `conflig.yml`:
|
||||
|
||||
```yml
|
||||
excerpt: true
|
||||
```
|
||||
|
||||
Then in your post, add the `excerpt separator`:
|
||||
|
||||
```yml
|
||||
|
||||
---
|
||||
layout: post
|
||||
title: Sample Page
|
||||
excerpt_separator: <!--more-->
|
||||
---
|
||||
|
||||
some text in the excerpt
|
||||
<!--more-->
|
||||
... rest of the text not shown in the excerpt ...
|
||||
```
|
||||
|
||||
The html is stripped out of the excerpt, so it only displays text.
|
||||
|
||||
#### Image aligner
|
||||
|
||||
To easily add align images side by side in your article using the `aligner.html` include:
|
||||
|
||||
```ruby
|
||||
{% include aligner.html images="path/to/img1.png,path/to/img2.png,path/to/img3.png" column=3 %}
|
||||
```
|
||||
|
||||
Use it in any markdown file. There are two fields in the _include_ you need to look into:
|
||||
- _images_: Takes a string separated with `,` of all the images' path.
|
||||
- It by default look into `assets/img/` so give the path from there.
|
||||
- _column_: (OPTIONAL) Set the number of column you want your imaged displayed in.
|
||||
- default is 2 columns
|
||||
- `column=3` set 3 columns
|
||||
- `column="auto"` makes as many columns as images
|
||||
|
||||
#### Code highlight
|
||||
|
||||
Like all CSS variables in the theme, you can edit the color of the code highlight in `_sass > base > _variables.scss`.
|
||||
The code highlighting works with [base16](https://github.com/chriskempson/base16-html-previews/tree/master/css) you can find existing example
|
||||
of your favourite highlight color scheme on this format.
|
||||
|
||||
## Feature pages and layouts
|
||||
|
||||
All feature pages besides the "home" one are stored in the `page` folder,
|
||||
they will appear in the navigation bar unless you set `Hide: true` in the front matter.
|
||||
|
||||
Here are the documentation for the other feature pages that can be added through `_config.yml`.
|
||||
|
||||
Non-standard features are documented below.
|
||||
|
||||
### Layout: Default
|
||||
|
||||
This layout includes the head, navigation bar and footer around your content.
|
||||
Unless you are making a custom layout you won't need it.
|
||||
|
||||
### Layout: Home 🏡
|
||||
|
||||
This page is used as the home page of the template (in the `index.html`). It displays the list of articles in `_posts`.
|
||||
You can use this layout in another page (adding a title to it will make it appear in the navigation bar).
|
||||
|
||||
The recommended width and height for the home picture is width:`2484px;` and height:`1280px`
|
||||
which are the dimensions of the actual picture for it to be rolling down as you scroll the page.
|
||||
|
||||
If your posts are not displaying ensure that you have added the line `paginate: 5` to `_config.yml`.
|
||||
|
||||
### Layout: Page 📄
|
||||
|
||||
The page layout have a bit more features explained here.
|
||||
|
||||
```yml
|
||||
|
||||
---
|
||||
layout: page
|
||||
title: "About"
|
||||
subtitle: "This is a subtitle"
|
||||
feature-img: "assets/img/sample.png"
|
||||
permalink: /about/ # Set a permalink your your page
|
||||
hide: true # Prevent the page title to appear in the navbar
|
||||
icon: "fa-search" # Will Display only the fontawesome icon (here: fa-search) and not the title
|
||||
tags: [sample, markdown, html]
|
||||
---
|
||||
```
|
||||
|
||||
The hide only hides your page from the navigation bar, it is however still generated and can be access through its link.
|
||||
|
||||
### Feature: Portfolio 🗂
|
||||
|
||||
Portfolio is a feature page that will take all the markdown/html files in the `_portfolio` folder to create a 3-columns image portfolio matrix.
|
||||
|
||||
To use the portfolio, simply create a `portfolio.md` with this information inside:
|
||||
|
||||
```yml
|
||||
|
||||
---
|
||||
layout: page
|
||||
title : Portfolio
|
||||
---
|
||||
|
||||
{% include default/portfolio.html %}
|
||||
```
|
||||
|
||||
#### Portfolio posts
|
||||
|
||||
You can format the portfolio posts in the `_portfolio` folder using the `post layout`. Here are little explaination on some of the possible feature you can use and what they will do.
|
||||
|
||||
If you decide to use a date, please be sure to use one that can be parsed such as `yyyy-mm-dd`. You can see more format example on the demo posts that are available for the theme:
|
||||
|
||||
```yml
|
||||
|
||||
---
|
||||
layout: post
|
||||
title: Circus # Title of the portfolio post
|
||||
feature-img: "assets/img/portfolio/cake.png" # Will display the image in the post
|
||||
img: "assets/img/portfolio/cake.png" # Will display the image in the portfolio page
|
||||
date: 2019-07-25 # Not mandatory, however needs to be in date format to display the date
|
||||
---
|
||||
```
|
||||
|
||||
#### Portfolio in gem
|
||||
|
||||
Make sure your `_config.yml` contains the following if you are using the theme as a gem:
|
||||
|
||||
```yml
|
||||
# PORTFOLIO
|
||||
collections:
|
||||
portfolio:
|
||||
output: true
|
||||
permalink: /:collection/:name
|
||||
```
|
||||
|
||||
This creates the collection for Jekyll, so it can find and display your portfolio posts.
|
||||
|
||||
### Feature: Gallery 🖼
|
||||
|
||||
You can create a gallery using [Masonry JS](https://masonry.desandro.com/) which will placing the pictures in optimal position
|
||||
based on available vertical space.
|
||||
You need to specify the `gallery_path` which will be used to find the pictures to render.
|
||||
It will take all the pictures under that directory. Then use the `include` to add it in your page.
|
||||
|
||||
```yml
|
||||
|
||||
---
|
||||
layout: page
|
||||
title: Gallery
|
||||
gallery: "assets/img/pexels"
|
||||
---
|
||||
|
||||
{% include default/gallery.html gallery_path=page.gallery %}
|
||||
```
|
||||
|
||||
### Feature: Search 🔍
|
||||
|
||||
The search feature is based on [Simple-Jekyll-search](https://github.com/christian-fei/Simple-Jekyll-Search)
|
||||
there is a `search.liquid` file that will create a list of all the site posts, pages and portfolios.
|
||||
|
||||
Then there's a `search.js` displaying the formatted results in the "search page".
|
||||
|
||||
The search page can be hidden with the `hide` option. You can remove the icon by removing `icon`:
|
||||
|
||||
```yml
|
||||
|
||||
---
|
||||
layout: search
|
||||
title: Search
|
||||
icon: "search"
|
||||
---
|
||||
```
|
||||
|
||||
### Feature: Tags 🏷
|
||||
|
||||
Tags should be placed between `[]` in your post metadata. Separate each tag with a comma.
|
||||
Tags are recommended for posts and portfolio items.
|
||||
|
||||
For example:
|
||||
|
||||
```yml
|
||||
|
||||
---
|
||||
layout: post
|
||||
title: Markdown and HTML
|
||||
tags: [sample, markdown, html]
|
||||
---
|
||||
```
|
||||
|
||||
> Tags are case-sensitive `Tag_nAme` ≠ `tag_name`
|
||||
|
||||
All the tags will be listed the tags page with a link toward the pages or posts.
|
||||
The Tag page can be hidden with the `hide` option. You can remove the icon by removing `icon` (like for the search page).
|
||||
|
||||
## Advanced
|
||||
|
||||
### Liquid tags
|
||||
|
||||
Jekyll works with [liquid](https://shopify.github.io/liquid/) tags usually represented by:
|
||||
|
||||
```
|
||||
{{ liquid.tag | filter }}
|
||||
```
|
||||
|
||||
These are useful to render your jekyll files.
|
||||
You can learn more about them on [shopify's doc](https://help.shopify.com/themes/liquid/basics)
|
||||
|
||||
### Gulp toolbox
|
||||
|
||||
#### Requirements
|
||||
|
||||
Before you need to have *node* and `npm` installed:
|
||||
|
||||
- Windows: https://nodejs.org/
|
||||
- Ubuntu/Debian: `apt-get install nodejs npm libgl1 libxi6`
|
||||
- Fedora (dnf) / RHEL/CentOS (yum): `dnf install node npm libglvnd-glx libXi`
|
||||
|
||||
Then you need to install [`gulp-cli`](https://gulpjs.com/) and its dependencies:
|
||||
|
||||
```bash
|
||||
cd assets/
|
||||
sudo npm install gulp-cli -g
|
||||
npm install
|
||||
```
|
||||
|
||||
#### Minimizing and optimizing: css, js and images
|
||||
|
||||
You can run the default task that will compress the js, css and images and create the thumbnails for the supported image
|
||||
formats:
|
||||
|
||||
```bash
|
||||
cd assets/
|
||||
gulp default
|
||||
gulp thumbnails-all # to create all of the images thumbnails
|
||||
gulp thumbnails # to create thumbnails for the feature-img/ only
|
||||
# tip: run a git status to see the changes
|
||||
git status
|
||||
```
|
||||
|
||||
You can find more about the gulp tasks in the [gulpfile.js](assets/gulpfile.js).
|
||||
|
||||
#### Create a post
|
||||
|
||||
To create a `.md` file in the *_posts/* section with the jekyll format of today's date.
|
||||
Use this command with the title you'd like to create the very basic post.
|
||||
|
||||
```bash
|
||||
gulp post -n 'title of the post'
|
||||
```
|
||||
|
||||
A file will be created following the format `yyyy-mm-dd-title-of-the-post.md` with default post attributes inside.
|
||||
Nothing will happen if the file exists already.
|
||||
|
||||
### Use as Ruby Gem 💎
|
||||
|
||||
You can use Type-on-strap as a [gem](https://rubygems.org/gems/type-on-strap).
|
||||
|
||||
Using the [Ruby Gem Method](https://sylhare.github.io/2021/03/25/Run-type-on-strap-jekyll-theme-locally.html).
|
||||
Add this line to your Jekyll site's Gemfile (or create one):
|
||||
|
||||
```ruby
|
||||
gem "type-on-strap"
|
||||
```
|
||||
|
||||
Add this line to your Jekyll site's `_config.yml` file:
|
||||
|
||||
```yml
|
||||
theme: type-on-strap
|
||||
```
|
||||
|
||||
Then run Bundler to install the theme gem and dependencies:
|
||||
|
||||
```bash
|
||||
bundle install
|
||||
```
|
||||
|
||||
Then you can start adding content like:
|
||||
- Add a `index.html` file
|
||||
- Add the feature page you want. (ex: as it is already in `pages`)
|
||||
- Add posts in `_posts` and `_portfolio` to be displayed
|
||||
|
||||
### Remote Theme
|
||||
|
||||
Now you can use any theme gem with GitHub pages with [29/11/2017 Github Pages Broadcast](https://github.com/blog/2464-use-any-theme-with-github-pages).
|
||||
For that remove all `theme:` attributes from `_config.yml` and add instead:
|
||||
|
||||
```yml
|
||||
remote_theme: sylhare/Type-on-Strap
|
||||
```
|
||||
Very work in progress!
|
||||
|
||||
## License
|
||||
|
||||
This theme is licensed under the [The MIT License (MIT)](/LICENSE)
|
||||
The "Type-on-strap" theme is licensed under the [The MIT License (MIT)](/LICENSE)
|
||||
|
||||
- Pictures from [Pexels](https://www.pexels.com/) are under Creative Commons Zero (CC0) license
|
||||
- Fonts are licensed under the [SIL Open Font License (OFL)](https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL)
|
||||
|
|
Loading…
Reference in a new issue