j1-template 2022.6.0 → 2022.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/modules/navigator/generator.html +1 -13
  3. data/_includes/themes/j1/modules/searcher/generator.html +61 -0
  4. data/_includes/themes/j1/modules/{navigator → searcher}/procedures/topsearch.proc +61 -40
  5. data/assets/data/banner.html +2 -2
  6. data/assets/data/top_search_modal.0.html +142 -0
  7. data/assets/data/top_search_modal.html +121 -0
  8. data/assets/themes/j1/adapter/js/lunr.js +34 -1
  9. data/assets/themes/j1/adapter/js/navigator.js +8 -60
  10. data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +28 -59
  11. data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +3 -3
  12. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +76 -70
  13. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +2 -2
  14. data/assets/themes/j1/core/js/template.js +1 -41
  15. data/assets/themes/j1/core/js/template.min.js +1 -1
  16. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  17. data/lib/j1/version.rb +1 -1
  18. data/lib/starter_web/README.md +5 -5
  19. data/lib/starter_web/_config.yml +1 -1
  20. data/lib/starter_web/_data/blocks/banner.yml +1 -1
  21. data/lib/starter_web/_data/j1_config.yml +2 -2
  22. data/lib/starter_web/_data/layouts/default.yml +16 -35
  23. data/lib/starter_web/_data/modules/defaults/lunr.yml +21 -0
  24. data/lib/starter_web/_data/modules/defaults/navigator.yml +16 -17
  25. data/lib/starter_web/_data/modules/lunr.yml +7 -0
  26. data/lib/starter_web/_data/resources.yml +3 -3
  27. data/lib/starter_web/_data/templates/feed.xml +1 -1
  28. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  29. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-site-generators.adoc +1 -1
  30. data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +1 -1
  31. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +1 -1
  32. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +1 -1
  33. data/lib/starter_web/index.html +1 -1
  34. data/lib/starter_web/package.json +1 -1
  35. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +1 -1
  36. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +1 -1
  37. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +1 -9
  38. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  39. data/lib/starter_web/utilsrv/package.json +1 -1
  40. metadata +6 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 88b3dab96c6adc91201e34c0e6d79230f9c483a65ee9659acd871c286ba2a8b8
4
- data.tar.gz: 3d9d17b16996e6dd612f40c84314b722a94d344a8b7fb56dc6ef4a501eaf72be
3
+ metadata.gz: 49cd6bd2786efc61475518a1aaa26c2b5c108a3251479ebdb7d70cf71b32f6db
4
+ data.tar.gz: 6788281d57f2063be956763a83fcbced5cf3df9ac4944b602c0f4ad9bc4d3838
5
5
  SHA512:
6
- metadata.gz: 9f7a3c837cdde3a92f09f617e22bb298852a2aa268d4da3b13b7d86b4cb39a112f08e0c20d1dc7cf0b1c2576c0e33852d6ae0da29ebb3935283db68fe104b192
7
- data.tar.gz: e7dfee92d4040cf976607f6e08d130818a4a3c8e8a8a07272957598c2d9f76645c6d2871eb8aecff18c64bafe4df90c30c0f2746d3ff550c032079a97cf2f5b7
6
+ metadata.gz: 855f6389e520309b385cd6ca4b3a87457b0696d2ce6c3c905717c8b0a3796aa27fb5df5dd97697e918b6a2ae2398efffc28cca622b93a79ab5d90f7a35f3b916
7
+ data.tar.gz: ed73a9f55e3c54d65da753811876932da1537835a14b5f8cc5e15fe1271bfb8d97e5c49a64877f37a330a59cd233343c512fb7049ca3874328708c5c25709d20
@@ -23,7 +23,7 @@
23
23
  -------------------------------------------------------------------------------- {% endcomment %}
24
24
  {% include themes/{{site.template.name}}/procedures/global/setup.proc %}
25
25
  {% capture select_color %}themes/{{site.template.name}}/procedures/global/select_color.proc{% endcapture %}
26
- {% capture topsearch_create %}themes/{{site.template.name}}/modules/navigator/procedures/topsearch.proc{% endcapture %}
26
+
27
27
 
28
28
  {% comment %} Not longer used (loaded via AJAX)
29
29
  --------------------------------------------------------------------------------
@@ -59,8 +59,6 @@
59
59
  {% assign nav_bar_settings = navigator_settings.nav_bar %}
60
60
  {% assign nav_quicklinks_defaults = navigator_defaults.nav_quicklinks %}
61
61
  {% assign nav_quicklinks_settings = navigator_settings.nav_quicklinks %}
62
- {% assign nav_topsearch_defaults = navigator_defaults.nav_topsearch %}
63
- {% assign nav_topsearch_settings = navigator_settings.nav_topsearch %}
64
62
 
65
63
  {% assign nav_authclient_defaults = authentication_defaults.auth_client %}
66
64
  {% assign nav_authclient_settings = authentication_settings.auth_client %}
@@ -72,7 +70,6 @@
72
70
  -------------------------------------------------------------------------------- {% endcomment %}
73
71
  {% assign nav_bar_options = nav_bar_defaults | merge: nav_bar_settings %}
74
72
  {% assign quicklinks_options = nav_quicklinks_defaults | merge: nav_quicklinks_settings %}
75
- {% assign topsearch_options = nav_topsearch_defaults | merge: nav_topsearch_settings %}
76
73
  {% assign authclient_options = nav_authclient_defaults | merge: nav_authclient_settings %}
77
74
  {% assign authentication_options = authentication_defaults | merge: authentication_settings %}
78
75
  {% assign auth_manager_options = authentication_options.j1_auth %}
@@ -111,15 +108,6 @@
111
108
  {% comment %} Main
112
109
  -------------------------------------------------------------------------------- {% endcomment %}
113
110
 
114
- {% comment %} Generate search container
115
- -------------------------------------------------------------------------------- {% endcomment %}
116
- <!-- [INFO ] [~/_includes/themes/j1/modules/navigator/generator.html ] [ check for topsearch ] -->
117
- {% if topsearch_options.enabled %}
118
- <!-- [INFO ] [~/_includes/themes/j1/modules/navigator/generator.html ] [ start processing: topsearch ] -->
119
- {% include {{topsearch_create}} options=topsearch_options %}
120
- <!-- [INFO ] [~/_includes/themes/j1/modules/navigator/generator.html ] [ end processing: topsearch ] -->
121
- {% endif %}
122
-
123
111
  {% comment %} Place MMobile NAV menu containers (HTML data loaded via AJAX)
124
112
  -------------------------------------------------------------------------------- {% endcomment %}
125
113
  <!-- [INFO ] [~/_includes/themes/j1/modules/navigator/generator.html ] [ start processing: mmenu ] -->
@@ -0,0 +1,61 @@
1
+ {% comment %}
2
+ # -----------------------------------------------------------------------------
3
+ # ~/_includes/themes/j1/modules/searcher/generator.html
4
+ # Liquid HTML template to create the HTML portion for the J1 Search Module
5
+ #
6
+ # Product/Info:
7
+ # https://jekyll.one
8
+ #
9
+ # Copyright (C) 2022 Juergen Adams
10
+ #
11
+ # J1 Template is licensed under the MIT License.
12
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
13
+ #
14
+ # -----------------------------------------------------------------------------
15
+ # Test data:
16
+ # liquid_var: {{liquid_var | debug}}
17
+ #
18
+ # -----------------------------------------------------------------------------
19
+ {% endcomment %}
20
+
21
+ {% comment %} Liquid procedures
22
+ -------------------------------------------------------------------------------- {% endcomment %}
23
+ {% include themes/{{site.template.name}}/procedures/global/setup.proc %}
24
+ {% capture topsearch_create %}themes/{{site.template.name}}/modules/searcher/procedures/topsearch.proc{% endcapture %}
25
+
26
+
27
+ {% comment %} Process YML config data
28
+ ================================================================================ {% endcomment %}
29
+
30
+ {% comment %} Set config files
31
+ -------------------------------------------------------------------------------- {% endcomment %}
32
+ {% assign template_config = site.data.j1_config %}
33
+ {% assign blocks = site.data.blocks %}
34
+ {% assign modules = site.data.modules %}
35
+
36
+ {% comment %} Set config files
37
+ -------------------------------------------------------------------------------- {% endcomment %}
38
+ {% assign lunr_defaults = site.data.modules.defaults.lunr.defaults %}
39
+ {% assign lunr_settings = site.data.modules.lunr.settings %}
40
+
41
+ {% comment %} Set config data
42
+ -------------------------------------------------------------------------------- {% endcomment %}
43
+ {% assign topsearch_defaults = lunr_defaults.topsearch %}
44
+ {% assign topsearch_settings = lunr_settings.topsearch %}
45
+
46
+ {% comment %} Set config options
47
+ -------------------------------------------------------------------------------- {% endcomment %}
48
+ {% assign topsearch_options = topsearch_defaults | merge: topsearch_settings %}
49
+
50
+
51
+ {% comment %} Main
52
+ -------------------------------------------------------------------------------- {% endcomment %}
53
+
54
+ {% comment %} Generate Search Modal
55
+ -------------------------------------------------------------------------------- {% endcomment %}
56
+ <!-- [INFO ] [_includes/themes/j1/modules/searcher/generator.html ] [ check for topsearch ] -->
57
+ {% if topsearch_options.enabled %}
58
+ <!-- [INFO ] [~/_includes/themes/j1/modules/searcher/generator.html ] [ start processing: topsearch ] -->
59
+ {% include {{topsearch_create}} options=topsearch_options %}
60
+ {% endif %}
61
+ <!-- [INFO ] _includes/themes/j1/modules/searcher/generator.html ] [ end processing: topsearch ] -->
@@ -1,7 +1,7 @@
1
1
  {% comment %}
2
2
  # -----------------------------------------------------------------------------
3
- # ~/_includes/templates/j1/modules/navigator/procedures/topsearch.proc
4
- # Liquid PROCEDURE template to create search input for the quicklinks bar
3
+ # ~/_includes/templates/j1/modules/searcher/procedures/topsearch.proc
4
+ # Liquid PROCEDURE template to create search input for J1 Quicksearch
5
5
  #
6
6
  # Product/Info:
7
7
  # https://jekyll.one
@@ -57,11 +57,11 @@
57
57
  {% assign quick_search = true %}
58
58
  {% assign elastic_search = false %}
59
59
 
60
- {% if topsearch_options.type == 'quick_search' %}
60
+ {% if topsearch_options.type == 'quicksearch' %}
61
61
  {% assign quick_search = true %}
62
62
  {% endif %}
63
63
 
64
- {% if topsearch_options.type == 'elastic_search' %}
64
+ {% if topsearch_options.type == 'elasticsearch' %}
65
65
  {% assign elastic_search = true %}
66
66
  {% assign quick_search = false %}
67
67
  {% endif %}
@@ -88,42 +88,63 @@
88
88
  {% comment %} lunrSearch engine
89
89
  ------------------------------------------------------------------------------ {% endcomment %}
90
90
  {% if quick_search %}
91
- <!-- [INFO ] [~/_includes/themes/j1/modules/navigator/procedures/topsearch.proc ] [ start processing: top search ] -->
92
- <div id="{{topsearch_id}}" class="top-search ml-4 mr-4" style="display: none;">
93
- <div class="input-group">
94
- <span class="input-group-addon"><i class="mdi mdi-magnify mdi-2x mb-2" style="color:#9E9E9E"></i></span>
95
- <input id="search-query" type="text" name="q" placeholder="{{placeholder}}" autocomplete="off" class="form-control">
96
- <span id="clear-topsearch" class="form-clear form-clear-searcher d-none" style="margin-top: 0.75rem"><i class="mdi mdi-format-clear mdi-2x" style="color:#9E9E9E"></i></span>
97
- <span class="input-group-addon close-search"><i class="mdi mdi-close mdi-3x" style="color:#9E9E9E"></i></span>
98
- </div>
99
-
100
- <!-- [INFO ] [~/_includes/themes/j1/modules/navigator/procedures/topsearch.proc ] [ place: results container ] -->
101
- <div class="search-results hide-scrollbar">
102
- <section id="search-results" style="display: none"></section>
103
- </div>
91
+ <!-- Modal Top Search -->
92
+ <div id="searchModal"
93
+ class="modal fade top"
94
+ tabindex="-1"
95
+ role="dialog"
96
+ aria-labelledby="myModalLabel" aria-hidden="true"
97
+ data-keyboard="false"
98
+ data-backdrop="static">
99
+
100
+ <div class="modal-dialog modal-frame modal-top modal-notify modal-info" role="document">
101
+
102
+ <!-- Content -->
103
+ <div class="modal-content">
104
+ <!-- Body -->
105
+ <div class="modal-body">
106
+ <div id="navigator_nav_topsearch" class="top-search ml-4 mr-4">
107
+ <span class="bmd-form-group">
108
+ <div class="input-group">
109
+ <span class="input-group-addon"><i class="mdi mdi-magnify mdi-2x mb-2" style="color:#9E9E9E"></i></span>
110
+ <input id="search-query" type="text" name="q" placeholder="Your search expression" autocomplete="off" class="form-control">
111
+ <span id="clear-topsearch" class="form-clear form-clear-searcher d-none" style="margin-top: 0.75rem"> <i class="mdi mdi-format-clear mdi-2x" style="color:#9E9E9E"></i> </span>
112
+ </div>
113
+ </span>
114
+ <!-- [INFO ] [~/assets/data/top_search_modal.html ] [ place: results container ] -->
115
+ <div class="search-results hide-scrollbar mt-4">
116
+ <section id="search-results" style="display: none;"></section>
117
+ </div>
118
+ </div>
119
+ </div>
120
+ </div>
121
+ <!-- END Content -->
104
122
 
105
- <!-- [INFO ] [~/_includes/themes/j1/modules/navigator/procedures/topsearch.proc ] [ place: mustache template ] -->
106
- {% raw %}
107
- <script id="search-results-template" type="text/mustache">
108
- <ul style="list-style: none; margin-left: .5rem; margin-right: 4.25rem">
109
- {{#docs}}
110
- <li>
111
- <h4 class="result-item"> <a class="link-no-decoration" href="{{url}}" target="_blank">{{title}} · {{tagline}}</a> </h4>
112
- <p class="result-item-text small text-muted mt-2 mb-0">
113
- <i class="mdi mdi-calendar-blank mdi-18px mr-1"></i>{{displaydate}}
114
- </p>
115
- <p class="result-item-text">{{description}}</p>
116
- <p class="result-item-text small text-muted mb-3">
117
- <i class="mdi mdi-tag-text-outline mdi-18px mr-1"></i><span class="sr-categories">{{#categories}} {{.}} · {{/categories}}</span>
118
- <i class="mdi mdi-tag mdi-18px mr-1 ml-2"></i><span class="sr-tags">{{#tags}} {{.}} · {{/tags}}</span>
119
- </p>
120
- </li>
121
- {{/docs}}
122
- <ul>
123
- </script>
124
- {% endraw %}
125
-
126
- {% endif %}
123
+ </div>
127
124
  </div>
128
- <!-- [INFO ] [~/_includes/themes/j1/modules/navigator/procedures/topsearch.proc ] [ end processing: top search ] -->
125
+ <!-- END Modal Top Search -->
126
+
127
+ <!-- [INFO ] [_includes/themes/j1/modules/searcher/procedures/topsearch.proc ] [ place: mustache template ] -->
128
+ {% raw %}
129
+ <script id="search-results-template" type="text/mustache">
130
+ <ul style="list-style: none; margin-left: .5rem; margin-right: 4.25rem">
131
+ {{#docs}}
132
+ <li>
133
+ <h4 class="result-item"> <a class="link-no-decoration" href="{{url}}" target="_blank">{{title}} · {{tagline}}</a> </h4>
134
+ <p class="result-item-text small text-muted mt-2 mb-0">
135
+ <i class="mdi mdi-calendar-blank mdi-18px mr-1"></i>{{displaydate}}
136
+ </p>
137
+ <p class="result-item-text">{{description}}</p>
138
+ <p class="result-item-text small text-muted mb-3">
139
+ <i class="mdi mdi-tag-text-outline mdi-18px mr-1"></i><span class="sr-categories">{{#categories}} {{.}} · {{/categories}}</span>
140
+ <i class="mdi mdi-tag mdi-18px mr-1 ml-2"></i><span class="sr-tags">{{#tags}} {{.}} · {{/tags}}</span>
141
+ </p>
142
+ </li>
143
+ {{/docs}}
144
+ <ul>
145
+ </script>
146
+ {% endraw %}
147
+
148
+ {% endif %}
149
+ <!-- [INFO ] [_includes/themes/j1/modules/searcher/procedures/topsearch.proc ] [ end processing: top search ] -->
129
150
  {% endif %}
@@ -257,8 +257,8 @@ exclude_from_search: true
257
257
  <img
258
258
  class="sticker-image"
259
259
  src="/assets/images/sticker/600x600/sticker-new-version.png"
260
- alt="Get new version 2022.6.0"
261
- title="Get new version 2022.6.0"
260
+ alt="Get new version 2022.6.1"
261
+ title="Get new version 2022.6.1"
262
262
  style="width: 140px; height: 120px;"
263
263
  >
264
264
  </a>
@@ -0,0 +1,142 @@
1
+ ---
2
+ regenerate: true
3
+ exclude_from_search: true
4
+ ---
5
+
6
+ {% capture cache %}
7
+
8
+ {% comment %}
9
+ # -----------------------------------------------------------------------------
10
+ # ~/assets/data/translator.html
11
+ # Liquid PROCEDURE to generate the HTML (data) portion of all modals used
12
+ # by the J1 Translator module
13
+ #
14
+ # Product/Info:
15
+ # https://jekyll.one
16
+ #
17
+ # Copyright (C) 2022 Juergen Adams
18
+ #
19
+ # J1 Template is licensed under the MIT License.
20
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
21
+ # -----------------------------------------------------------------------------
22
+ # Test data:
23
+ # liquid_var: {{ liquid_var | debug }}
24
+ # config: {{ config | debug }}
25
+ # -----------------------------------------------------------------------------
26
+ {% endcomment %}
27
+
28
+ {% comment %} Liquid procedures
29
+ -------------------------------------------------------------------------------- {% endcomment %}
30
+
31
+ {% comment %} Set global settings
32
+ -------------------------------------------------------------------------------- {% endcomment %}
33
+ {% assign environment = site.environment %}
34
+
35
+ {% comment %} Set config files
36
+ -------------------------------------------------------------------------------- {% endcomment %}
37
+ {% assign modules = site.data.modules %}
38
+
39
+ {% comment %} Process YML config data
40
+ ================================================================================ {% endcomment %}
41
+
42
+ {% comment %} Set config files
43
+ -------------------------------------------------------------------------------- {% endcomment %}
44
+ {% assign translate_defaults = modules.defaults.translator.defaults %}
45
+ {% assign translate_settings = modules.translator.settings %}
46
+
47
+ {% comment %} Set config options
48
+ -------------------------------------------------------------------------------- {% endcomment %}
49
+ {% assign translate_options = translate_defaults | merge: translate_settings %}
50
+
51
+ {% comment %} Detect prod mode
52
+ -------------------------------------------------------------------------------- {% endcomment %}
53
+ {% assign production = false %}
54
+ {% if environment == 'prod' or environment == 'production' %}
55
+ {% assign production = true %}
56
+ {% endif %}
57
+
58
+
59
+ {% comment %} Main
60
+ ================================================================================ {% endcomment %}
61
+ <!-- [INFO ] [~/assets/data/translator.html ] [ set meta data (robots) to exclude HTML datafiles from index ] -->
62
+ <head>
63
+ <meta name="robots" content="noindex, nofollow" />
64
+ </head>
65
+
66
+ {% comment %} i18n: translations
67
+ -------------------------------------------------------------------------------- {% endcomment %}
68
+
69
+ {% comment %} Modal Top Search dialog (default: en-EN)
70
+ -------------------------------------------------------------------------------- {% endcomment %}
71
+ <div id="searchModal-en">
72
+
73
+ <!-- Modal Top Search -->
74
+ <div id="searchModal"
75
+ class="modal fade top"
76
+ tabindex="-1"
77
+ role="dialog"
78
+ aria-labelledby="myModalLabel" aria-hidden="true"
79
+ data-keyboard="false"
80
+ data-backdrop="static">
81
+
82
+ <div class="modal-dialog modal-frame modal-top modal-notify modal-info" role="document">
83
+
84
+ <!-- Content -->
85
+ <div class="modal-content">
86
+ <!-- Body -->
87
+ <div class="modal-body">
88
+ <div id="navigator_nav_topsearch" class="top-search ml-4 mr-4">
89
+ <span class="bmd-form-group">
90
+ <div class="input-group">
91
+ <span class="input-group-addon"><i class="mdi mdi-magnify mdi-2x mb-2" style="color:#9E9E9E"></i></span>
92
+ <input id="search-query" type="text" name="q" placeholder="Your search expression" autocomplete="off" class="form-control">
93
+ <span id="clear-topsearch" class="form-clear form-clear-searcher d-none" style="margin-top: 0.75rem"> <i class="mdi mdi-format-clear mdi-2x" style="color:#9E9E9E"></i> </span>
94
+ </div>
95
+ </span>
96
+ <!-- [INFO ] [~/assets/data/top_search_modal.html ] [ place: results container ] -->
97
+ <div class="search-results hide-scrollbar mt-4">
98
+ <section id="search-results" style="display: none;"></section>
99
+ </div>
100
+ </div>
101
+ </div>
102
+ </div>
103
+ <!-- END Content -->
104
+
105
+ </div>
106
+ </div>
107
+ <!-- END Modal Top Search -->
108
+
109
+ {% raw %}
110
+ <!-- [INFO ] [~/assets/data/top_search_modal.html ] [ place: JS Mustache template ] -->
111
+ <script id="search-results-template" type="text/mustache">
112
+ <ul style="list-style: none; margin-left: .5rem; margin-right: 4.25rem">
113
+ {{#docs}}
114
+ <li>
115
+ <h4 class="result-item"> <a class="link-no-decoration" href="{{url}}" target="_blank">{{title}} · {{tagline}}</a> </h4>
116
+ <p class="result-item-text small text-muted mt-2 mb-0">
117
+ <i class="mdi mdi-calendar-blank mdi-18px mr-1"></i>{{displaydate}}
118
+ </p>
119
+ <p class="result-item-text">{{description}}</p>
120
+ <p class="result-item-text small text-muted mb-3">
121
+ <i class="mdi mdi-tag-text-outline mdi-18px mr-1"></i><span class="sr-categories">{{#categories}} {{.}} · {{/categories}}</span>
122
+ <i class="mdi mdi-tag mdi-18px mr-1 ml-2"></i><span class="sr-tags">{{#tags}} {{.}} · {{/tags}}</span>
123
+ </p>
124
+ </li>
125
+ {{/docs}}
126
+ <ul>
127
+ </script>
128
+ {% endraw %}
129
+
130
+ </div>
131
+
132
+ {% comment %} END Modal Google Translator dialog (en-EN)
133
+ -------------------------------------------------------------------------------- {% endcomment %}
134
+
135
+ {% endcapture %}
136
+
137
+ {% if production %}
138
+ {% capture _LINE_FEED %}{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ cache | strip_html_comments }}{% else %}{% capture _content %}{{ cache | strip_html_comments }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ cache | strip_html_comments | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
139
+ {% else %}
140
+ {{ cache | pretty_print | remove:'<html><body>' | remove:'</body></html>' | strip_empty_lines }}
141
+ {% endif %}
142
+ {% assign cache = nil %}
@@ -0,0 +1,121 @@
1
+ ---
2
+ regenerate: true
3
+ exclude_from_search: true
4
+ ---
5
+
6
+ {% capture cache %}
7
+
8
+ {% comment %}
9
+ # -----------------------------------------------------------------------------
10
+ # ~/assets/data/translator.html
11
+ # Liquid PROCEDURE to generate the HTML (data) portion of all modals used
12
+ # by the J1 Translator module
13
+ #
14
+ # Product/Info:
15
+ # https://jekyll.one
16
+ #
17
+ # Copyright (C) 2022 Juergen Adams
18
+ #
19
+ # J1 Template is licensed under the MIT License.
20
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
21
+ # -----------------------------------------------------------------------------
22
+ # Test data:
23
+ # liquid_var: {{ liquid_var | debug }}
24
+ # config: {{ config | debug }}
25
+ # -----------------------------------------------------------------------------
26
+ {% endcomment %}
27
+
28
+ {% comment %} Liquid procedures
29
+ -------------------------------------------------------------------------------- {% endcomment %}
30
+
31
+ {% comment %} Set global settings
32
+ -------------------------------------------------------------------------------- {% endcomment %}
33
+ {% assign environment = site.environment %}
34
+
35
+ {% comment %} Set config files
36
+ -------------------------------------------------------------------------------- {% endcomment %}
37
+ {% assign modules = site.data.modules %}
38
+
39
+ {% comment %} Process YML config data
40
+ ================================================================================ {% endcomment %}
41
+
42
+ {% comment %} Set config files
43
+ -------------------------------------------------------------------------------- {% endcomment %}
44
+ {% assign translate_defaults = modules.defaults.translator.defaults %}
45
+ {% assign translate_settings = modules.translator.settings %}
46
+
47
+ {% comment %} Set config options
48
+ -------------------------------------------------------------------------------- {% endcomment %}
49
+ {% assign translate_options = translate_defaults | merge: translate_settings %}
50
+
51
+ {% comment %} Detect prod mode
52
+ -------------------------------------------------------------------------------- {% endcomment %}
53
+ {% assign production = false %}
54
+ {% if environment == 'prod' or environment == 'production' %}
55
+ {% assign production = true %}
56
+ {% endif %}
57
+
58
+
59
+ {% comment %} Main
60
+ ================================================================================ {% endcomment %}
61
+ <!-- [INFO ] [~/assets/data/translator.html ] [ set meta data (robots) to exclude HTML datafiles from index ] -->
62
+ <head>
63
+ <meta name="robots" content="noindex, nofollow" />
64
+ </head>
65
+
66
+ {% comment %} i18n: translations
67
+ -------------------------------------------------------------------------------- {% endcomment %}
68
+
69
+ {% comment %} Modal Top Search dialog (default: en-EN)
70
+ -------------------------------------------------------------------------------- {% endcomment %}
71
+ <div id="searchModal-en">
72
+
73
+ <!-- Modal Top Search -->
74
+ <div id="searchModal"
75
+ class="modal fade top"
76
+ tabindex="-1"
77
+ role="dialog"
78
+ aria-labelledby="myModalLabel" aria-hidden="true"
79
+ data-keyboard="false"
80
+ data-backdrop="static">
81
+
82
+ <div class="modal-dialog modal-frame modal-top modal-notify modal-info" role="document">
83
+
84
+ <!-- Content -->
85
+ <div class="modal-content">
86
+ <!-- Body -->
87
+ <div class="modal-body">
88
+ <div id="navigator_nav_topsearch" class="top-search ml-4 mr-4">
89
+ <span class="bmd-form-group">
90
+ <div class="input-group">
91
+ <span class="input-group-addon"><i class="mdi mdi-magnify mdi-2x mb-2" style="color:#9E9E9E"></i></span>
92
+ <input id="search-query" type="text" name="q" placeholder="Your search expression" autocomplete="off" class="form-control">
93
+ <span id="clear-topsearch" class="form-clear form-clear-searcher d-none" style="margin-top: 0.75rem"> <i class="mdi mdi-format-clear mdi-2x" style="color:#9E9E9E"></i> </span>
94
+ </div>
95
+ </span>
96
+ <!-- [INFO ] [~/assets/data/top_search_modal.html ] [ place: results container ] -->
97
+ <div class="search-results hide-scrollbar mt-4">
98
+ <section id="search-results" style="display: none;"></section>
99
+ </div>
100
+ </div>
101
+ </div>
102
+ </div>
103
+ <!-- END Content -->
104
+
105
+ </div>
106
+ </div>
107
+ <!-- END Modal Top Search -->
108
+
109
+ </div>
110
+
111
+ {% comment %} END Modal Google Translator dialog (en-EN)
112
+ -------------------------------------------------------------------------------- {% endcomment %}
113
+
114
+ {% endcapture %}
115
+
116
+ {% if production %}
117
+ {% capture _LINE_FEED %}{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ cache | strip_html_comments }}{% else %}{% capture _content %}{{ cache | strip_html_comments }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ cache | strip_html_comments | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
118
+ {% else %}
119
+ {{ cache | pretty_print | remove:'<html><body>' | remove:'</body></html>' | strip_empty_lines }}
120
+ {% endif %}
121
+ {% assign cache = nil %}
@@ -84,6 +84,7 @@ j1.adapter.lunr = (function (j1, window) {
84
84
  var _this;
85
85
  var logger;
86
86
  var logText;
87
+ var modalBody;
87
88
 
88
89
  // ---------------------------------------------------------------------------
89
90
  // Helper functions
@@ -120,7 +121,7 @@ j1.adapter.lunr = (function (j1, window) {
120
121
  searchOptions = $.extend({}, {{lunr_search_options | replace: '=>', ':' | replace: 'nil', '""'}});
121
122
 
122
123
  // -----------------------------------------------------------------------
123
- // lunr_search initializer
124
+ // lunr initializer
124
125
  // -----------------------------------------------------------------------
125
126
  var dependencies_met_j1_finished = setInterval(function() {
126
127
  if (j1.getState() == 'finished') {
@@ -150,6 +151,38 @@ j1.adapter.lunr = (function (j1, window) {
150
151
 
151
152
  }, // END init
152
153
 
154
+ // -------------------------------------------------------------------------
155
+ // loadDialog (modal)
156
+ // -------------------------------------------------------------------------
157
+ loadDialog: function () {
158
+
159
+ logger.info('\n' + 'create|append search modal, id: ' + 'bratze');
160
+
161
+ _this.modal = document.createElement('div');
162
+ _this.modal.id = "topInfoModalContainer";
163
+ document.body.append(_this.modal);
164
+
165
+ {% raw %}
166
+ _this.modalScript = document.createElement('script');
167
+ _this.modalScript.type = 'text/mustache';
168
+ _this.modalScript.id = 'search-results-template';
169
+ _this.modalScript.text = '<ul style="list-style: none; margin-left: .5rem; margin-right: 4.25rem">' + '\n';
170
+ _this.modalScript.text += '{{#docs}}' + '\n';
171
+ _this.modalScript.text += ' <li>' + '\n';
172
+ _this.modalScript.text += ' <h4 class="result-item"> <a class="link-no-decoration" href="{{url}}" target="_blank">{{title}} · {{tagline}}</a> </h4>' + '\n';
173
+ _this.modalScript.text += ' <p class="result-item-text small text-muted mt-2 mb-0"> <i class="mdi mdi-calendar-blank mdi-18px mr-1"></i>{{displaydate}} </p>' + '\n';
174
+ _this.modalScript.text += ' <p class="result-item-text">{{description}}</p>' + '\n';
175
+ _this.modalScript.text += ' <i class="mdi mdi-tag-text-outline mdi-18px mr-1"></i><span class="sr-categories">{{#categories}} {{.}} · {{/categories}}</span>' + '\n';
176
+ _this.modalScript.text += ' <i class="mdi mdi-tag mdi-18px mr-1 ml-2"></i><span class="sr-tags">{{#tags}} {{.}} · {{/tags}}</span>' + '\n';
177
+ _this.modalScript.text += ' </p>' + '\n';
178
+ _this.modalScript.text += ' </li>' + '\n';
179
+ _this.modalScript.text += '{{/docs}}' + '\n';
180
+ _this.modalScript.text += '<ul>' + '\n';
181
+ {% endraw %}
182
+ document.body.append(_this.modalScript);
183
+
184
+ }, // END loadDialog
185
+
153
186
  // -------------------------------------------------------------------------
154
187
  // event handler
155
188
  // -------------------------------------------------------------------------