j1_template_mde 2018.4.24 → 2018.4.25

Sign up to get free protection for your applications and to get access to all the features.
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 %}