j1-template 2021.1.26 → 2021.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_includes/themes/j1/layouts/content_generator_article_navigator.html +1 -1
- data/_includes/themes/j1/layouts/content_generator_blog_archive.html +6 -4
- data/_includes/themes/j1/layouts/content_generator_post.html +3 -0
- data/_includes/themes/j1/modules/navigator/generator.html +1 -1
- data/_includes/themes/j1/procedures/posts/collate_timeline.proc +1 -1
- data/_includes/themes/j1/procedures/posts/create_series_header.proc +6 -6
- data/_layouts/default.html +1 -0
- data/assets/data/mdil_icons.json +2417 -0
- data/assets/data/panel.html +0 -15
- data/assets/themes/j1/adapter/js/j1.js +6 -6
- data/assets/themes/j1/adapter/js/j1scroll.js +143 -46
- data/assets/themes/j1/core/css/icon-fonts/materialdesign-light.css +1222 -0
- data/assets/themes/j1/core/css/icon-fonts/materialdesign-light.min.css +1 -0
- data/assets/themes/j1/core/css/icon-fonts/materialdesign.css +1 -1
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +42 -0
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -1
- data/assets/themes/j1/core/fonts/material_design_icons_light/fonts/eot/materialdesignicons-light-webfont.eot +0 -0
- data/assets/themes/j1/core/fonts/material_design_icons_light/fonts/materialdesignicons-light-webfont.woff +0 -0
- data/assets/themes/j1/core/fonts/material_design_icons_light/fonts/materialdesignicons-light-webfont.woff2 +0 -0
- data/assets/themes/j1/core/fonts/material_design_icons_light/fonts/svg/materialdesignicons-light-webfont.svg +801 -0
- data/assets/themes/j1/core/fonts/material_design_icons_light/fonts/ttf/materialdesignicons-light-webfont.ttf +0 -0
- data/assets/themes/j1/core/js/template.js +4 -4
- data/assets/themes/j1/core/js/template.js.map +1 -1
- data/assets/themes/j1/core/js/template.min.js +4 -4
- data/assets/themes/j1/core/js/template.min.js.map +1 -1
- data/assets/themes/j1/modules/j1Scroll/css/theme/uno.css +4 -50
- data/assets/themes/j1/modules/j1Scroll/css/theme/uno.min.css +1 -1
- data/assets/themes/j1/modules/j1Scroll/js/j1scroll.js +263 -188
- data/assets/themes/j1/modules/j1Scroll/js/j1scroll.min.js +16 -0
- data/assets/themes/j1/modules/mdiPreviewer/css/previewer.css +1 -1
- data/assets/themes/j1/modules/mdiPreviewer/css/previewer.min.css +1 -1
- data/assets/themes/j1/modules/mdiPreviewer/js/previewer.js +5 -15
- data/assets/themes/j1/modules/mdiPreviewer/js/previewer.min.js +1 -1
- data/assets/themes/j1/modules/mdilPreviewer/css/previewer.css +97 -0
- data/assets/themes/j1/modules/mdilPreviewer/css/previewer.min.css +15 -0
- data/assets/themes/j1/modules/mdilPreviewer/js/previewer.js +125 -0
- data/assets/themes/j1/modules/mdilPreviewer/js/previewer.min.js +15 -0
- data/assets/themes/j1/modules/showOnScroll/js/showOnScroll.js +73 -74
- data/assets/themes/j1/modules/showOnScroll/js/showOnScroll.min.js +15 -15
- data/lib/j1/commands/generate.rb +5 -8
- data/lib/j1/version.rb +3 -3
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/_config.yml +3 -3
- data/lib/starter_web/_data/blocks/banner.yml +4 -5
- data/lib/starter_web/_data/blocks/panel.yml +217 -183
- data/lib/starter_web/_data/builder/blog_navigator.yml +1 -0
- data/lib/starter_web/_data/layouts/home.yml +20 -16
- data/lib/starter_web/_data/modules/defaults/navigator.yml +1 -1
- data/lib/starter_web/_data/modules/j1scroll.yml +67 -0
- data/lib/starter_web/_data/modules/navigator_menu.yml +3 -3
- data/lib/starter_web/_data/resources.yml +41 -44
- data/lib/starter_web/_includes/attributes.asciidoc +1 -1
- data/lib/starter_web/_plugins/lunr_index.rb +1 -1
- data/lib/starter_web/assets/images/modules/attics/annie-spratt-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/antonino-visalli-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/humble-lamb-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/library-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/romain-vignes-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/sigmund-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/{pages/videos → modules/attics}/szabo-viktor-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/pages/asciidoc_skeletons/example-pdf-screenshot.png +0 -0
- data/lib/starter_web/collections/posts/public/featured/_posts/{2020-01-01-about-cookies.adoc → 2021-01-01-about-cookies.adoc} +0 -0
- data/lib/starter_web/collections/posts/public/featured/_posts/{2021-03-01-site-generators.adoc → 2021-02-01-site-generators.adoc} +0 -0
- data/lib/starter_web/collections/posts/public/{wikipedia/_posts/2016-11-20-minneapolis.adoc → series/_posts/2020-01-01-post-wiki-series.adoc} +11 -10
- data/lib/starter_web/collections/posts/public/{wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc → series/_posts/2020-01-02-post-wiki-series.adoc} +15 -13
- data/lib/starter_web/collections/posts/public/{wikipedia/_posts/2016-11-26-columbia-river.adoc → series/_posts/2020-01-03-post-wiki-series.adoc} +28 -11
- data/lib/starter_web/collections/posts/public/{wikipedia → series}/_posts/_includes/attributes.asciidoc +0 -0
- data/lib/starter_web/collections/posts/public/{wikipedia → series}/_posts/_includes/documents/readme +0 -0
- data/lib/starter_web/collections/posts/public/{wikipedia → series}/_posts/_includes/tables/readme +0 -0
- data/lib/starter_web/index.html +2 -2
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/{book → documentation}/000_intro.adoc +5 -7
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +43 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +61 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/attributes.asciidoc +95 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/000_intro.asciidoc +54 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/000_basic_example.asciidoc +31 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/111_about_the_converter.asciidoc +111 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/112_getting_started.asciidoc +95 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/113_themes.asciidoc +39 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter.asciidoc +8 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/211_language_overview.asciidoc +122 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/212_values.asciidoc +502 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/213_fonts.asciidoc +261 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes.asciidoc +8 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/{book → documentation}/a2p.bat +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/{book → documentation}/a2p.sh +2 -2
- data/lib/starter_web/pages/public/asciidoc_skeletons/{book/book.a2p → documentation/documentation.a2p} +2 -8
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +86 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/100_chapter.asciidoc +848 -40
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/200_chapter.asciidoc +149 -38
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +2 -7
- data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +312 -119
- data/lib/starter_web/pages/public/blog/navigator/index.html +3 -2
- data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +2 -2
- data/lib/starter_web/pages/public/previewer/mdil_icons_preview.adoc +76 -0
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +52 -59
- data/assets/themes/j1/adapter/js/infiniteScroll.js +0 -259
- data/assets/themes/j1/modules/infiniteScroll/css/theme/uno.css +0 -150
- data/assets/themes/j1/modules/infiniteScroll/css/theme/uno.min.css +0 -15
- data/assets/themes/j1/modules/infiniteScroll/js/infiniteScroll.js +0 -1915
- data/assets/themes/j1/modules/infiniteScroll/js/infiniteScroll.min.js +0 -17
- data/lib/starter_web/_data/modules/defaults/infiniteScroll.yml +0 -73
- data/lib/starter_web/_data/modules/infiniteScroll.yml +0 -66
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +0 -128
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +0 -131
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +0 -131
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +0 -132
- data/lib/starter_web/pages/infinite-scroll-tester-5.adoc +0 -119
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/blindtext.asciidoc +0 -11
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/font_icons.asciidoc +0 -23
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/gallery.asciidoc +0 -5
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/lightbox.asciidoc +0 -7
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/documents/chapter_document.asciidoc +0 -9
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/documents/entry_document.asciidoc +0 -3
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/images/image.asciidoc +0 -6
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_2_column.asciidoc +0 -12
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_2_column_options.asciidoc +0 -30
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_3_column.asciidoc +0 -16
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_4_column.asciidoc +0 -25
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/100_chapter.adoc +0 -62
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/200_chapter.adoc +0 -64
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/900_references.adoc +0 -73
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/attributes.asciidoc +0 -74
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/000_intro.asciidoc +0 -33
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter/100_chapter_document.asciidoc +0 -21
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter/110_chapter_document.asciidoc +0 -36
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter.asciidoc +0 -7
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/200_chapter/200_chapter_document.asciidoc +0 -53
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/200_chapter.asciidoc +0 -5
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/000_intro.asciidoc +0 -23
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/100_chapter_document.asciidoc +0 -33
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/200_chapter_document.asciidoc +0 -26
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/900_sources.asciidoc +0 -81
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references.asciidoc +0 -23
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/tables/110_material_design_icons.asciidoc +0 -102
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.adoc +0 -136
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/100_chapter.asciidoc +0 -60
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/200_chapter.asciidoc +0 -59
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/tables/110_material_design_icons.asciidoc +0 -102
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
# -----------------------------------------------------------------------------
|
3
|
-
# ~/assets/themes/j1/modules/
|
4
|
-
# Provides styles for J1 Module
|
3
|
+
# ~/assets/themes/j1/modules/j1Scroll/css/uno.css
|
4
|
+
# Provides styles for J1 Module j1Scroll
|
5
5
|
#
|
6
6
|
# Product/Info:
|
7
7
|
# https://jekyll.one
|
@@ -32,53 +32,7 @@ span {
|
|
32
32
|
}
|
33
33
|
*/
|
34
34
|
|
35
|
-
/*
|
36
|
-
-------------------------------------------------------------------------------- */
|
37
|
-
.list-group-item {
|
38
|
-
width: 96%;
|
39
|
-
margin-right: 1% !important;
|
40
|
-
}
|
41
|
-
|
42
|
-
/* Media breakpoints */
|
43
|
-
@media only screen and (min-width: 576px) {
|
44
|
-
.list-group-item.items-auto {
|
45
|
-
width: 48.3%; }
|
46
|
-
.list-group-item.items-1 {
|
47
|
-
width: 96%; }
|
48
|
-
.list-group-item.items-2 {
|
49
|
-
width: 48.3%; }
|
50
|
-
.list-group-item.items-3 {
|
51
|
-
width: 48.3%; }
|
52
|
-
.list-group-item.items-4 {
|
53
|
-
width: 48.3%; } }
|
54
|
-
|
55
|
-
@media only screen and (min-width: 768px) {
|
56
|
-
.list-group-item.items-auto {
|
57
|
-
width: 31.333%; }
|
58
|
-
.list-group-item.items-1 {
|
59
|
-
width: 96%; }
|
60
|
-
.list-group-item.items-2 {
|
61
|
-
width: 48.3%; }
|
62
|
-
.list-group-item.items-3 {
|
63
|
-
width: 48.3%; }
|
64
|
-
.list-group-item.items-4 {
|
65
|
-
width: 48.3%; } }
|
66
|
-
|
67
|
-
@media only screen and (min-width: 992px) {
|
68
|
-
.list-group-item.items-auto {
|
69
|
-
width: 23.8%; }
|
70
|
-
.list-group-item.items-1 {
|
71
|
-
width: 96%; }
|
72
|
-
.list-group-item.items-2 {
|
73
|
-
width: 48.3%;
|
74
|
-
}
|
75
|
-
.list-group-item.items-3 {
|
76
|
-
width: 31.333%; }
|
77
|
-
.list-group-item.items-4 {
|
78
|
-
width: 23.8%; } }
|
79
|
-
|
80
|
-
|
81
|
-
/* controls
|
35
|
+
/* plugin controls
|
82
36
|
-------------------------------------------------------------------------------- */
|
83
37
|
.page-load-status, .page-scroll-last {
|
84
38
|
display: none; /* hidden by default */
|
@@ -97,7 +51,7 @@ span.infinite-scroll-last {
|
|
97
51
|
padding: 10px 3px;
|
98
52
|
}
|
99
53
|
|
100
|
-
/*
|
54
|
+
/* plugin spinner
|
101
55
|
-------------------------------------------------------------------------------- */
|
102
56
|
.loader-ellips {
|
103
57
|
font-size: 20px; /* change size here */
|
@@ -12,4 +12,4 @@
|
|
12
12
|
# See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
|
13
13
|
# -----------------------------------------------------------------------------
|
14
14
|
*/
|
15
|
-
.
|
15
|
+
.page-load-status,.page-scroll-last{display:none;padding-top:.5rem;border-top:1px dotted #212121;color:#777}span.infinite-scroll-last{border-bottom-width:1px;border-bottom-style:dotted;border-bottom-color:#212121;display:inline-block;margin:0 0 -1px 0;padding:10px 3px}.loader-ellips{font-size:20px;position:relative;width:4em;height:1em;margin:10px auto}.loader-ellips__dot{display:block;width:1em;height:1em;border-radius:.5em;background:#555;position:absolute;animation-duration:.5s;animation-timing-function:ease;animation-iteration-count:infinite}.loader-ellips__dot:nth-child(1),.loader-ellips__dot:nth-child(2){left:0}.loader-ellips__dot:nth-child(3){left:1.5em}.loader-ellips__dot:nth-child(4){left:3em}@keyframes reveal{from{transform:scale(0.001)}to{transform:scale(1)}}@keyframes slide{to{transform:translateX(1.5em)}}.loader-ellips__dot:nth-child(1){animation-name:reveal}.loader-ellips__dot:nth-child(2),.loader-ellips__dot:nth-child(3){animation-name:slide}.loader-ellips__dot:nth-child(4){animation-name:reveal;animation-direction:reverse}
|
@@ -1,188 +1,263 @@
|
|
1
|
-
/*
|
2
|
-
# -----------------------------------------------------------------------------
|
3
|
-
# ~/assets/themes/j1/modules/j1Scroll/js/j1scroll.js
|
4
|
-
# J1 core module for j1scroll
|
5
|
-
#
|
6
|
-
# Product/Info:
|
7
|
-
# https://jekyll.one
|
8
|
-
#
|
9
|
-
# Copyright (C) 2021 Juergen Adams
|
10
|
-
#
|
11
|
-
# J1 Template is licensed under the MIT License.
|
12
|
-
# For details, see https://jekyll.one
|
13
|
-
# -----------------------------------------------------------------------------
|
14
|
-
*/
|
15
|
-
|
16
|
-
// the semi-colon before function invocation is a SAFETY method against
|
17
|
-
// concatenated scripts and/or other plugins which may NOT be closed
|
18
|
-
// properly.
|
19
|
-
//
|
20
|
-
;(function($, window, document, undefined) {
|
21
|
-
|
22
|
-
'use strict';
|
23
|
-
|
24
|
-
//
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
this.
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
//
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
if (
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
//
|
123
|
-
//
|
124
|
-
//
|
125
|
-
|
126
|
-
|
127
|
-
var
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/themes/j1/modules/j1Scroll/js/j1scroll.js
|
4
|
+
# J1 core module for j1scroll
|
5
|
+
#
|
6
|
+
# Product/Info:
|
7
|
+
# https://jekyll.one
|
8
|
+
#
|
9
|
+
# Copyright (C) 2021 Juergen Adams
|
10
|
+
#
|
11
|
+
# J1 Template is licensed under the MIT License.
|
12
|
+
# For details, see https://jekyll.one
|
13
|
+
# -----------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
|
16
|
+
// the semi-colon before function invocation is a SAFETY method against
|
17
|
+
// concatenated scripts and/or other plugins which may NOT be closed
|
18
|
+
// properly.
|
19
|
+
//
|
20
|
+
;(function($, window, document, undefined) {
|
21
|
+
|
22
|
+
'use strict';
|
23
|
+
|
24
|
+
// Create the defaults
|
25
|
+
var pluginName = 'j1Scroll',
|
26
|
+
defaults = {
|
27
|
+
type: 'infiniteScroll',
|
28
|
+
scrollOffset: 100,
|
29
|
+
elementScroll: false,
|
30
|
+
firstPage: 2,
|
31
|
+
lastPage: false,
|
32
|
+
infoLastPage: false,
|
33
|
+
loadStatus: false,
|
34
|
+
onInit: function (){}, // callback after plugin has initialized
|
35
|
+
onBeforeLoad: function (){}, // callback before new items are loaded
|
36
|
+
onAfterLoad: function (){} // callback after new items are loaded
|
37
|
+
};
|
38
|
+
|
39
|
+
// Plugin constructor
|
40
|
+
function Plugin (element, options) {
|
41
|
+
this.element = element;
|
42
|
+
this.settings = $.extend( {}, defaults, options);
|
43
|
+
this.settings.elementID = '#' + this.element["id"]
|
44
|
+
|
45
|
+
// call the initializer
|
46
|
+
this.init(this.settings);
|
47
|
+
}
|
48
|
+
|
49
|
+
// Avoid Plugin.prototype conflicts
|
50
|
+
$.extend(Plugin.prototype, {
|
51
|
+
// -------------------------------------------------------------------------
|
52
|
+
// init: initializer
|
53
|
+
// -------------------------------------------------------------------------
|
54
|
+
init: function(options) {
|
55
|
+
var logger = log4javascript.getLogger('j1Scroll');
|
56
|
+
|
57
|
+
logger.info('\n' + 'initializing plugin: started');
|
58
|
+
logger.info('\n' + 'state: started');
|
59
|
+
|
60
|
+
if ( options.elementScroll ) {
|
61
|
+
this.scroller = this.element;
|
62
|
+
} else {
|
63
|
+
this.scroller = window;
|
64
|
+
}
|
65
|
+
|
66
|
+
if (options.loadStatus) {
|
67
|
+
var spinner = '<div class="loader-ellips" style="display: none"> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> </div>';
|
68
|
+
$(spinner).insertAfter(options.elementID);
|
69
|
+
}
|
70
|
+
|
71
|
+
if (options.infoLastPage) {
|
72
|
+
var message = options.lastPageInfo;
|
73
|
+
$(message).insertAfter(options.elementID);
|
74
|
+
}
|
75
|
+
|
76
|
+
// initialize infinite scroll
|
77
|
+
if ( options.type === 'infiniteScroll') {
|
78
|
+
logger.info('\n' + 'processing mode: infiniteScroll');
|
79
|
+
logger.info('\n' + 'loading items from path: ' + options.path + "#");
|
80
|
+
logger.info('\n' + 'monitoring element set to: ' + this.scroller);
|
81
|
+
this.registerScrollEvent(options);
|
82
|
+
}
|
83
|
+
logger.info('\n' + 'initializing plugin: finished');
|
84
|
+
logger.info('\n' + 'state: finished');
|
85
|
+
},
|
86
|
+
// -------------------------------------------------------------------------
|
87
|
+
// bottomReached: detect final scroll position
|
88
|
+
// NOTE: the calculation for BOTTOM position is different for
|
89
|
+
// elementScroll and windowScroll. For elementScroll, the
|
90
|
+
// trigger isBottomReached is TRUE, if the scroll position has
|
91
|
+
// the end of the container PLUS a given scrollOffset.
|
92
|
+
// For windowScroll, the trigger isBottomReached is TRUE, if
|
93
|
+
// the scroll position has the end of the window MINUS
|
94
|
+
// a given scrollOffset.
|
95
|
+
// -------------------------------------------------------------------------
|
96
|
+
isBottomReached: function (options) {
|
97
|
+
var _this = this;
|
98
|
+
var bottom, scrollY;
|
99
|
+
var clientHeight = $(options.elementID).height();
|
100
|
+
|
101
|
+
if ( _this.settings.elementScroll ) {
|
102
|
+
// check scroll position of the container items are to be added
|
103
|
+
var $window = $(window);
|
104
|
+
var viewport_top = $window.scrollTop();
|
105
|
+
var viewport_height = $window.height();
|
106
|
+
var viewport_bottom = viewport_top + viewport_height - options.scrollOffset;
|
107
|
+
var $elm = $(options.elementID);
|
108
|
+
var top = $elm.offset().top + clientHeight;
|
109
|
+
var height = $elm.height();
|
110
|
+
bottom = top + height;
|
111
|
+
|
112
|
+
|
113
|
+
return (top >= viewport_top && top < viewport_bottom) ||
|
114
|
+
(bottom > viewport_top && bottom <= viewport_bottom) ||
|
115
|
+
(height > viewport_height && top <= viewport_top && bottom >= viewport_bottom);
|
116
|
+
} else {
|
117
|
+
// check scroll position of the (overall) window
|
118
|
+
return (window.innerHeight + window.pageYOffset + options.scrollOffset >= document.body.offsetHeight);
|
119
|
+
}
|
120
|
+
},
|
121
|
+
// -------------------------------------------------------------------------
|
122
|
+
// detectScroll: EventHandler to load new items for infinite scroll
|
123
|
+
// if final scroll position reached
|
124
|
+
// -------------------------------------------------------------------------
|
125
|
+
registerScrollEvent: function (options) {
|
126
|
+
var _this = this;
|
127
|
+
var logger = log4javascript.getLogger('j1Scroll');
|
128
|
+
|
129
|
+
logger.info('\n' + 'scroll event: register');
|
130
|
+
|
131
|
+
var eventHandler_onscroll = function (event) {
|
132
|
+
var options = _this.settings;
|
133
|
+
|
134
|
+
if (_this.isBottomReached(options)) {
|
135
|
+
if (options.firstPage > options.lastPage ) {
|
136
|
+
logger.info('\n' + 'last page detected on: ' + options.lastPage);
|
137
|
+
window.removeEventListener('scroll', eventHandler_onscroll);
|
138
|
+
logger.info('\n' + 'scroll event: removed');
|
139
|
+
|
140
|
+
if (options.infoLastPage ) {
|
141
|
+
_this.infoLastPage(options);
|
142
|
+
}
|
143
|
+
return false;
|
144
|
+
}
|
145
|
+
_this.getNewPost(options);
|
146
|
+
}
|
147
|
+
}
|
148
|
+
window.addEventListener('scroll', eventHandler_onscroll);
|
149
|
+
|
150
|
+
logger.info('\n' + 'scroll event: registered');
|
151
|
+
},
|
152
|
+
// -------------------------------------------------------------------------
|
153
|
+
// getNewPost: load new items (from current path)
|
154
|
+
// Note: loader flag prevents to load items if AJAX load in progress
|
155
|
+
// is NOT finished
|
156
|
+
// -------------------------------------------------------------------------
|
157
|
+
getNewPost: function (options) {
|
158
|
+
var _this = this;
|
159
|
+
var logger = log4javascript.getLogger('j1Scroll');
|
160
|
+
|
161
|
+
logger.info('\n' + 'trigger loading ');
|
162
|
+
|
163
|
+
// initialze loader flag
|
164
|
+
if (this.itemsLoaded === false) return false;
|
165
|
+
|
166
|
+
// set loader flag (false == not loaded)
|
167
|
+
this.itemsLoaded = false;
|
168
|
+
|
169
|
+
// display spinner while loading
|
170
|
+
if (options.loadStatus) {
|
171
|
+
logger.info('\n' + 'show: spinner');
|
172
|
+
$('.loader-ellips').show();
|
173
|
+
}
|
174
|
+
|
175
|
+
var xmlhttp = new XMLHttpRequest();
|
176
|
+
xmlhttp.onreadystatechange = function () {
|
177
|
+
if (xmlhttp.readyState == XMLHttpRequest.DONE) {
|
178
|
+
if (xmlhttp.status == 200) {
|
179
|
+
options.firstPage++;
|
180
|
+
var childItems = _this.getChildItemsByAjaxHTML(options, xmlhttp.responseText);
|
181
|
+
_this.appendNewItems(childItems);
|
182
|
+
|
183
|
+
logger.info('\n' + 'loading new items: successful');
|
184
|
+
|
185
|
+
// hide the spinner after loading
|
186
|
+
if (options.loadStatus) {
|
187
|
+
logger.info('\n' + 'hide: spinner');
|
188
|
+
$('.loader-ellips').hide();
|
189
|
+
}
|
190
|
+
|
191
|
+
// set loader flag (true == loaded)
|
192
|
+
return _this.itemsLoaded = true;
|
193
|
+
} else {
|
194
|
+
// hide the spinner
|
195
|
+
if (options.loadStatus) {
|
196
|
+
logger.info('\n' + 'hide: spinner');
|
197
|
+
$('.loader-ellips').hide();
|
198
|
+
}
|
199
|
+
|
200
|
+
logger.error('\n' + 'loading new items failed, HTTP response: ' + xmlhttp.status );
|
201
|
+
// set loader flag (true == loaded)
|
202
|
+
return _this.itemsLoaded = false;
|
203
|
+
}
|
204
|
+
}
|
205
|
+
};
|
206
|
+
logger.info('\n' + 'loading new items from path: ' + options.path + options.firstPage);
|
207
|
+
xmlhttp.open("GET", location.origin + options.path + options.firstPage + '/index.html', true);
|
208
|
+
xmlhttp.send();
|
209
|
+
|
210
|
+
},
|
211
|
+
// -------------------------------------------------------------------------
|
212
|
+
// getChildItemsByAjaxHTML: extract items from page loaded
|
213
|
+
// -------------------------------------------------------------------------
|
214
|
+
getChildItemsByAjaxHTML: function (options, HTMLText) {
|
215
|
+
var newHTML = document.createElement('html');
|
216
|
+
var logger = log4javascript.getLogger('j1Scroll');
|
217
|
+
|
218
|
+
logger.info('\n' + 'load new items');
|
219
|
+
newHTML.innerHTML = HTMLText;
|
220
|
+
var childItems = newHTML.querySelectorAll(options.elementID + ' > *');
|
221
|
+
return childItems;
|
222
|
+
},
|
223
|
+
// -------------------------------------------------------------------------
|
224
|
+
// appendNewItems: append items and run post processing
|
225
|
+
// -------------------------------------------------------------------------
|
226
|
+
appendNewItems: function (items) {
|
227
|
+
var _this = this;
|
228
|
+
var logger = log4javascript.getLogger('j1Scroll');
|
229
|
+
|
230
|
+
logger.info('\n' + 'append new items');
|
231
|
+
items.forEach(function (item) {
|
232
|
+
_this.element.appendChild(item);
|
233
|
+
});
|
234
|
+
|
235
|
+
logger.info('\n' + 'post processing: createDropCap');
|
236
|
+
// initialize backdrops
|
237
|
+
j1.core.createDropCap();
|
238
|
+
},
|
239
|
+
// -------------------------------------------------------------------------
|
240
|
+
// getNewPost: load/append new items
|
241
|
+
// Note: loader flag prevents to load items if AJAX load in progress
|
242
|
+
// is NOT finished
|
243
|
+
// -------------------------------------------------------------------------
|
244
|
+
infoLastPage: function (options) {
|
245
|
+
var _this = this;
|
246
|
+
var logger = log4javascript.getLogger('j1Scroll');
|
247
|
+
|
248
|
+
logger.info('\n' + 'show: infoLastPage');
|
249
|
+
$('.page-scroll-last').show();
|
250
|
+
}
|
251
|
+
}); // END prototype
|
252
|
+
|
253
|
+
// wrapper around the constructor to prevent multiple instantiations
|
254
|
+
$.fn [pluginName] = function(options) {
|
255
|
+
return this.each(function() {
|
256
|
+
if (!$.data( this, "plugin_" + pluginName)) {
|
257
|
+
$.data(this, "plugin_" +
|
258
|
+
pluginName, new Plugin(this, options));
|
259
|
+
}
|
260
|
+
});
|
261
|
+
};
|
262
|
+
|
263
|
+
})(jQuery, window, document);
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/themes/j1/modules/j1Scroll/js/j1scroll.min.js
|
4
|
+
# J1 core module for j1scroll
|
5
|
+
#
|
6
|
+
# Product/Info:
|
7
|
+
# https://jekyll.one
|
8
|
+
#
|
9
|
+
# Copyright (C) 2021 Juergen Adams
|
10
|
+
#
|
11
|
+
# J1 Template is licensed under the MIT License.
|
12
|
+
# For details, see https://jekyll.one
|
13
|
+
# -----------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
|
16
|
+
(function(e,c,a,g){var d="j1Scroll",f={type:"infiniteScroll",scrollOffset:100,elementScroll:false,firstPage:2,lastPage:false,infoLastPage:false,loadStatus:false,onInit:function(){},onBeforeLoad:function(){},onAfterLoad:function(){}};function b(i,h){this.element=i;this.settings=e.extend({},f,h);this.settings.elementID="#"+this.element.id;this.init(this.settings)}e.extend(b.prototype,{init:function(i){var h=log4javascript.getLogger("j1Scroll");h.info("\ninitializing plugin: started");h.info("\nstate: started");if(i.elementScroll){this.scroller=this.element}else{this.scroller=c}if(i.loadStatus){var k='<div class="loader-ellips" style="display: none"> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> </div>';e(k).insertAfter(i.elementID)}if(i.infoLastPage){var j=i.lastPageInfo;e(j).insertAfter(i.elementID)}if(i.type==="infiniteScroll"){h.info("\nprocessing mode: infiniteScroll");h.info("\nloading items from path: "+i.path+"#");h.info("\nmonitoring element set to: "+this.scroller);this.registerScrollEvent(i)}h.info("\ninitializing plugin: finished");h.info("\nstate: finished")},isBottomReached:function(s){var n=this;var h,p;var m=e(s.elementID).height();if(n.settings.elementScroll){var j=e(c);var r=j.scrollTop();var i=j.height();var l=r+i-s.scrollOffset;var k=e(s.elementID);var o=k.offset().top+m;var q=k.height();h=o+q;return(o>=r&&o<l)||(h>r&&h<=l)||(q>i&&o<=r&&h>=l)}else{return(c.innerHeight+c.pageYOffset+s.scrollOffset>=a.body.offsetHeight)}},registerScrollEvent:function(i){var k=this;var h=log4javascript.getLogger("j1Scroll");h.info("\nscroll event: register");var j=function(m){var l=k.settings;if(k.isBottomReached(l)){if(l.firstPage>l.lastPage){h.info("\nlast page detected on: "+l.lastPage);c.removeEventListener("scroll",j);h.info("\nscroll event: removed");if(l.infoLastPage){k.infoLastPage(l)}return false}k.getNewPost(l)}};c.addEventListener("scroll",j);h.info("\nscroll event: registered")},getNewPost:function(i){var k=this;var h=log4javascript.getLogger("j1Scroll");h.info("\ntrigger loading ");if(this.itemsLoaded===false){return false}this.itemsLoaded=false;if(i.loadStatus){h.info("\nshow: spinner");e(".loader-ellips").show()}var j=new XMLHttpRequest();j.onreadystatechange=function(){if(j.readyState==XMLHttpRequest.DONE){if(j.status==200){i.firstPage++;var l=k.getChildItemsByAjaxHTML(i,j.responseText);k.appendNewItems(l);h.info("\nloading new items: successful");if(i.loadStatus){h.info("\nhide: spinner");e(".loader-ellips").hide()}return k.itemsLoaded=true}else{if(i.loadStatus){h.info("\nhide: spinner");e(".loader-ellips").hide()}h.error("\nloading new items failed, HTTP response: "+j.status);return k.itemsLoaded=false}}};h.info("\nloading new items from path: "+i.path+i.firstPage);j.open("GET",location.origin+i.path+i.firstPage+"/index.html",true);j.send()},getChildItemsByAjaxHTML:function(j,i){var l=a.createElement("html");var h=log4javascript.getLogger("j1Scroll");h.info("\nload new items");l.innerHTML=i;var k=l.querySelectorAll(j.elementID+" > *");return k},appendNewItems:function(h){var j=this;var i=log4javascript.getLogger("j1Scroll");i.info("\nappend new items");h.forEach(function(k){j.element.appendChild(k)});i.info("\npost processing: createDropCap");j1.core.createDropCap()},infoLastPage:function(i){var j=this;var h=log4javascript.getLogger("j1Scroll");h.info("\nshow: infoLastPage");e(".page-scroll-last").show()}});e.fn[d]=function(h){return this.each(function(){if(!e.data(this,"plugin_"+d)){e.data(this,"plugin_"+d,new b(this,h))}})}})(jQuery,window,document);
|
@@ -12,4 +12,4 @@
|
|
12
12
|
# See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
|
13
13
|
# -----------------------------------------------------------------------------
|
14
14
|
*/
|
15
|
-
.icons{//display:none;//padding:0 20px 10px 20px;-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:2rem;-moz-column-gap:2rem;column-gap:2rem}.icons div{line-height:3rem;color:rgba(0,0,0,0.6)}.icons div span{cursor:pointer;font-size:1rem;text-overflow:ellipsis;display:inline-block;max-width:calc(100% - 90px);overflow:hidden;vertical-align:middle;white-space:nowrap;margin-left:.5rem}.icons div code:hover,.icons div span:hover,.icons div i:hover{color:rgba(0,0,0,0.5)}.icons div code:hover{border-color:#2196f3}.icons div code{color:#424242;background-color:#e0e0e0;border:1px solid #9e9e9e;width:80px;margin-left:2px;margin-right:4px;border-radius:4px;display:inline-block;vertical-align:middle;text-align:center;line-height:24px;cursor:pointer}.icons div i{display:inline-block;width:32px;height:24px;margin-right:.5rem;text-align:center;vertical-align:middle;cursor:pointer;line-height:24px}.icons .mdi:before{font-size:24px}div.copied{position:fixed;top:100px;left:50%;width:
|
15
|
+
.icons{//display:none;//padding:0 20px 10px 20px;-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:2rem;-moz-column-gap:2rem;column-gap:2rem}.icons div{line-height:3rem;color:rgba(0,0,0,0.6)}.icons div span{cursor:pointer;font-size:1rem;text-overflow:ellipsis;display:inline-block;max-width:calc(100% - 90px);overflow:hidden;vertical-align:middle;white-space:nowrap;margin-left:.5rem}.icons div code:hover,.icons div span:hover,.icons div i:hover{color:rgba(0,0,0,0.5)}.icons div code:hover{border-color:#2196f3}.icons div code{color:#424242;background-color:#e0e0e0;border:1px solid #9e9e9e;width:80px;margin-left:2px;margin-right:4px;border-radius:4px;display:inline-block;vertical-align:middle;text-align:center;line-height:24px;cursor:pointer}.icons div i{display:inline-block;width:32px;height:24px;margin-right:.5rem;text-align:center;vertical-align:middle;cursor:pointer;line-height:24px}.icons .mdi:before{font-size:24px}div.copied{position:fixed;top:100px;left:50%;width:200px;text-align:center;color:#fafafa;background-color:#2196f3;border:1px solid #0d47a1;padding:10px 15px;border-radius:4px;margin-left:-100px;box-shadow:0 0 10px rgba(0,0,0,0.2)}
|
@@ -14,10 +14,8 @@
|
|
14
14
|
*/
|
15
15
|
;(function () {
|
16
16
|
|
17
|
-
var icons
|
17
|
+
var icons = {};
|
18
18
|
var icon_database = '/assets/data/mdi_icons.json';
|
19
|
-
var language = document.documentElement.lang;
|
20
|
-
var responseText;
|
21
19
|
|
22
20
|
function load_data_database() {
|
23
21
|
// Returns the icon database object
|
@@ -49,14 +47,6 @@
|
|
49
47
|
// var reference = document.querySelector("#mdi-icon");
|
50
48
|
// var popper = document.querySelector(".my-popper");
|
51
49
|
|
52
|
-
if (language == 'en') {
|
53
|
-
responseText = 'Copied to Clipboard';
|
54
|
-
} else if (language == 'de') {
|
55
|
-
responseText = 'Kopiert zur Zwischenablage';
|
56
|
-
} else {
|
57
|
-
responseText = 'Copied to Clipboard';
|
58
|
-
}
|
59
|
-
|
60
50
|
var copyFrom = document.createElement('textarea');
|
61
51
|
copyFrom.setAttribute("style", "position:fixed;opacity:0;top:100px;left:100px;");
|
62
52
|
copyFrom.value = text;
|
@@ -65,7 +55,7 @@
|
|
65
55
|
document.execCommand('copy');
|
66
56
|
var copied = document.createElement('div');
|
67
57
|
copied.setAttribute('class', 'copied');
|
68
|
-
copied.appendChild(document.createTextNode(
|
58
|
+
copied.appendChild(document.createTextNode('Copied to Clipboard'));
|
69
59
|
document.body.appendChild(copied);
|
70
60
|
|
71
61
|
// Popper currently NOT used
|
@@ -81,8 +71,8 @@
|
|
81
71
|
document.body.removeChild(copied);
|
82
72
|
}, 1500);
|
83
73
|
};
|
84
|
-
// Skip info record 0 (j=1)
|
85
|
-
for (var j
|
74
|
+
// Skip info record 0 (j=1) ???
|
75
|
+
for (var j=0; j<icons.length; j++) {
|
86
76
|
var div = document.createElement('div'),
|
87
77
|
i = document.createElement('i');
|
88
78
|
div.setAttribute("id", "mdi-icon");
|
@@ -118,7 +108,7 @@
|
|
118
108
|
};
|
119
109
|
})(icons[j]);
|
120
110
|
|
121
|
-
document.getElementById('icons').appendChild(div);
|
111
|
+
document.getElementById('mdi-icons').appendChild(div);
|
122
112
|
}
|
123
113
|
});
|
124
114
|
|