j1-template 2021.1.13 → 2021.1.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_includes/themes/j1/blocks/footer/boxes/issue.proc +28 -5
- data/_includes/themes/j1/blocks/footer/boxes/legal_statements.proc +66 -23
- data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +0 -1
- data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +16 -1
- data/_includes/themes/j1/layouts/content_generator_blog_archive.html +197 -219
- data/_includes/themes/j1/layouts/content_generator_collection.html +4 -2
- data/_includes/themes/j1/layouts/content_generator_post.html +34 -24
- data/_includes/themes/j1/layouts/layout_metadata_generator.html +30 -7
- data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +2 -2
- data/_includes/themes/j1/procedures/posts/collate_timeline.proc +27 -5
- data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
- data/_includes/themes/j1/procedures/posts/pager.proc +123 -0
- data/_layouts/default.html +2 -2
- data/assets/data/authclient.html +1 -0
- data/assets/data/banner.html +1 -0
- data/assets/data/carousel.json +1 -0
- data/assets/data/cookieconsent.html +1 -2
- data/assets/data/fam.html +1 -0
- data/assets/data/footer.html +1 -0
- data/assets/data/galleries.json +1 -0
- data/assets/data/gallery_customizer.html +1 -0
- data/assets/data/mdi_icons.json +1 -0
- data/assets/data/menu.html +2 -1
- data/assets/data/mmenu.html +1 -0
- data/assets/data/mmenu_sidebar.html +1 -0
- data/assets/data/mmenu_toc.html +21 -1
- data/assets/data/panel.html +29 -7
- data/assets/data/quicklinks.html +1 -0
- data/assets/data/themes.json +1 -0
- data/assets/data/twa_v1.json +1 -0
- data/assets/error_pages/HTTP204.html +17 -2
- data/assets/error_pages/HTTP400.html +17 -2
- data/assets/error_pages/HTTP401.html +17 -2
- data/assets/error_pages/HTTP403.html +17 -2
- data/assets/error_pages/HTTP404.html +17 -2
- data/assets/error_pages/HTTP444.html +17 -2
- data/assets/error_pages/HTTP500.html +17 -2
- data/assets/error_pages/HTTP501.html +17 -2
- data/assets/error_pages/HTTP502.html +17 -2
- data/assets/error_pages/HTTP503.html +17 -3
- data/assets/themes/j1/adapter/js/cookieConsent.js +9 -8
- data/assets/themes/j1/adapter/js/j1.js +137 -65
- data/assets/themes/j1/adapter/js/navigator.js +7 -0
- data/assets/themes/j1/adapter/js/themer.js +16 -26
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +21 -42
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -1
- data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +2 -288
- data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +60 -41
- data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +75 -57
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +4 -5
- data/lib/starter_web/_config.yml +7 -1
- data/lib/starter_web/_data/blocks/footer.yml +52 -20
- data/lib/starter_web/_data/blocks/panel.yml +4 -4
- data/lib/starter_web/_data/builder/blog_navigator.yml +9 -192
- data/lib/starter_web/_data/builder/defaults/blog_navigator.yml +389 -0
- data/lib/starter_web/_data/j1_config.yml +55 -39
- data/lib/starter_web/_data/locales/be.yml +269 -0
- data/lib/starter_web/_data/locales/cs.yml +218 -0
- data/lib/starter_web/_data/locales/da.yml +213 -0
- data/lib/starter_web/_data/locales/de.yml +222 -0
- data/lib/starter_web/_data/locales/el.yml +215 -0
- data/lib/starter_web/_data/locales/en.yml +215 -0
- data/lib/starter_web/_data/locales/es.yml +219 -0
- data/lib/starter_web/_data/locales/et.yml +207 -0
- data/lib/starter_web/_data/locales/fi.yml +211 -0
- data/lib/starter_web/_data/locales/fr.yml +219 -0
- data/lib/starter_web/_data/locales/hr.yml +240 -0
- data/lib/starter_web/_data/locales/hu.yml +196 -0
- data/lib/starter_web/_data/locales/it.yml +215 -0
- data/lib/starter_web/_data/locales/lv.yml +233 -0
- data/lib/starter_web/_data/locales/nl.yml +213 -0
- data/lib/starter_web/_data/locales/pl.yml +241 -0
- data/lib/starter_web/_data/locales/pt.yml +217 -0
- data/lib/starter_web/_data/locales/readme +4 -0
- data/lib/starter_web/_data/locales/ro.yml +209 -0
- data/lib/starter_web/_data/locales/ru.yml +269 -0
- data/lib/starter_web/_data/locales/sk.yml +211 -0
- data/lib/starter_web/_data/locales/sl.yml +209 -0
- data/lib/starter_web/_data/locales/sv.yml +207 -0
- data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +10 -10
- data/lib/starter_web/_data/modules/defaults/quicksearch.yml +6 -5
- data/lib/starter_web/_data/modules/defaults/themer.yml +1 -0
- data/lib/starter_web/_data/modules/quicksearch.yml +4 -1
- data/lib/starter_web/_data/modules/themer.yml +1 -0
- data/lib/starter_web/_data/plugins/defaults/paginator.yml +7 -6
- data/lib/starter_web/_data/plugins/paginator.yml +3 -0
- data/lib/starter_web/_includes/attributes.asciidoc +1 -1
- data/lib/starter_web/_plugins/date-i18n.rb +67 -0
- data/lib/starter_web/_plugins/lunr_index.rb +5 -1
- data/lib/starter_web/assets/images/modules/attics/markus-spiske-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/matthew-dockery-1920x1280.jpg +0 -0
- data/lib/starter_web/collections/posts/public/featured/_posts/2020-01-01-about-cookies.adoc +1 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-01-site-generators.adoc +1 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-03-about-j1.adoc +1 -1
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +2 -2
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +2 -2
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +2 -2
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +2 -2
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +1 -1
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +1 -1
- data/lib/starter_web/index.html +5 -2
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/000_intro.adoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/100_chapter.adoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/200_chapter.adoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/900_references.adoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.adoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/100_chapter.asciidoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/200_chapter.asciidoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +2 -2
- data/lib/starter_web/pages/public/blog/navigator/archive.html +82 -17
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +92 -28
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +85 -20
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +98 -41
- data/lib/starter_web/pages/public/blog/navigator/index.html +2 -1
- data/lib/starter_web/pages/public/learn/quickstart.adoc +473 -0
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +2 -2
- data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +118 -0
- data/lib/starter_web/pages/public/legal/de/100_impress.adoc +90 -0
- data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +322 -0
- data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +125 -0
- data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +8 -5
- data/lib/starter_web/pages/public/legal/en/200_impress.adoc +7 -5
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +10 -8
- data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +36 -18
- data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +3 -2
- data/lib/starter_web/pages/public/previewer/iframer.adoc +1 -1
- data/lib/starter_web/pages/public/previewer/rouge.adoc +1 -1
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +35 -4
- data/_includes/themes/j1/procedures/global/pager.proc +0 -79
- data/lib/starter_web/pages/public/cookieConsent.adoc +0 -96
@@ -1,11 +1,12 @@
|
|
1
1
|
---
|
2
2
|
layout: page
|
3
3
|
title: Creators Blog
|
4
|
-
tagline:
|
5
|
-
description:
|
4
|
+
tagline: posts by tag
|
5
|
+
description: >
|
6
|
+
Browse articles by tag
|
6
7
|
|
7
|
-
categories: [
|
8
|
-
tags: [
|
8
|
+
categories: [ Blog ]
|
9
|
+
tags: [ Navigator, Tags ]
|
9
10
|
|
10
11
|
sort: date
|
11
12
|
toc: true
|
@@ -23,10 +24,17 @@ regenerate: false
|
|
23
24
|
|
24
25
|
resource_options:
|
25
26
|
- attic:
|
27
|
+
padding_top: 400
|
28
|
+
padding_bottom: 50
|
26
29
|
opacity: 0.5
|
27
30
|
slides:
|
28
|
-
- url: /assets/images/modules/attics/
|
29
|
-
alt:
|
31
|
+
- url: /assets/images/modules/attics/matthaeus-1920x1280.jpg
|
32
|
+
alt: Photo by Matthaeus
|
33
|
+
alignY: top
|
34
|
+
badge:
|
35
|
+
type: unsplash
|
36
|
+
author: Matthaeus
|
37
|
+
href: https://unsplash.com/@matthaeus123
|
30
38
|
---
|
31
39
|
|
32
40
|
{% comment %} TODO: logic for "letter_group_written == false" to be fixed
|
@@ -40,12 +48,26 @@ resource_options:
|
|
40
48
|
{% capture get_category_item %}themes/{{site.template.name}}/procedures/global/get_category_item.proc{% endcapture %}
|
41
49
|
{% capture create_word_cloud %}themes/{{site.template.name}}/procedures/global/create_word_cloud.proc{% endcapture %}
|
42
50
|
|
51
|
+
{% comment %} Set config files
|
52
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
53
|
+
{% assign template_config = site.data.j1_config %}
|
54
|
+
{% assign blocks = site.data.blocks %}
|
55
|
+
{% assign modules = site.data.modules %}
|
56
|
+
{% assign builder = site.data.builder %}
|
57
|
+
{% assign plugins = site.data.plugins %}
|
58
|
+
|
59
|
+
{% comment %} Set config data
|
60
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
61
|
+
{% assign blog_navigator_defaults = builder.defaults.blog_navigator.defaults %}
|
62
|
+
{% assign blog_navigator_settings = builder.blog_navigator.settings %}
|
63
|
+
|
64
|
+
{% comment %} Set config options
|
65
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
66
|
+
{% assign blog_navigator_options = blog_navigator_defaults | merge: blog_navigator_settings %}
|
67
|
+
|
43
68
|
{% comment %} Variables
|
44
69
|
-------------------------------------------------------------------------------- {% endcomment %}
|
45
|
-
{% assign
|
46
|
-
{% assign truncate_words = site.excerpt_truncate_words %}
|
47
|
-
{% assign view_description = view_config.description %}
|
48
|
-
{% assign defaults = site.data.builder.blog_navigator.defaults %}
|
70
|
+
{% assign truncate_words = site.excerpt_truncate_words %}
|
49
71
|
|
50
72
|
{% if site.permalink == 'none' %}
|
51
73
|
{% capture browser_page_url %}{{page.url}}.html{% endcapture %}
|
@@ -82,6 +104,46 @@ resource_options:
|
|
82
104
|
{% capture tag_list %}{{tag_list | append: tag}}{% unless forloop.last %},{% endunless %}{% endcapture %}
|
83
105
|
{% endfor %}
|
84
106
|
|
107
|
+
{% comment %} language detection
|
108
|
+
-------------------------------------------------------------------------------- {% endcomment %}
|
109
|
+
{% if site.language == "en" %}
|
110
|
+
{% assign language = "en" %}
|
111
|
+
{% elsif site.language == "de"%}
|
112
|
+
{% assign language = "de" %}
|
113
|
+
{% else %}
|
114
|
+
{% assign language = "en" %}
|
115
|
+
{% endif %}
|
116
|
+
|
117
|
+
{% if language == "en" %}
|
118
|
+
{% assign readmore_text = "read" %}
|
119
|
+
|
120
|
+
{% assign category_view_button_text = blog_navigator_options.button_text.view_selector.category_view.en %}
|
121
|
+
{% assign date_view_button_text = blog_navigator_options.button_text.view_selector.date_view.en %}
|
122
|
+
{% assign archive_view_button_text = blog_navigator_options.button_text.view_selector.archive_view.en %}
|
123
|
+
{% assign tag_view_button_text = blog_navigator_options.button_text.view_selector.tag_view.en %}
|
124
|
+
|
125
|
+
{% assign view_headline = blog_navigator_options.tag_view.page_text.en.headline %}
|
126
|
+
{% assign view_description_text = blog_navigator_options.tag_view.page_text.en.description %}
|
127
|
+
{% endif %}
|
128
|
+
|
129
|
+
{% if language == "de" %}
|
130
|
+
{% assign readmore_text = "lesen" %}
|
131
|
+
|
132
|
+
{% assign category_view_button_text = blog_navigator_options.button_text.view_selector.category_view.de %}
|
133
|
+
{% assign date_view_button_text = blog_navigator_options.button_text.view_selector.date_view.de %}
|
134
|
+
{% assign archive_view_button_text = blog_navigator_options.button_text.view_selector.archive_view.de %}
|
135
|
+
{% assign tag_view_button_text = blog_navigator_options.button_text.view_selector.tag_view.de %}
|
136
|
+
|
137
|
+
{% assign view_headline = blog_navigator_options.tag_view.page_text.de.headline %}
|
138
|
+
{% assign view_description_text = blog_navigator_options.tag_view.page_text.de.description %}
|
139
|
+
{% endif %}
|
140
|
+
|
141
|
+
{% comment %} Debugging
|
142
|
+
--------------------------------------------------------------------------------
|
143
|
+
skip_categories: {{skip_categories | debug}}
|
144
|
+
site_category_word_list: {{site_category_word_list | debug}}
|
145
|
+
--------------------------------------------------------------------------------
|
146
|
+
{% endcomment %}
|
85
147
|
|
86
148
|
{% comment %} Main
|
87
149
|
-------------------------------------------------------------------------------- {% endcomment %}
|
@@ -90,16 +152,22 @@ resource_options:
|
|
90
152
|
|
91
153
|
<div class="paginator ml-3">
|
92
154
|
<ul class="pagination raised-z0">
|
93
|
-
<li class="page-item"><a class="page-link" href="{{navigator | prepend: site.baseurl}}"
|
94
|
-
<li class="page-item"><a class="page-link" href="{{date_view | prepend: site.baseurl}}"
|
95
|
-
<li class="page-item"><a class="page-link" href="{{category_view | prepend: site.baseurl}}"
|
96
|
-
<li class="page-item"><a class="page-link" href="{{all_view | prepend: site.baseurl}}"
|
155
|
+
<li class="page-item"><a class="page-link" href="{{navigator | prepend: site.baseurl}}" alt="Blog View">Navigator</a></li>
|
156
|
+
<li class="page-item"><a class="page-link" href="{{date_view | prepend: site.baseurl}}" alt="View by Date">By Date</a></li>
|
157
|
+
<li class="page-item"><a class="page-link" href="{{category_view | prepend: site.baseurl}}" alt="View by Category">By Category</a></li>
|
158
|
+
<li class="page-item"><a class="page-link" href="{{all_view | prepend: site.baseurl}}" alt="View All">All Posts</a></li>
|
97
159
|
</ul>
|
98
160
|
</div>
|
99
161
|
|
100
162
|
<div class="post-search-results ml-3">
|
101
|
-
|
102
|
-
<div class="
|
163
|
+
{% if blog_navigator_options.tag_view.page_text.enabled %}
|
164
|
+
<div class="view-description">{{view_description_text}}</div>
|
165
|
+
{% endif %}
|
166
|
+
|
167
|
+
<div class="post-headline">
|
168
|
+
<h1 id="post-headline notoc" class="mt-5">Posts By Tag</h1>
|
169
|
+
</div>
|
170
|
+
|
103
171
|
{% assign letter_group = letter_group_array[letter_group_counter] %}
|
104
172
|
|
105
173
|
{% for item in (0..site.tags.size) %}{% unless forloop.last %}
|
@@ -120,7 +188,7 @@ resource_options:
|
|
120
188
|
--------------------------------------------------------------------------
|
121
189
|
<!-- jadams, 2018-01-17: logic seems NOT work. Disabled. -->
|
122
190
|
{% if letter_group_written == false %}
|
123
|
-
<
|
191
|
+
<h2 id="id_{{letter_group}}" class="toc-link mt-5 mb-5"><a alt="Back to top" href="#"><i class="fa fa-tags mr-2"></i></a>{{letter_group | upcase}}</h2>
|
124
192
|
{% assign letter_group_written = true %}
|
125
193
|
{% endif %}
|
126
194
|
-------------------------------------------------------------------------- {% endcomment %}
|
@@ -132,11 +200,11 @@ resource_options:
|
|
132
200
|
Added workaround by checking if letter_group has a value
|
133
201
|
-------------------------------------------------------------------------- {% endcomment %}
|
134
202
|
{% if letter_group %}
|
135
|
-
<
|
136
|
-
<a
|
203
|
+
<h2 id="id_{{letter_group}}" class="toc-link mb-3">
|
204
|
+
<a alt="Back to top" href="#">
|
137
205
|
<i class="fa fa-tags mr-2"></i>
|
138
206
|
</a>{{letter_group | upcase}}
|
139
|
-
</
|
207
|
+
</h2>
|
140
208
|
{% endif %}
|
141
209
|
{% assign letter_group_written = true %}
|
142
210
|
{% endif %}
|
@@ -147,7 +215,7 @@ resource_options:
|
|
147
215
|
first_letter: {{first_letter | debug}}
|
148
216
|
{% endcomment %}
|
149
217
|
|
150
|
-
<
|
218
|
+
<h3 id="{{this_word | replace: '+','_' | replace: ' ','_' | downcase}}" class="toc-link"><a alt="Back to top" href="#"><i class="fa fa-tag mr-2"></i></a>{{this_word}}</h3>
|
151
219
|
|
152
220
|
{% for post in site.tags[this_word] %}{% if post.title != null %}
|
153
221
|
{% include {{get_category}} post=post %}
|
@@ -159,25 +227,9 @@ resource_options:
|
|
159
227
|
|
160
228
|
{% assign excerpt = post.excerpt|truncatewords:truncate_words|replace:'...',' ...'|strip_html|strip_newlines|strip %}
|
161
229
|
|
162
|
-
<!-- place post -->
|
163
|
-
<!--div class="card card-flat mb-4">
|
164
|
-
<div class="card-body">
|
165
|
-
|
166
|
-
<h5 id="{{ 100000 | rand }}" class="card-title">{{ post.title }}</h5>
|
167
|
-
<h6 class="notoc card-subtitle text-muted mb-2">{{ post.tagline }}</h6>
|
168
|
-
<div class="card-text"><p>{{ excerpt }}</p></div>
|
169
|
-
</div>
|
170
|
-
<div class="card-footer">
|
171
|
-
<a class="btn btn-primary btn-raised btn-flex" href="{{post.url}}#readmore">
|
172
|
-
<i class="fa fa-eye fa-lg" style="color:#FFFFFF;"></i>
|
173
|
-
Read more
|
174
|
-
</a>
|
175
|
-
</div>
|
176
|
-
</div -->
|
177
|
-
|
178
230
|
<!-- place post -->
|
179
231
|
<article class="card raised-z3 mb-5">
|
180
|
-
<
|
232
|
+
<h4 id="{{100000|rand}}" class="card-header bg-primary">{{post.title}}</h4>
|
181
233
|
<div class="row mx-0">
|
182
234
|
|
183
235
|
<!-- [INFO ] [j1.pages.blog.navigator.archive ] [Check if post image is available] -->
|
@@ -189,7 +241,7 @@ resource_options:
|
|
189
241
|
{% else %}
|
190
242
|
<!-- [INFO ] [j1.pages.blog.navigator.archive ] [Post image missing, using configured default image] -->
|
191
243
|
<div class="col-md-6 img-bg--fill px-0"
|
192
|
-
style="background-image: url({{
|
244
|
+
style="background-image: url({{blog_navigator_options.post_image}});">
|
193
245
|
</div>
|
194
246
|
{% endif %}
|
195
247
|
|
@@ -199,7 +251,12 @@ resource_options:
|
|
199
251
|
<div class="card-footer-text">
|
200
252
|
<hr class="my-3">
|
201
253
|
{% if post.date %}
|
202
|
-
|
254
|
+
{% if language == "en" %}
|
255
|
+
<i class="mdi mdi-calendar-blank md-grey-600 mr-1"></i>{{post.date | localize: "%Y %B, %e"}}
|
256
|
+
{% endif %}
|
257
|
+
{% if language == "de" %}
|
258
|
+
<i class="mdi mdi-calendar-blank md-grey-600 mr-1"></i>{{post.date | localize: "%-d. %B %Y"}}
|
259
|
+
{% endif %}
|
203
260
|
{% endif %}
|
204
261
|
{% if likes_count %}
|
205
262
|
<span class="font-weight-bold"> · </span>
|
@@ -212,7 +269,7 @@ resource_options:
|
|
212
269
|
</div>
|
213
270
|
<a class="card-link text-muted text-lowercase"
|
214
271
|
href="{{post.url}}#readmore">
|
215
|
-
|
272
|
+
{{readmore_text}} · {{post.tagline}}
|
216
273
|
</a>
|
217
274
|
</div>
|
218
275
|
</div>
|
@@ -0,0 +1,473 @@
|
|
1
|
+
---
|
2
|
+
title: Quickstart
|
3
|
+
tagline: an amazing site in 15 minutes
|
4
|
+
date: 2021-03-07 00:00:00
|
5
|
+
description: >
|
6
|
+
Welcome to the pages of J1 Template. If your here
|
7
|
+
first time, a good decision you get on that page first.
|
8
|
+
For sure, there is no better place to go.
|
9
|
+
|
10
|
+
categories: [ Knowledge ]
|
11
|
+
tags: [ J1, Template, Quickstart ]
|
12
|
+
|
13
|
+
comments: true
|
14
|
+
fam_menu_id: page_ctrl_simple
|
15
|
+
|
16
|
+
permalink: /pages/public/learn/quickstart/
|
17
|
+
regenerate: false
|
18
|
+
|
19
|
+
resources: [ clipboard, rouge ]
|
20
|
+
resource_options:
|
21
|
+
- attic:
|
22
|
+
padding_top: 400
|
23
|
+
padding_bottom: 50
|
24
|
+
opacity: 0.5
|
25
|
+
slides:
|
26
|
+
- url: /assets/images/modules/attics/matthew-dockery-1920x1280.jpg
|
27
|
+
alt: Photo by Matthew Dockery on Unsplash
|
28
|
+
badge:
|
29
|
+
type: unsplash
|
30
|
+
author: Matthew Dockery
|
31
|
+
href: https://unsplash.com/@matt_dockery
|
32
|
+
---
|
33
|
+
|
34
|
+
// Page Initializer
|
35
|
+
// =============================================================================
|
36
|
+
// Enable the Liquid Preprocessor
|
37
|
+
:page-liquid:
|
38
|
+
|
39
|
+
// Set (local) page attributes here
|
40
|
+
// -----------------------------------------------------------------------------
|
41
|
+
// :page--attr: <attr-value>
|
42
|
+
|
43
|
+
// Load Liquid procedures
|
44
|
+
// -----------------------------------------------------------------------------
|
45
|
+
{% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
|
46
|
+
|
47
|
+
// Load page attributes
|
48
|
+
// -----------------------------------------------------------------------------
|
49
|
+
{% include {{load_attributes}} scope="global" %}
|
50
|
+
|
51
|
+
|
52
|
+
// Page content
|
53
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
54
|
+
|
55
|
+
// Include sub-documents
|
56
|
+
// -----------------------------------------------------------------------------
|
57
|
+
|
58
|
+
*All you need for your new amazing site.*
|
59
|
+
|
60
|
+
Jekyll meets Bootstrap - and makes a lot of friends. J1 Template combines
|
61
|
+
the best of OpenSource software for the Web and the Web site generator
|
62
|
+
`Jekyll`. J1 is OpenSource, and so are the packaged modules. No pain for
|
63
|
+
private or professional use. Check J1 Template today to learn what's possible
|
64
|
+
if you go to the Jekyll Way.
|
65
|
+
|
66
|
+
*Create powerful modern Static Webs: Secure, Flexible and Fast.*
|
67
|
+
|
68
|
+
The template comes with a Web included, a skeleton for new website created
|
69
|
+
with J1 Template. This Web is called the *Starter Web*, a general-purpose
|
70
|
+
Website scaffold to be modified for your needs. The built-in Starter Web
|
71
|
+
can be visited live at https://publish.jekyll.one/[J1 Publish, {browser-window--new}].
|
72
|
+
This site show live pages deployed on the Internet on _Github_, _Netlify_
|
73
|
+
and _Heroku_.
|
74
|
+
|
75
|
+
*Have fun exploring what a modern static web, a Jekyll site can do*!
|
76
|
+
|
77
|
+
== The Software needed
|
78
|
+
|
79
|
+
J1 is supported on all current x64-based OS:
|
80
|
+
|
81
|
+
* Windows 10, build >= 1903
|
82
|
+
* Windows WSL 2
|
83
|
+
* Linux, kernel version >= 4.15 (e.g. Ubuntu 18.x LTS)
|
84
|
+
* OSX, version >= 10.10.5 (Yosemite)
|
85
|
+
|
86
|
+
WARNING: Note that 32-bit versions (x32) are generally NOT supported for all
|
87
|
+
platforms.
|
88
|
+
|
89
|
+
=== Development languages and tools
|
90
|
+
|
91
|
+
To run the Development System for J1 Template, the following languages and
|
92
|
+
tools expected to be in place with your OS:
|
93
|
+
|
94
|
+
* Ruby language, version >= 2.6
|
95
|
+
* Javascript language (NodeJS), version >= 12.x
|
96
|
+
|
97
|
+
NOTE: More current or older versions may work, but not tested.
|
98
|
+
|
99
|
+
=== Software upgrades needed for all platforms
|
100
|
+
|
101
|
+
If _Ruby_ and _NodeJS_ are in place, some packages are to be upgraded to
|
102
|
+
more *current* versions. Install all packages system-wide with their
|
103
|
+
respective product installation pathes.
|
104
|
+
|
105
|
+
==== Upgrades needed for Ruby < v2.7
|
106
|
+
|
107
|
+
Install latest bundler for Ruby:
|
108
|
+
|
109
|
+
[source, sh]
|
110
|
+
----
|
111
|
+
gem install bundler --no-document
|
112
|
+
----
|
113
|
+
|
114
|
+
Install latest RubyGems for Ruby:
|
115
|
+
|
116
|
+
[source, sh]
|
117
|
+
----
|
118
|
+
gem install rubygems-update --no-document
|
119
|
+
update_rubygems --no-document
|
120
|
+
gem update --system
|
121
|
+
----
|
122
|
+
|
123
|
+
==== Upgrades needed for NodeJS
|
124
|
+
|
125
|
+
NodeJS comes with NPM pre-installed. The native CLI for the NodeJS package
|
126
|
+
management is `npm`. Besides `npm` there's another quite handy CLI for NPM
|
127
|
+
available: *Yarn*.
|
128
|
+
|
129
|
+
The CLI `yarn` is developed at Facebook and can be used as a replacement
|
130
|
+
for `npm`. From a top-level perspective, both package management clients behave
|
131
|
+
pretty much the same. The syntax `yarn` uses is shorter in writing, making
|
132
|
+
the command-line look a bit more natural. Therefore, we prefer to use `yarn`.
|
133
|
+
|
134
|
+
NOTE: Yarn adds some additional features to the NodeJS package management
|
135
|
+
implemented for the needs at Facebook. Regarding the J1 development system,
|
136
|
+
those add-ons are neither needed nor used.
|
137
|
+
|
138
|
+
Install latest NPM and Yarn packages for NodeJS:
|
139
|
+
|
140
|
+
[source, sh]
|
141
|
+
----
|
142
|
+
npm install -g npm@latest
|
143
|
+
npm install -g yarn@latest
|
144
|
+
----
|
145
|
+
|
146
|
+
== Create a Starter Web
|
147
|
+
|
148
|
+
Running the J1 template project is very simple:
|
149
|
+
|
150
|
+
* Download the J1 Gem
|
151
|
+
* Create a J1 web project
|
152
|
+
* Setup the runtime environment for your project
|
153
|
+
* Run and develop the buildin starter web
|
154
|
+
|
155
|
+
Find all details on this with the sections below.
|
156
|
+
|
157
|
+
=== Download the J1 Gem
|
158
|
+
|
159
|
+
The Gem for J1 Template (runtime system) is published on _RubyGems_.
|
160
|
+
You can get it by installing the package using the Ruby `gem` command or
|
161
|
+
by downloading it from link:{url-j1--download}[RubyGems, {browser-window--new}].
|
162
|
+
|
163
|
+
.Userized installation
|
164
|
+
[source, sh]
|
165
|
+
----
|
166
|
+
gem install j1-template --remote --user-install --no-document
|
167
|
+
----
|
168
|
+
|
169
|
+
.System-wide installation
|
170
|
+
[source, sh]
|
171
|
+
----
|
172
|
+
gem install j1-template --remote --no-document
|
173
|
+
----
|
174
|
+
|
175
|
+
NOTE: To *not* pollute the system-wide Gem folder of a Ruby-installation by
|
176
|
+
*user* and *project* specific Gems, it is recommend to install *J1* userized.
|
177
|
+
|
178
|
+
J1 is a so-called *gem-based* template, a *Ruby Gem* managed by the (gem)
|
179
|
+
internal executeable (command) *j1*. Check your version installed or some
|
180
|
+
usage information by running:
|
181
|
+
|
182
|
+
.Version information
|
183
|
+
[source, sh]
|
184
|
+
----
|
185
|
+
j1 --version
|
186
|
+
----
|
187
|
+
|
188
|
+
.Usage information
|
189
|
+
[source, sh]
|
190
|
+
----
|
191
|
+
j1 --help
|
192
|
+
----
|
193
|
+
|
194
|
+
=== Setup a project
|
195
|
+
|
196
|
+
Is the Ruby Gem *J1* installed, a project, a website needs to be generated
|
197
|
+
by J1's build-in executable *j1*. The command *j1* is used to manage *base*
|
198
|
+
project tasks like generating a *project*.
|
199
|
+
|
200
|
+
If a *project* (a website) is generated, all development tasks are managed
|
201
|
+
by *NPM scripts* (NodeJS). Development *tasks* are defined as *scripts*
|
202
|
+
with the project config file `package.json`.
|
203
|
+
|
204
|
+
First, create a projects folder for all website to be generated J1. For the
|
205
|
+
following examples, a project is generated on _Windows_ using *C:\Temp*
|
206
|
+
for the project's folder.
|
207
|
+
|
208
|
+
.Usage information
|
209
|
+
[source, sh]
|
210
|
+
----
|
211
|
+
j1 generate starter
|
212
|
+
----
|
213
|
+
|
214
|
+
.Output
|
215
|
+
----
|
216
|
+
Running bundle install in c:/Temp/starter ...
|
217
|
+
Install bundle in USER gem folder ~/.gem ...
|
218
|
+
|
219
|
+
Bundler: Fetching gem metadata from https://rubygems.org/ ...
|
220
|
+
Bundler: Fetching gem metadata from https://rubygems.org/.
|
221
|
+
Bundler: Resolving dependencies...
|
222
|
+
Bundler: Using rake 12.3.3
|
223
|
+
Bundler: Using public_suffix 4.0.6
|
224
|
+
...
|
225
|
+
Bundler: Using wdm 0.1.1
|
226
|
+
Bundler: Bundle complete! 34 Gemfile dependencies, 86 gems now installed.
|
227
|
+
Bundler: Bundled gems are installed into `../../Users/jadams/.gem`
|
228
|
+
|
229
|
+
Install patches in USER gem folder ~/.gem ...
|
230
|
+
Install patches on path C:/Users/jadams/.gem/ruby/2.6.0 ...
|
231
|
+
Generated Jekyll site force installed in folder c:/Temp/starter
|
232
|
+
----
|
233
|
+
|
234
|
+
=== Setup the runtime
|
235
|
+
|
236
|
+
The command *j1 generate* creates a project folder with the name given. In
|
237
|
+
this example, the project is *starter*. Change to this folder
|
238
|
+
|
239
|
+
[source, sh]
|
240
|
+
----
|
241
|
+
cd C:\Temp\starter
|
242
|
+
----
|
243
|
+
|
244
|
+
A J1 project consists in several files and folders. Find a typical structure
|
245
|
+
as below:
|
246
|
+
|
247
|
+
.J1 Project structure
|
248
|
+
----
|
249
|
+
├──── .
|
250
|
+
│ └─ _data <1>
|
251
|
+
│ └─ _includes <2>
|
252
|
+
│ └─ _plugins <3>
|
253
|
+
│ └─ assets <4>
|
254
|
+
│ └─ collections <5>
|
255
|
+
│ └─ pages <6>
|
256
|
+
│ └─ utilsrv
|
257
|
+
├──── _config.yml <7>
|
258
|
+
├──── config.ru
|
259
|
+
├──── dot.gitattributes
|
260
|
+
├──── dot.gitignore
|
261
|
+
├──── dot.nojekyll
|
262
|
+
├──── favicon.ico
|
263
|
+
├──── Gemfile <8>
|
264
|
+
├──── index.html <9>
|
265
|
+
└──── package.json <10>
|
266
|
+
----
|
267
|
+
<1> Configuration data for the website
|
268
|
+
<2> Asciidoc (global) includes
|
269
|
+
<3> Build-in (Ruby) plugins
|
270
|
+
<4> Assets for the web
|
271
|
+
<5> Folder that contains all blog posts
|
272
|
+
<6> Folder that contains all (article) pages
|
273
|
+
<7> Central (Jekyll) site configuration
|
274
|
+
<8> Ruby Gemfile
|
275
|
+
<9> Homepage for the web
|
276
|
+
<10> (NPM) Project file
|
277
|
+
|
278
|
+
The first step, done only once, is to initialize a project. What means to
|
279
|
+
download and install all resources for your new website followed by an
|
280
|
+
initial creation process for the new site. Initializing a project is managed
|
281
|
+
by the (NPM) *task* `setup`. A bunch of sub-tasks get fired, all of them
|
282
|
+
managed by NPM.
|
283
|
+
|
284
|
+
Let's start ...
|
285
|
+
|
286
|
+
[source, sh]
|
287
|
+
----
|
288
|
+
yarn setup
|
289
|
+
----
|
290
|
+
|
291
|
+
Because a lot of sub-tasks getting started for a (first) `setup`, see below
|
292
|
+
the output as a summary:
|
293
|
+
|
294
|
+
----
|
295
|
+
Setup project for first use ..
|
296
|
+
Bootstrap base modules ..
|
297
|
+
done.
|
298
|
+
Configure environment ..
|
299
|
+
done.
|
300
|
+
Create project folders ..
|
301
|
+
Create log folder ..
|
302
|
+
Create archived log folder ..
|
303
|
+
Create etc folder ..
|
304
|
+
done.
|
305
|
+
Bootstrap project modules ..
|
306
|
+
Bootstrap utility server modules ..
|
307
|
+
done.
|
308
|
+
Detect OS ..
|
309
|
+
OS detected: Windows_NT
|
310
|
+
Build site incremental ..
|
311
|
+
Configuration file: c:/Temp/starter/_config.yml
|
312
|
+
Source: c:/Temp/starter
|
313
|
+
Destination: c:/Temp/starter/_site
|
314
|
+
Incremental build: enabled
|
315
|
+
Generating...
|
316
|
+
J1 QuickSearch: creating search index ...
|
317
|
+
J1 QuickSearch: finished, index ready.
|
318
|
+
J1 Paginator: autopages, disabled|not configured
|
319
|
+
J1 Paginator: pagination enabled, start processing ...
|
320
|
+
J1 Paginator: finished, processed 5 pagination page|s
|
321
|
+
done in 25.687 seconds.
|
322
|
+
Auto-regeneration: disabled. Use --watch to enable.
|
323
|
+
.. build finished.
|
324
|
+
To open the site, run: yarn site
|
325
|
+
|
326
|
+
Done in 88.03s.
|
327
|
+
----
|
328
|
+
|
329
|
+
The `setup` process will take a while - typically some minutes for the
|
330
|
+
*first* run (depending on the performances of your Internet connection
|
331
|
+
and your workstation). A bunch of NPM modules and Ruby Gems are downloaded
|
332
|
+
and linked for the components part of the project. See `setup` as an extended
|
333
|
+
*install* and *build* process to manage an initial setup for your new
|
334
|
+
website.
|
335
|
+
|
336
|
+
=== Run and develop a starter web
|
337
|
+
|
338
|
+
Running the Starter Web for development is done like so:
|
339
|
+
|
340
|
+
[source, sh]
|
341
|
+
----
|
342
|
+
yarn site
|
343
|
+
----
|
344
|
+
|
345
|
+
The task `site` does a lot for you; whatever is necessary for a full-stack
|
346
|
+
Web development. The task will put in place all needed CSS and JS components,
|
347
|
+
build the Web content.
|
348
|
+
|
349
|
+
----
|
350
|
+
Startup the site ..
|
351
|
+
Configuration file: c:/Temp/starter/_config.yml
|
352
|
+
Source: c:/Temp/starter
|
353
|
+
Destination: c:/Temp/starter/_site
|
354
|
+
Incremental build: enabled
|
355
|
+
Generating...
|
356
|
+
J1 QuickSearch: creating search index ...
|
357
|
+
J1 QuickSearch: finished, index ready.
|
358
|
+
J1 Paginator: autopages, disabled|not configured
|
359
|
+
J1 Paginator: pagination enabled, start processing ...
|
360
|
+
J1 Paginator: finished, processed 5 pagination page|s
|
361
|
+
done in 7.1 seconds.
|
362
|
+
Auto-regeneration: enabled for '.'
|
363
|
+
LiveReload address: http://localhost:40001
|
364
|
+
Server address: http://localhost:40000/
|
365
|
+
Server running... press ctrl-c to stop.
|
366
|
+
LiveReload: Browser connected
|
367
|
+
----
|
368
|
+
|
369
|
+
Finally, the starter web get openend in your *default* browser.
|
370
|
+
|
371
|
+
Go, go, go ..
|
372
|
+
|
373
|
+
=== Rebuild a site
|
374
|
+
|
375
|
+
A project runs Jekyll in *incremental* mode with *auto-regeneration* enabled.
|
376
|
+
All changes made to the pages (posts) of your web at runtime are automatically
|
377
|
+
detected and the affected are rebuild and (live) reloaded.
|
378
|
+
|
379
|
+
To rebuild the *site* from the scratch, a web can be completely rebuild by
|
380
|
+
running the task `rebuild`:
|
381
|
+
|
382
|
+
[source, sh]
|
383
|
+
----
|
384
|
+
yarn rebuild
|
385
|
+
----
|
386
|
+
|
387
|
+
----
|
388
|
+
Rebuild site incremental ..
|
389
|
+
Clean up site files ..
|
390
|
+
Configuration file: c:/Temp/starter/_config.yml
|
391
|
+
Cleaner: Removing _site...
|
392
|
+
Cleaner: Removing ./.jekyll-metadata...
|
393
|
+
Cleaner: Removing ./.jekyll-cache...
|
394
|
+
Cleaner: Nothing to do for .sass-cache.
|
395
|
+
Configuration file: c:/Temp/starter/_config.yml
|
396
|
+
Source: c:/Temp/starter
|
397
|
+
Destination: c:/Temp/starter/_site
|
398
|
+
Incremental build: enabled
|
399
|
+
Generating...
|
400
|
+
J1 QuickSearch: creating search index ...
|
401
|
+
J1 QuickSearch: finished, index ready.
|
402
|
+
J1 Paginator: autopages, disabled|not configured
|
403
|
+
J1 Paginator: pagination enabled, start processing ...
|
404
|
+
J1 Paginator: finished, processed 5 pagination page|s
|
405
|
+
done in 25.221 seconds.
|
406
|
+
Auto-regeneration: disabled. Use --watch to enable.
|
407
|
+
.. rebuild finished.
|
408
|
+
To open the site, run: yarn site.
|
409
|
+
Done in 34.88s.
|
410
|
+
----
|
411
|
+
|
412
|
+
If the site rebuild, re-run:
|
413
|
+
|
414
|
+
[source, sh]
|
415
|
+
----
|
416
|
+
yarn site
|
417
|
+
----
|
418
|
+
|
419
|
+
and continue developing your website.
|
420
|
+
|
421
|
+
=== Reset a project
|
422
|
+
|
423
|
+
To start from the beginning, you can reset the runtime system to the
|
424
|
+
factory state. The top-level task `reset` does the resetting work for you
|
425
|
+
and cleans up each and everything except the NPM modules folder `node_modules`
|
426
|
+
stored in the project root.
|
427
|
+
|
428
|
+
[source, sh]
|
429
|
+
----
|
430
|
+
yarn reset
|
431
|
+
----
|
432
|
+
|
433
|
+
The cleanup runs some tasks for the root folder and in parallel sub-tasks
|
434
|
+
using Jekyll for the Web:
|
435
|
+
|
436
|
+
----
|
437
|
+
Reset project to factory state ..
|
438
|
+
Clean up base modules ..
|
439
|
+
Clean up site files ..
|
440
|
+
Configuration file: c:/Temp/starter/_config.yml
|
441
|
+
Cleaner: Removing _site...
|
442
|
+
Cleaner: Removing ./.jekyll-metadata...
|
443
|
+
Cleaner: Removing ./.jekyll-cache...
|
444
|
+
Cleaner: Nothing to do for .sass-cache.
|
445
|
+
Clean up projects files ..
|
446
|
+
Remove bundle config folder ..
|
447
|
+
Remove log folder ..
|
448
|
+
Remove etc folder ..
|
449
|
+
Remove various log files ..
|
450
|
+
Remove lock files ..
|
451
|
+
Clean up utility server ..
|
452
|
+
done.
|
453
|
+
Done in 10.23s.
|
454
|
+
----
|
455
|
+
|
456
|
+
To reset the project *completely*, delete the folder `node_modules` manually
|
457
|
+
and start from the beginning by running the `setup` task again:
|
458
|
+
|
459
|
+
[source, sh]
|
460
|
+
----
|
461
|
+
yarn setup
|
462
|
+
----
|
463
|
+
|
464
|
+
If the project is newly setup, re-run:
|
465
|
+
|
466
|
+
[source, sh]
|
467
|
+
----
|
468
|
+
yarn site
|
469
|
+
----
|
470
|
+
|
471
|
+
and continue developing your website.
|
472
|
+
|
473
|
+
Happy Jekylling!
|