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.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/blocks/footer/boxes/issue.proc +28 -5
  3. data/_includes/themes/j1/blocks/footer/boxes/legal_statements.proc +66 -23
  4. data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +0 -1
  5. data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +16 -1
  6. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +197 -219
  7. data/_includes/themes/j1/layouts/content_generator_collection.html +4 -2
  8. data/_includes/themes/j1/layouts/content_generator_post.html +34 -24
  9. data/_includes/themes/j1/layouts/layout_metadata_generator.html +30 -7
  10. data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +2 -2
  11. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +27 -5
  12. data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
  13. data/_includes/themes/j1/procedures/posts/pager.proc +123 -0
  14. data/_layouts/default.html +2 -2
  15. data/assets/data/authclient.html +1 -0
  16. data/assets/data/banner.html +1 -0
  17. data/assets/data/carousel.json +1 -0
  18. data/assets/data/cookieconsent.html +1 -2
  19. data/assets/data/fam.html +1 -0
  20. data/assets/data/footer.html +1 -0
  21. data/assets/data/galleries.json +1 -0
  22. data/assets/data/gallery_customizer.html +1 -0
  23. data/assets/data/mdi_icons.json +1 -0
  24. data/assets/data/menu.html +2 -1
  25. data/assets/data/mmenu.html +1 -0
  26. data/assets/data/mmenu_sidebar.html +1 -0
  27. data/assets/data/mmenu_toc.html +21 -1
  28. data/assets/data/panel.html +29 -7
  29. data/assets/data/quicklinks.html +1 -0
  30. data/assets/data/themes.json +1 -0
  31. data/assets/data/twa_v1.json +1 -0
  32. data/assets/error_pages/HTTP204.html +17 -2
  33. data/assets/error_pages/HTTP400.html +17 -2
  34. data/assets/error_pages/HTTP401.html +17 -2
  35. data/assets/error_pages/HTTP403.html +17 -2
  36. data/assets/error_pages/HTTP404.html +17 -2
  37. data/assets/error_pages/HTTP444.html +17 -2
  38. data/assets/error_pages/HTTP500.html +17 -2
  39. data/assets/error_pages/HTTP501.html +17 -2
  40. data/assets/error_pages/HTTP502.html +17 -2
  41. data/assets/error_pages/HTTP503.html +17 -3
  42. data/assets/themes/j1/adapter/js/cookieConsent.js +9 -8
  43. data/assets/themes/j1/adapter/js/j1.js +137 -65
  44. data/assets/themes/j1/adapter/js/navigator.js +7 -0
  45. data/assets/themes/j1/adapter/js/themer.js +16 -26
  46. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +21 -42
  47. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -1
  48. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +2 -288
  49. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +60 -41
  50. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +75 -57
  51. data/lib/j1/version.rb +1 -1
  52. data/lib/starter_web/Gemfile +4 -5
  53. data/lib/starter_web/_config.yml +7 -1
  54. data/lib/starter_web/_data/blocks/footer.yml +52 -20
  55. data/lib/starter_web/_data/blocks/panel.yml +4 -4
  56. data/lib/starter_web/_data/builder/blog_navigator.yml +9 -192
  57. data/lib/starter_web/_data/builder/defaults/blog_navigator.yml +389 -0
  58. data/lib/starter_web/_data/j1_config.yml +55 -39
  59. data/lib/starter_web/_data/locales/be.yml +269 -0
  60. data/lib/starter_web/_data/locales/cs.yml +218 -0
  61. data/lib/starter_web/_data/locales/da.yml +213 -0
  62. data/lib/starter_web/_data/locales/de.yml +222 -0
  63. data/lib/starter_web/_data/locales/el.yml +215 -0
  64. data/lib/starter_web/_data/locales/en.yml +215 -0
  65. data/lib/starter_web/_data/locales/es.yml +219 -0
  66. data/lib/starter_web/_data/locales/et.yml +207 -0
  67. data/lib/starter_web/_data/locales/fi.yml +211 -0
  68. data/lib/starter_web/_data/locales/fr.yml +219 -0
  69. data/lib/starter_web/_data/locales/hr.yml +240 -0
  70. data/lib/starter_web/_data/locales/hu.yml +196 -0
  71. data/lib/starter_web/_data/locales/it.yml +215 -0
  72. data/lib/starter_web/_data/locales/lv.yml +233 -0
  73. data/lib/starter_web/_data/locales/nl.yml +213 -0
  74. data/lib/starter_web/_data/locales/pl.yml +241 -0
  75. data/lib/starter_web/_data/locales/pt.yml +217 -0
  76. data/lib/starter_web/_data/locales/readme +4 -0
  77. data/lib/starter_web/_data/locales/ro.yml +209 -0
  78. data/lib/starter_web/_data/locales/ru.yml +269 -0
  79. data/lib/starter_web/_data/locales/sk.yml +211 -0
  80. data/lib/starter_web/_data/locales/sl.yml +209 -0
  81. data/lib/starter_web/_data/locales/sv.yml +207 -0
  82. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +10 -10
  83. data/lib/starter_web/_data/modules/defaults/quicksearch.yml +6 -5
  84. data/lib/starter_web/_data/modules/defaults/themer.yml +1 -0
  85. data/lib/starter_web/_data/modules/quicksearch.yml +4 -1
  86. data/lib/starter_web/_data/modules/themer.yml +1 -0
  87. data/lib/starter_web/_data/plugins/defaults/paginator.yml +7 -6
  88. data/lib/starter_web/_data/plugins/paginator.yml +3 -0
  89. data/lib/starter_web/_includes/attributes.asciidoc +1 -1
  90. data/lib/starter_web/_plugins/date-i18n.rb +67 -0
  91. data/lib/starter_web/_plugins/lunr_index.rb +5 -1
  92. data/lib/starter_web/assets/images/modules/attics/markus-spiske-1920x1280.jpg +0 -0
  93. data/lib/starter_web/assets/images/modules/attics/matthew-dockery-1920x1280.jpg +0 -0
  94. data/lib/starter_web/collections/posts/public/featured/_posts/2020-01-01-about-cookies.adoc +1 -1
  95. data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-01-site-generators.adoc +1 -1
  96. data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-03-about-j1.adoc +1 -1
  97. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +2 -2
  98. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +2 -2
  99. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +2 -2
  100. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +2 -2
  101. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +1 -1
  102. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +1 -1
  103. data/lib/starter_web/index.html +5 -2
  104. data/lib/starter_web/package.json +1 -1
  105. data/lib/starter_web/pages/public/asciidoc_skeletons/book/000_intro.adoc +2 -2
  106. data/lib/starter_web/pages/public/asciidoc_skeletons/book/100_chapter.adoc +2 -2
  107. data/lib/starter_web/pages/public/asciidoc_skeletons/book/200_chapter.adoc +2 -2
  108. data/lib/starter_web/pages/public/asciidoc_skeletons/book/900_references.adoc +2 -2
  109. data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.adoc +2 -2
  110. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/100_chapter.asciidoc +2 -2
  111. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/200_chapter.asciidoc +2 -2
  112. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +2 -2
  113. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +2 -2
  114. data/lib/starter_web/pages/public/blog/navigator/archive.html +82 -17
  115. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +92 -28
  116. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +85 -20
  117. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +98 -41
  118. data/lib/starter_web/pages/public/blog/navigator/index.html +2 -1
  119. data/lib/starter_web/pages/public/learn/quickstart.adoc +473 -0
  120. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
  121. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +2 -2
  122. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +2 -2
  123. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +2 -2
  124. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +2 -2
  125. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +2 -2
  126. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +2 -2
  127. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +2 -2
  128. data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +2 -2
  129. data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +118 -0
  130. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +90 -0
  131. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +322 -0
  132. data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +125 -0
  133. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +8 -5
  134. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +7 -5
  135. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +10 -8
  136. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +36 -18
  137. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +3 -2
  138. data/lib/starter_web/pages/public/previewer/iframer.adoc +1 -1
  139. data/lib/starter_web/pages/public/previewer/rouge.adoc +1 -1
  140. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  141. data/lib/starter_web/utilsrv/package.json +1 -1
  142. metadata +35 -4
  143. data/_includes/themes/j1/procedures/global/pager.proc +0 -79
  144. 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: blog posts by tag
5
- description: Browse articles by tag
4
+ tagline: posts by tag
5
+ description: >
6
+ Browse articles by tag
6
7
 
7
- categories: [ Navigator ]
8
- tags: [ Blog, Tags, Viewer ]
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/library-1920x1280-bw.jpg
29
- alt: library-1920x1280-bw
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 view_config = site.data.builder.blog_navigator.category_view %}
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}}" title="Blog View">Navigator</a></li>
94
- <li class="page-item"><a class="page-link" href="{{date_view | prepend: site.baseurl}}" title="View by Date">By Date</a></li>
95
- <li class="page-item"><a class="page-link" href="{{category_view | prepend: site.baseurl}}" title="View by Category">By Category</a></li>
96
- <li class="page-item"><a class="page-link" href="{{all_view | prepend: site.baseurl}}" title="View All">All Posts</a></li>
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
- <div class="view-description mb-1">{{view_description}}</div>
102
- <div class="post-headline"> <h2 id="post-headline" class="mt-5">Posts By Tag</h2></div>
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
- <h3 id="id_{{letter_group}}" class="toc-link mt-5 mb-5"><a title="Back to top" href="#"><i class="fa fa-tags mr-2"></i></a>{{letter_group | upcase}}</h3>
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
- <h3 id="id_{{letter_group}}" class="toc-link mb-3">
136
- <a title="Back to top" href="#">
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
- </h3>
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
- <h4 id="{{this_word | replace: '+','_' | replace: ' ','_' | downcase}}" class="toc-link"><a title="Back to top" href="#"><i class="fa fa-tag mr-2"></i></a>{{this_word}}</h4>
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
- <h3 id="{{100000|rand}}" class="card-header bg-primary">{{post.title}}</h3>
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({{defaults.post_image}});">
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
- <i class="mdi mdi-calendar-blank mr-1"></i> {{post.date | date: "%Y %B, %e"}}
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
- Read · {{post.tagline}}
272
+ {{readmore_text}} · {{post.tagline}}
216
273
  </a>
217
274
  </div>
218
275
  </div>
@@ -2,7 +2,8 @@
2
2
  layout: blog_archive
3
3
  title: Creators Blog
4
4
  tagline: explore posts
5
- description: Navigate all articles
5
+ description: >
6
+ Navigate through all articles tis website
6
7
 
7
8
  categories: [ Blog ]
8
9
  tags: [ Navigator ]
@@ -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!