j1_template_mde 2018.4.24 → 2018.4.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_app.html +3 -3
  3. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +8 -6
  4. data/_includes/themes/j1/layouts/content_generator_collection.html +7 -7
  5. data/_includes/themes/j1/layouts/content_generator_page.html +17 -6
  6. data/_includes/themes/j1/layouts/content_generator_post.html +8 -4
  7. data/_includes/themes/j1/layouts/content_generator_raw.html +3 -3
  8. data/_includes/themes/j1/layouts/layout_metadata_generator.html +7 -12
  9. data/_includes/themes/j1/layouts/layout_module_generator.html +3 -3
  10. data/_includes/themes/j1/layouts/layout_resource_generator.html +3 -3
  11. data/_includes/themes/j1/layouts/layout_shim_generator.html +2 -2
  12. data/_includes/themes/j1/layouts/layout_theme_generator.html +3 -3
  13. data/_includes/themes/j1/modules/connectors/comment/disqus.html +4 -4
  14. data/_includes/themes/j1/modules/footers/boxes/links_box.proc +4 -1
  15. data/_includes/themes/j1/modules/footers/boxes/news_box.proc +3 -3
  16. data/_includes/themes/j1/modules/footers/footer_light_generator.html +3 -3
  17. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +10 -10
  18. data/_layouts/blog_archive.html +1 -1
  19. data/_layouts/page.html +1 -1
  20. data/_layouts/post.html +2 -2
  21. data/lib/j1/version.rb +1 -1
  22. data/lib/j1_app.rb +2 -2
  23. data/lib/j1_app/j1_auth_manager/auth_manager.rb +2 -4
  24. data/lib/j1_app/j1_auth_manager/config.rb +5 -5
  25. data/lib/j1_app/j1_auth_manager/helpers.rb +1 -1
  26. data/lib/starter_web/Gemfile +4 -2
  27. data/lib/starter_web/_config.yml +47 -21
  28. data/lib/starter_web/_config.yml.kapott +1064 -0
  29. data/lib/starter_web/_data/j1_resources.yml +18 -1
  30. data/lib/starter_web/_data/layouts/page.yml +10 -0
  31. data/lib/starter_web/_data/modules/j1_footer.yml +6 -7
  32. data/lib/starter_web/_data/modules/j1_header.yml +4 -2
  33. data/lib/starter_web/_data/modules/j1_jekyll_search.yml +1 -1
  34. data/lib/starter_web/assets/data/_panel.html +597 -0
  35. data/lib/starter_web/assets/data/panel.html +15 -15
  36. data/lib/starter_web/assets/data/{search.json → search.yml} +21 -23
  37. data/lib/starter_web/assets/themes/j1/core/css/bootstrap.css +328 -229
  38. data/lib/starter_web/assets/themes/j1/core/css/bootstrap.min.css +4 -4
  39. data/lib/starter_web/assets/themes/j1/core/css/uno.css +31 -2
  40. data/lib/starter_web/assets/themes/j1/core/css/uno.min.css +1 -1
  41. data/lib/starter_web/assets/themes/j1/core/css/vendor.css +403 -293
  42. data/lib/starter_web/assets/themes/j1/core/css/vendor.min.css +4 -5
  43. data/lib/starter_web/assets/themes/j1/core/js/adapter/master_header.js +23 -21
  44. data/lib/starter_web/assets/themes/j1/core/js/adapter/toccer.js +23 -43
  45. data/lib/starter_web/assets/themes/j1/core/js/adapter/toccer.js.new +265 -0
  46. data/lib/starter_web/assets/themes/j1/core/js/template.js +13 -6
  47. data/lib/starter_web/assets/themes/j1/core/js/template.js.map +1 -1
  48. data/lib/starter_web/assets/themes/j1/core/js/template.min.js +1 -1
  49. data/lib/starter_web/assets/themes/j1/extensions/stickyfill/LICENSE +21 -0
  50. data/lib/starter_web/assets/themes/j1/extensions/stickyfill/README.md +229 -0
  51. data/lib/starter_web/assets/themes/j1/extensions/stickyfill/js/stickyfill.es6.js +533 -0
  52. data/lib/starter_web/assets/themes/j1/extensions/stickyfill/js/stickyfill.js +546 -0
  53. data/lib/starter_web/assets/themes/j1/extensions/stickyfill/js/stickyfill.min.js +6 -0
  54. data/lib/starter_web/collections/posts/premium/series/_posts/2018-11-01-docker-using-shared-folders.adoc +8 -7
  55. data/lib/starter_web/package.json +1 -1
  56. data/lib/starter_web/pages/public/blog/navigator/index.html +1 -1
  57. data/lib/starter_web/pages/public/start/bmd_examples/{100_bmd_landing_page.adoc → 100_bmd_landing_page.asciidoc} +0 -0
  58. data/lib/starter_web/pages/public/start/change_me_first.adoc +7 -2
  59. data/lib/starter_web/pages/public/start/read_me_first.adoc +4 -0
  60. metadata +12 -5
  61. data/lib/j1_app/j1_auth_manager/auth_manager.previous.rb +0 -939
@@ -501,7 +501,7 @@ resources:
501
501
  # ------------------------------------------------------------------------------
502
502
 
503
503
  # ----------------------------------------------------------------------------
504
- # Rouge Highlighter
504
+ # Rouge (Highlighter)
505
505
  #
506
506
  - resource:
507
507
  enabled: true
@@ -514,6 +514,20 @@ resources:
514
514
  data:
515
515
  files: extensions/rouge/css/base16/theme.css
516
516
 
517
+ # ----------------------------------------------------------------------------
518
+ # Stickyfill (CSS polyfill)
519
+ #
520
+ - resource:
521
+ enabled: false
522
+ id: stickyfill
523
+ comment: Polyfill for CSS position sticky
524
+ region: head
525
+ layout: all
526
+ required: always
527
+ script_load: sync
528
+ data:
529
+ js: extensions/stickyfill/js/stickyfill
530
+
517
531
  # ----------------------------------------------------------------------------
518
532
  # Alogolia
519
533
  #
@@ -549,6 +563,8 @@ resources:
549
563
  files: extensions/livereload/js/livereload.js
550
564
 
551
565
 
566
+
567
+
552
568
  # ==============================================================================
553
569
  # Additional Apps and Modules - loaded ASYCHRONOUSLY (defer)
554
570
  # ------------------------------------------------------------------------------
@@ -650,3 +666,4 @@ resources:
650
666
  remote: "https://cdn.datatables.net/v/jszip-3.1.3/pdfmake-0.1.27/dt-1.10.15/af-2.2.0/b-1.3.1/b-colvis-1.3.1/b-html5-1.3.1/b-print-1.3.1/cr-1.3.3/fc-3.2.2/fh-3.1.2/kt-2.2.1/r-2.1.1/rg-1.0.0/rr-1.2.0/sc-1.4.2/se-1.2.2/datatables"
651
667
  }
652
668
  ]
669
+
@@ -152,3 +152,13 @@ lanes:
152
152
  base: _includes/themes/j1
153
153
  path: layouts
154
154
  file: content_generator_page.html
155
+
156
+ # ------------------------------------------------------------------------------
157
+ - lane:
158
+ enabled: true
159
+ region: body-main
160
+ type: sync
161
+ base: _includes/themes/j1
162
+ path: modules/connectors
163
+ file: comments
164
+
@@ -93,20 +93,19 @@ footer:
93
93
  title: Useful Links
94
94
  links: [
95
95
  {
96
- text: Jekyll - First Addresss for last info,
96
+ title: "Jekyll Home",
97
+ tagline: "First addresss for latest news",
97
98
  url: "http://jekyllrb.com/"
98
99
  },
99
100
  {
100
- text: Jekyll Tips - Learn from Experts,
101
+ title: "Jekyll Tips",
102
+ tagline: "Learn from experts",
101
103
  url: "http://jekyll.tips/"
102
104
  },
103
105
  {
104
- text: Stackoverflow - Get Help,
106
+ title: "Stackoverflow",
107
+ tagline: "Get help from the community",
105
108
  url: "http://stackoverflow.com/questions/tagged/jekyll"
106
- },
107
- {
108
- text: GitHub Pages - Publish Your Web Sites for free,
109
- url: "https://help.github.com/articles/using-jekyll-as-a-static-site-generator-with-github-pages/"
110
109
  }
111
110
  ]
112
111
 
@@ -176,7 +176,7 @@ headers:
176
176
  - header:
177
177
  enabled: true
178
178
  id: pagehead
179
- layout: page
179
+ layout: [ page, post ]
180
180
  raised_level: 0 # was: 15
181
181
  text_emphasis: strong
182
182
  title:
@@ -200,5 +200,7 @@ headers:
200
200
  - header:
201
201
  enabled: true
202
202
  id: texthead
203
- layout: [ post, collection, app, raw, blog_archive ]
203
+ layout: [ collection, app, raw, blog_archive ]
204
204
  raised_level: 0 # was: 15
205
+
206
+
@@ -92,7 +92,7 @@ target: _blank
92
92
  search_input: jss-input
93
93
  results_output: jss-panel
94
94
  results_container: jss-results
95
- index_data: /assets/data/search.json
95
+ index_data: /assets/data/search.yml
96
96
  result_limit: 1000
97
97
  no_results_text: The search has no results
98
98
  min_search_item_len: 3
@@ -0,0 +1,597 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+ {% capture cache %}
5
+
6
+ {% comment %}
7
+ # -----------------------------------------------------------------------------
8
+ # ~/assets/data/panels.html
9
+ # HTML (data) file for to generate all panel configured for (fragmented)
10
+ # AJAX loads (jQuery: $.load)
11
+ #
12
+ # Product/Info:
13
+ # https://jekyll-one.com
14
+ #
15
+ # Copyright (C) 2019 Juergen Adams
16
+ #
17
+ # J1 Template is licensed under the MIT License.
18
+ # See: https://github.com/jekyll-one/j1_template_mde/blob/master/LICENSE
19
+ #
20
+ # -----------------------------------------------------------------------------
21
+ # Test data:
22
+ # {{ variable | debug }}
23
+ #
24
+ # -----------------------------------------------------------------------------
25
+ {% endcomment %}
26
+
27
+ {% comment %} Liquid procedures
28
+ --------------------------------------------------------------- {% endcomment %}
29
+ {% capture select_color %}themes/{{site.template.name}}/procedures/global/select_color.proc{% endcapture %}
30
+ {% capture select_icon_size %}themes/{{site.template.name}}/procedures/global/select_icon_size.proc{% endcapture %}
31
+ {% capture create_bs_button %}themes/{{site.template.name}}/procedures/global/create_bs_button.proc{% endcapture %}
32
+ {% capture news_box %}themes/{{site.template.name}}/modules/footers/boxes/news_box.proc{% endcapture %}
33
+
34
+ {% comment %} Liquid var initialization
35
+ --------------------------------------------------------------- {% endcomment %}
36
+ {% assign panel_config = site.data.modules.j1_panel.panels %}
37
+ {% capture panel_config_file %}~/_data/modules/panel.yml{% endcapture %}
38
+
39
+
40
+ {% comment %} Main
41
+ --------------------------------------------------------------- {% endcomment %}
42
+ {% for items in panel_config %}
43
+ {% for panels in items %}
44
+
45
+ {% for panel in panels %}
46
+ {% for item in panel %}
47
+ {% assign key = item[0] %}
48
+ {% assign value = item[1] %}
49
+ {% if key == 'id' %} {% assign id = value %} {% endif %}
50
+ {% if key == 'enabled' %} {% assign enabled = value %} {% endif %}
51
+ {% if key == 'type' %} {% assign type = value %} {% endif %}
52
+ {% if key == 'icon_family' %} {% assign icon_family = value|downcase %} {% endif %}
53
+ {% if key == 'style' %} {% assign style = value %} {% endif %}
54
+ {% if key == 'raised' %} {% assign raised = value %} {% endif %}
55
+ {% if key == 'lane_span' %} {% assign lane_span = value %} {% endif %}
56
+ {% if key == 'title' %} {% assign title = value|strip_newlines %} {% endif %}
57
+ {% if key == 'tagline' %} {% assign tagline = value|strip_newlines %} {% endif %}
58
+ {% if key == 'buttons' %} {% assign buttons = value %} {% endif %}
59
+ {% if key == 'cards' %} {% assign cards = value %} {% endif %}
60
+ {% if key == 'boxes' %} {% assign boxes = value %} {% endif %}
61
+ {% endfor %}
62
+ {% endfor %}
63
+
64
+ {% if raised %}
65
+ {% capture card_raised %}raised-z{{raised}}{% endcapture %}
66
+ {% else %}
67
+ {% assign card_raised = 'raised-z3' %}
68
+ {% endif %}
69
+
70
+ {% if icon_family == 'fontawesome' or icon_family == 'fontawesome5' or icon_family == 'fa'%}
71
+ {% assign icon_family = 'fa' %}
72
+ {% elsif icon_family == 'mdi' %}
73
+ {% assign icon_family = 'mdi' %}
74
+ {% else'%}
75
+ {% assign icon_family = 'mdi' %}
76
+ {% endif %}
77
+
78
+ {% assign icon_size = "5x" %}
79
+
80
+ {% if lane_span == 'fixed' %}
81
+ {% assign container_class = 'container j1-panel-block' %}
82
+ {% elsif lane_span == 'fluid' %}
83
+ {% assign container_class = 'container-fluid j1-panel-block' %}
84
+ {% else %}
85
+ {% assign container_class = 'container j1-panel-block' %}
86
+ {% endif %}
87
+
88
+ {% assign row_class = 'row j1-panel-block' %}
89
+
90
+ {% if style == 'flat' %}
91
+ {% assign card_style = 'card-flat' %}
92
+ {% else %}
93
+ {% assign card_style = '' %}
94
+ {% endif %}
95
+
96
+ <!-- PANEL {{id}} -->
97
+ <!-- +++++++++++++++++++++++++ -->
98
+
99
+ <div id="{{id}}">
100
+ {% if enabled %}
101
+ {% case type %}
102
+
103
+ {% comment %} Collect INTRO panel
104
+ ----------------------------------------------------------- {% endcomment %}
105
+ {% when 'intro_panel' %}
106
+
107
+ <div class="panel-intro">
108
+ <div class="{{container_class}}">
109
+ <div class="{{row_class}}">
110
+
111
+ {% assign card_items = cards | size %}
112
+
113
+ {% for card in cards %}
114
+
115
+ {% for items in card %}
116
+ {% for item in items[1] %}
117
+ {% assign key = item[0] %}
118
+ {% assign value = item[1] %}
119
+ {% if key == 'enabled' %} {% assign card_enabled = value %} {% endif %}
120
+ {% if key == 'type' %} {% assign card_type = value %} {% endif %}
121
+ {% if key == 'icon' %} {% assign card_icon = value %} {% endif %}
122
+ {% if key == 'icon_size' %} {% assign card_icon_size = value %} {% endif %}
123
+ {% if key == 'icon_color' %} {% assign card_icon_color = value %} {% endif %}
124
+ {% if key == 'title' %} {% assign card_title = value | strip_newlines%} {% endif %}
125
+ {% if key == 'tagline' %} {% assign card_tagline = value | strip_newlines%} {% endif %}
126
+ {% if key == 'text' %} {% assign card_text = value | strip_newlines %} {% endif %}
127
+ {% if key == 'buttons' %} {% assign card_buttons = value %} {% endif %}
128
+ {% endfor %}
129
+ {% if card_enabled == false %} {% assign card_items = card_items | minus:1 %} {% endif %}
130
+ {% endfor %}
131
+
132
+ {% assign card_width_md = 12 | divided_by: card_items %}
133
+
134
+ {% if card_type == 'text' and card_enabled %}
135
+ <div class="col-md-{{card_width_md}} col-sm-{{card_width_md}} col-xs-12">
136
+ <div class="card card-profile mb-4 {{card_raised}}">
137
+
138
+ <div class="card-icon">
139
+ <a href="#">
140
+ <i class="card-icon-circle raised-z2 {{icon_family}} {{icon_family}}-{{card_icon}} {{icon_family}}-{{card_icon_size}} {{icon_family}}-{{card_icon_color}} card-icon-background-color-theme card-icon-{{icon_family}}"></i>
141
+ </a>
142
+ </div>
143
+
144
+ <div class="content">
145
+ <h6 class="notoc category text-gray">{{card_title}}</h6>
146
+ <h4 class="notoc card-title">{{card_tagline}}</h4>
147
+ <p class="card-description">{{card_text}}</p>
148
+ <div class="card-footer">
149
+ {% for button_hash in card_buttons %}
150
+ {% include {{create_bs_button}} button_data=button_hash button_type="link" %}
151
+ {{bs_button_html}}
152
+ {% endfor %}
153
+ </div>
154
+ </div>
155
+
156
+ </div>
157
+ </div>
158
+ {% endif %}
159
+
160
+ {% endfor %}
161
+ {% comment %} END cards {% endcomment %}
162
+
163
+ </div>
164
+ </div>
165
+ </div>
166
+
167
+ {% assign title = nil %}
168
+ {% assign tagline = nil %}
169
+ {% assign card_enabled = nil %}
170
+ {% assign card_type = nil %}
171
+ {% assign card_icon = nil %}
172
+ {% assign icon_family = nil %}
173
+ {% assign card_text = nil %}
174
+ {% assign card_buttons = nil %}
175
+ {% assign card_width_md = nil %}
176
+
177
+ {% comment %} END INTRO panel
178
+ ---------------------------------------------------------------------------- {% endcomment %}
179
+
180
+
181
+ {% comment %} Collect INTRO panel - flat
182
+ ---------------------------------------------------------------------------- {% endcomment %}
183
+ {% when 'intro_panel_flat' %}
184
+
185
+ <div class="panel-intro">
186
+ <div class="{{container_class}}">
187
+ <div class="{{row_class}}">
188
+
189
+ {% assign card_items = cards | size %}
190
+
191
+ {% for card in cards %}
192
+
193
+ {% for items in card %}
194
+ {% for item in items[1] %}
195
+ {% assign key = item[0] %}
196
+ {% assign value = item[1] %}
197
+ {% if key == 'enabled' %} {% assign card_enabled = value %} {% endif %}
198
+ {% if key == 'type' %} {% assign card_type = value %} {% endif %}
199
+ {% if key == 'icon' %} {% assign card_icon = value %} {% endif %}
200
+ {% if key == 'icon_size' %} {% assign card_icon_size = value %} {% endif %}
201
+ {% if key == 'icon_color' %} {% assign card_icon_color = value %} {% endif %}
202
+ {% if key == 'text' %} {% assign card_text = value | strip_newlines %} {% endif %}
203
+ {% if key == 'buttons' %} {% assign card_buttons = value %} {% endif %}
204
+ {% endfor %}
205
+ {% if card_enabled == false %} {% assign card_items = card_items | minus:1 %} {% endif %}
206
+ {% endfor %}
207
+
208
+ {% assign card_width_md = 12 | divided_by: card_items %}
209
+
210
+ {% if card_type == 'text' and card_enabled %}
211
+ <div class="col-md-{{card_width_md}} col-sm-{{card_width_md}} col-xs-12">
212
+ <div class="card card-flat card-profile mb-4 raised-z0">
213
+
214
+ <div class="card-icon">
215
+ <a href="#">
216
+ <i class="card-icon-rectangle raised-z0 {{icon_family}} {{icon_family}}-{{card_icon}} {{icon_family}}-{{card_icon_size}} {{icon_family}}-{{card_icon_color}} card-icon-background-no-color card-icon-{{icon_family}}"></i>
217
+ </a>
218
+ </div>
219
+
220
+ <div class="content">
221
+ {% if card_title %}
222
+ <h6 class="notoc category text-gray">{{card_title}}</h6>
223
+ {% endif %}
224
+ <h4 class="notoc card-title">{{card_tagline}}</h4>
225
+ <p class="card-description">{{card_text}}</p>
226
+ <div class="card-footer">
227
+ {% for button_hash in card_buttons %}
228
+ {% include {{create_bs_button}} button_data=button_hash button_type="link" %}
229
+ {{bs_button_html}}
230
+ {% endfor %}
231
+ </div>
232
+ </div>
233
+
234
+ </div>
235
+ </div>
236
+ {% endif %}
237
+
238
+ {% endfor %}
239
+ {% comment %} END cards {% endcomment %}
240
+
241
+ </div>
242
+ </div>
243
+ </div>
244
+
245
+ {% assign title = nil %}
246
+ {% assign tagline = nil %}
247
+ {% assign card_enabled = nil %}
248
+ {% assign card_type = nil %}
249
+ {% assign card_icon = nil %}
250
+ {% assign icon_family = nil %}
251
+ {% assign card_title = nil %}
252
+ {% assign card_tagline = nil %}
253
+ {% assign card_text = nil %}
254
+ {% assign card_buttons = nil %}
255
+ {% assign card_width_md = nil %}
256
+
257
+ {% comment %} END INTRO panel
258
+ ---------------------------------------------------------------------------- {% endcomment %}
259
+
260
+ {% comment %} Collect SERVICE panel
261
+ ---------------------------------------------------------------------------- {% endcomment %}
262
+ {% when 'service_panel' %}
263
+
264
+ <div class="panel-service">
265
+ <div class="{{container_class}}">
266
+ <div class="row">
267
+
268
+ {% assign header_available = false %}
269
+ {% assign card_items = cards | size %}
270
+
271
+ {% for card in cards %}
272
+
273
+ {% for items in card %}
274
+ {% for item in items[1] %}
275
+ {% assign key = item[0] %}
276
+ {% assign value = item[1] %}
277
+ {% if key == 'enabled' %} {% assign card_enabled = value %} {% endif %}
278
+ {% if key == 'width' %} {% assign card_width = value %} {% endif %}
279
+ {% if key == 'type' %} {% assign card_type = value %} {% endif %}
280
+ {% if key == 'href' %} {% assign card_href = value %} {% endif %}
281
+ {% if key == 'icon' %} {% assign card_icon = value %} {% endif %}
282
+ {% if key == 'icon_family' %} {% assign icon_family = value %} {% endif %}
283
+ {% if key == 'icon_size' %} {% assign icon_size = value %} {% endif %}
284
+ {% if key == 'icon_color' %} {% assign icon_color = value %} {% endif %}
285
+ {% if key == 'text' %} {% assign card_text = value | strip_newlines %} {% endif %}
286
+ {% if key == 'services' %} {% assign services = value %} {% endif %}
287
+ {% endfor %}
288
+ {% if card_enabled == false %} {% assign card_items = card_items | minus:1 %} {% endif %}
289
+ {% endfor %}
290
+
291
+ {% assign card_width_md = 12 | divided_by: card_items %}
292
+
293
+ {% if card_type == "header" and card_enabled %}
294
+ {% comment %} correct # items if header available {% endcomment %}
295
+ {% assign card_items = card_items | minus:1 %}
296
+ {% assign card_width_md = 12 | divided_by: card_items %}
297
+ <div class="col-md-10 col-md-offset-1 col-sm-10 col-sm-offset-1 col-xs-10 col-xs-offset-1 mb-3"> <!-- service header -->
298
+ <h2 class="title text-center">{{ card_title }}</h2>
299
+ <div class="tagline"> <p>{{ card_tagline }}</p> </div>
300
+ </div> <!-- end service header -->
301
+ {% endif %}
302
+
303
+ {% if card_type == "service" and card_enabled %}
304
+ <div class="col-md-{{card_width_md}} col-sm-{{card_width_md}} col-xs-12">
305
+ <div class="card card-flat card-profile mb-0 raised-z0">
306
+
307
+ <div class="card-icon">
308
+ <!-- a href="{{site.url}}{{card_href}}" -->
309
+ <a href="{{card_href}}">
310
+ <!-- i class="card-icon-rectangle raised-z0 {{icon_family}} {{icon_family}}-{{card_icon}} {{icon_size}} {{icon_color}} card-icon-background-color-theme card-icon-{{icon_family}}"></i -->
311
+ <i class="card-icon-rectangle raised-z0 {{icon_family}} {{icon_family}}-{{card_icon}} {{icon_family}}-{{card_icon_size}} {{icon_family}}-{{card_icon_color}} card-icon-background-no-color card-icon-{{icon_family}}"></i>
312
+ </a>
313
+ </div>
314
+
315
+ <div class="content">
316
+ <h6 class="notoc category text-gray">{{card_title}}</h6>
317
+ <!-- a href="{{site.url}}{{card_href}}" -->
318
+ <a href="{{card_href}}">
319
+ <h4 class="notoc card-title">{{card_tagline}}</h4>
320
+ </a>
321
+ <p class="card-description">{{card_text}}</p>
322
+
323
+ <div class="card-footer">
324
+ <ul class="service-list list-unstyled">
325
+ {% for list in services %}
326
+ <!-- li><a href="{{site.url}}{{list.service.href}}">{{list.service.title}}</a></li -->
327
+ <li><a href="{{list.service.href}}">{{list.service.title}}</a></li>
328
+ {% endfor %}
329
+ </ul>
330
+ </div>
331
+ </div>
332
+
333
+ </div>
334
+ </div> <!-- end service card -->
335
+ {% endif %}
336
+
337
+ {% endfor %}
338
+ {% comment %} END cards
339
+ ------------------------------------------------------------------------ {% endcomment %}
340
+ </div>
341
+ </div>
342
+ </div>
343
+
344
+ {% assign title = nil %}
345
+ {% assign tagline = nil %}
346
+ {% assign card_enabled = nil %}
347
+ {% assign card_type = nil %}
348
+ {% assign card_icon = nil %}
349
+ {% assign icon_family = nil %}
350
+ {% assign card_text = nil %}
351
+ {% assign services = nil %}
352
+ {% assign card_width_md = nil %}
353
+
354
+ {% comment %} END SERVICES panel
355
+ ---------------------------------------------------------------------------- {% endcomment %}
356
+
357
+ {% comment %} Collect NEWS panel
358
+ ---------------------------------------------------------------------------- {% endcomment %}
359
+ {% when 'news_panel' %}
360
+
361
+ <div class="panel-news">
362
+ <div class="{{container_class}} j1-panel-block">
363
+ {% if title %}
364
+ <div class="panel-headline">
365
+ {% if title %} {% assign title_id = "news_panel" %} {% endif %}
366
+ {% if title %} <h2 id="{{title_id}}" class="title">{{title}}</h2>{% endif %}
367
+ {% if tagline %}<div class="tagline"> <p>{{ tagline }}</p> </div>{% endif %}
368
+ </div>
369
+ {% endif %}
370
+ <!-- panel content -->
371
+ <div class="row">
372
+
373
+ {% assign header_available = false %}
374
+ {% assign box_items = boxes | size %}
375
+
376
+ {% for box in boxes %}
377
+ {% for items in box %}
378
+ {% for item in items[1] %}
379
+ {% assign key = item[0] %}
380
+ {% assign value = item[1] %}
381
+ {% if key == 'enabled' %} {% assign box_enabled = value %} {% endif %}
382
+ {% if key == 'type' %} {% assign box_type = value %} {% endif %}
383
+ {% if key == 'style' %} {% assign box_style = value %} {% endif %}
384
+ {% if key == 'raised' %} {% assign box_raised = value %} {% endif %}
385
+ {% if key == 'category' %} {% assign post_category = value %} {% endif %}
386
+ {% if key == 'max_posts' %} {% assign posts_max = value %} {% endif %}
387
+ {% if key == 'buttons' %} {% assign box_buttons = value %} {% endif %}
388
+ {% endfor %}
389
+ {% if box_enabled == false %}
390
+ {% assign box_items = box_items | minus:1 %}
391
+ {% endif %}
392
+ {% endfor %}
393
+
394
+ {% comment %} calculate columns
395
+ ------------------------------------------------------------------ {% endcomment %}
396
+ {% assign box_width = 12 | divided_by: box_items %}
397
+
398
+ <!-- Collect last current post -->
399
+ {% if box_type == "last_current" and box_enabled %}
400
+ <div class="col-md-{{box_width}} col-sm-{{box_width}} col-xs-12">
401
+ <div class="content">
402
+
403
+ <!-- Last current post -->
404
+ {% assign last_post_written = false %}
405
+ {% for post in site.posts %}
406
+
407
+ {% for category in post.categories %}
408
+ {% if category == post_category and last_post_written != true %}
409
+
410
+ <!-- Collect image data from frontmatter -->
411
+ {% if post.image %}
412
+ {% assign image_name = post.image.name %}
413
+ {% assign image_path = post.image.path %}
414
+ {% if post.image.random %}
415
+ {% assign max_random = image_name | regex_replace: '[a-zA-Z_-]*' %}
416
+ {% assign max_random = max_random | regex_replace: '\.' %}
417
+ {% assign random = max_random | rand %}
418
+ {% assign image_name = image_name | regex_replace: '\d+', random %}
419
+ {% endif %}
420
+ {% capture image %}{{image_path}}/{{image_name}}{% endcapture %}
421
+ {% else %}
422
+ {% assign image = 'false' %}
423
+ {% endif %}
424
+
425
+ <!-- Collect icon data from post frontmatter -->
426
+ <!-- Set the default icon|family -->
427
+ {% assign icon = 'comment-alt' %}
428
+ {% assign icon_family = 'zmdi' %}
429
+ {% assign icon_color = '#3F51B5' %}
430
+ {% assign icon_size = 'large' %}
431
+
432
+ {% if post.icon %}
433
+
434
+ {% assign icon = post.icon.name | downcase %}
435
+ {% assign icon_family = post.icon.family %}
436
+ {% assign icon_color = post.icon.color %}
437
+ {% assign icon_size = post.icon.size %}
438
+
439
+ {% if icon_family == "FontAwesome" %}
440
+ {% assign icon_family = "fa" %}
441
+ {% elsif icon_family == "Glyphicon" %}
442
+ {% assign icon_family = "glyphicon" %}
443
+ {% elsif icon_family == "MDI" %}
444
+ {% assign icon_family = "mdi" %}
445
+ {% elsif icon_family == "ZMDI" %}
446
+ {% assign icon_family = "zmdi" %}
447
+ {% endif %}
448
+
449
+ {% endif %}
450
+
451
+ {% include {{select_icon_size}} family=icon_family size="xxxlarge" %}
452
+ {% assign icon_size = size %}
453
+
454
+ {% include {{select_color}} color=icon_color fallback="#000"%}
455
+ {% assign icon_color = color %}
456
+
457
+ {% if icon != 'false' and image == 'false' %}
458
+ <!-- icon != 'false' and image == 'false' -->
459
+ {% endif %}
460
+
461
+ {% if icon == 'false' and image == 'false' %}
462
+ <!-- icon == 'false' and image == 'false' -->
463
+ {% endif %}
464
+
465
+ {% if image != 'false' %}
466
+ <!-- image != 'false' -->
467
+ <div class="card {{card_style}}">
468
+ <div class="card-image">
469
+ <img class="img" src="{{ post.image }}" alt="{{ post.title }}">
470
+ </div>
471
+ <div class="card-body">
472
+ <span class="post-meta">Nov 13, 2018</span>
473
+ <h2 id="{{ 100000 | rand }}" class="card-title">{{ post.title }}</h2>
474
+ <h6 class="card-subtitle text-muted mb-2">{{ post.tagline }}</h6>
475
+ <div class="card-text"><p>{{ post.excerpt }}</p></div>
476
+ <div class="card-footer">
477
+ <a class="card-link" href="{{post.url}}#readmore" target="blank">Read more ..</a>
478
+ </div>
479
+ </div>
480
+ </div>
481
+ {% endif %}
482
+
483
+ {% assign last_post_written = true %}
484
+ {% assign last_post_title = post.title %}
485
+ {% break%}
486
+
487
+ {% endif %}
488
+ {% endfor %}
489
+ {% endfor %}
490
+ </div> <!-- end box current item -->
491
+ </div> <!-- end content current item -->
492
+ {% endif %}
493
+
494
+ <!-- Collect recent posts -->
495
+ {% if box_type == "recent" and box_enabled %}
496
+ <div class="col-md-{{box_width}} col-sm-{{box_width}} col-xs-12">
497
+ <!-- Recent News (NewsBox) -->
498
+ <div class="recent-news">
499
+ <!-- loop counter correction -->
500
+ {% assign max_posts = posts_max | minus:'1' %}
501
+ {% assign posts_written = 0 %}
502
+ {% assign last_post_written = false %}
503
+
504
+ {% for post in site.posts %}
505
+ {% for category in post.categories %}
506
+ {% if category == post_category and last_post_written != true %}
507
+ <div class="card-list-element">
508
+ {% if post.title == last_post_title %} {% continue %} {% endif %}
509
+ {% assign posts_written = posts_written | plus:'1' %}
510
+ {% if posts_written == posts_max %} {% assign last_post_written = true %} {% break %}{% endif %}
511
+ <div class="card {{card_style}} mb-2">
512
+ <div class="card-body">
513
+ <span class="post-meta">Nov 13, 2018</span>
514
+ <h2 id="{{ 100000 | rand }}" class="card-title">{{ post.title }}</h2>
515
+ <h6 class="card-subtitle text-muted mb-2">{{ post.tagline }}</h6>
516
+ <div class="card-text"><p>{{ post.excerpt | truncatewords: 20 }}</p></div>
517
+ <div class="card-footer">
518
+ <a class="card-link" href="{{post.url}}#readmore" target="blank">Read more ..</a>
519
+ </div>
520
+ </div>
521
+ </div>
522
+ </div> <!-- end list-element -->
523
+ {% endif %}
524
+
525
+ {% endfor %}
526
+ {% endfor %}
527
+
528
+ </div> <!-- end recent news -->
529
+ </div> <!-- end recent news box -->
530
+ {% endif %}
531
+
532
+ {% endfor %}
533
+ </div> <!-- end NEWS panel -->
534
+ {% comment %} END boxes
535
+ ---------------------------------------------------------------------- {% endcomment %}
536
+
537
+
538
+ </div> <!-- end row -->
539
+ </div> <!-- end {{container_class}} -->
540
+ </div> <!-- end news panel -->
541
+ </div> <!-- end id -->
542
+
543
+ {% assign box_enabled = nil %}
544
+ {% assign box_type = nil %}
545
+ {% assign box_icon = nil %}
546
+ {% assign box_icon_color = nil %}
547
+ {% assign box_icon_size = nil %}
548
+ {% assign box_image_path = nil %}
549
+ {% assign box_animate = nil %}
550
+ {% assign box_title = nil %}
551
+ {% assign box_tagline = nil %}
552
+ {% assign box_text = nil %}
553
+ {% assign box_buttons = nil %}
554
+ {% assign box_category = nil %}
555
+ {% assign box_max_posts = nil %}
556
+
557
+ {% comment %} END NEWS panel
558
+ ----------------------------------------------------------- {% endcomment %}
559
+
560
+ {% else %}
561
+ {% comment %} Exception: no panel of given type found
562
+ --------------------------------------------------------- {% endcomment %}
563
+ <div class="row">
564
+ <div class="col-md-6 col-md-offset-3">
565
+ <div class="card raised-z10 mt-5">
566
+ <div class="content content-danger">
567
+ <h4 class="notoc">
568
+ <i class="zmdi zmdi-alert-triangle zmdi-hc-3x pl-3"></i>
569
+ Panel <i>{{type}}</i> not found
570
+ </h4>
571
+ <h4 class="notoc card-title">Check your configuration</h4>
572
+ <div class="card-description">
573
+ Don't worry about this. May you've a typo in the panel's configuration.
574
+ Check the panel config file for the unknown type. A line contains
575
+ something wrong like 'type: {{type}}'. Have a look at:
576
+ </div>
577
+ <div class="mb-5">
578
+ <h5 class="notoc">{{panel_config_file}}</h5>
579
+ </div>
580
+ </div>
581
+ </div>
582
+ </div>
583
+ </div>
584
+
585
+ {% endcase %}
586
+ </div> <!-- End PANEL {{ id }} -->
587
+ {% endif %}
588
+ {% comment %} endif enabled
589
+ ----------------------------------------------------------- {% endcomment %}
590
+
591
+ {% endfor %}
592
+ {% endfor %}
593
+
594
+ {% endcapture %}
595
+
596
+ {{ cache | strip_empty_lines }}
597
+ {% assign cache = nil %}