j1-template 2023.5.2 → 2023.7.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_news_panel_posts.html +11 -9
- data/_includes/themes/j1/layouts/content_generator_post.html +8 -6
- data/_includes/themes/j1/procedures/global/create_word_cloud.proc +1 -1
- data/_includes/themes/j1/procedures/layouts/module_writer.proc +1 -1
- data/_includes/themes/j1/procedures/posts/collate_timeline.proc +4 -4
- data/_includes/themes/j1/procedures/posts/pager.proc +1 -1
- data/_layouts/_home.html +88 -0
- data/_layouts/home.html +1 -1
- data/assets/data/banner.html +7 -7
- data/assets/data/panel.html +37 -25
- data/assets/data/quicklinks.html +40 -30
- data/assets/data/speak2me.html +219 -0
- data/assets/data/translator.html +32 -4
- data/assets/themes/j1/adapter/js/speak2me.js +425 -0
- data/assets/themes/j1/adapter/js/translator.js +10 -2
- data/assets/themes/j1/core/css/icon-fonts/mdib.css +21 -0
- data/assets/themes/j1/core/css/icon-fonts/mdib.min.css +1 -1
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +34 -40
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +2 -2
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +77 -57
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +2 -2
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +176 -42
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +3 -3
- data/assets/themes/j1/core/js/template.js +1658 -0
- data/assets/themes/j1/core/js/template.min.js +11 -5
- data/assets/themes/j1/core/js/template.min.js.map +1 -1
- data/assets/themes/j1/modules/speak2me/LICENSE +21 -0
- data/assets/themes/j1/modules/speak2me/js/speak2me.js +947 -0
- data/assets/themes/j1/modules/speak2me/js/speak2me.min.js +26 -0
- data/assets/themes/j1/modules/translator/js/translator.js +30 -13
- data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +5 -5
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +12 -44
- data/lib/starter_web/_data/blocks/banner.yml +7 -6
- data/lib/starter_web/_data/blocks/panel.yml +37 -39
- data/lib/starter_web/_data/layouts/home.yml +1 -1
- data/lib/starter_web/_data/modules/advertising.yml +10 -88
- data/lib/starter_web/_data/modules/buymeacoffee.yml +30 -0
- data/lib/starter_web/_data/modules/defaults/advertising.yml +3 -1
- data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +97 -164
- data/lib/starter_web/_data/modules/defaults/buymeacoffee.yml +30 -0
- data/lib/starter_web/_data/modules/defaults/navigator.yml +8 -4
- data/lib/starter_web/_data/modules/defaults/speak2me.yml +72 -0
- data/lib/starter_web/_data/modules/scroller.yml +1 -1
- data/lib/starter_web/_data/modules/speak2me.yml +33 -0
- data/lib/starter_web/_data/resources.yml +24 -1
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_includes/google/static/{google_ad_5128488466.html → google_ad__your-slot-id.html} +1 -1
- data/lib/starter_web/_plugins/asciidoctor/callout.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/carousel-block.rb +2 -2
- data/lib/starter_web/_plugins/asciidoctor/gallery-block.rb +2 -2
- data/lib/starter_web/_plugins/asciidoctor/gist-block.rb +2 -2
- data/lib/starter_web/_plugins/asciidoctor/google-ad-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/lightbox-block.rb +2 -7
- data/lib/starter_web/_plugins/asciidoctor/masonry-block.rb +2 -3
- data/lib/starter_web/_plugins/asciidoctor/masterslider-block.rb +2 -2
- data/lib/starter_web/_plugins/asciidoctor/mdib-icon-inline.rb +43 -0
- data/lib/starter_web/_plugins/asciidoctor/mdil-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/range-slider-block.rb +1 -1
- data/lib/starter_web/_plugins/asciidoctor/slick-block.rb +2 -2
- data/lib/starter_web/_plugins/asciidoctor/textbook-block.rb +1 -1
- data/lib/starter_web/_plugins/filter/liquify.rb +22 -22
- data/lib/starter_web/_plugins/index/lunr.rb +1 -1
- data/lib/starter_web/assets/images/collections/books/biography/a_life_in_questions.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/biography/becoming.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/biography/born_to_run.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/biography/forty_autumns.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/biography/not_dead_yet.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/biography/the_princess_diarist.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/biography/when_breath_becomes_air.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/fantasy/harry-potter-deathly-hallows.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/fantasy/harry-potter-philosophers-stone.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/fantasy/mistborn-trilogy.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/fantasy/ready-player-one.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/fantasy/sword-of-destiny.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/fantasy/terry-pratchet-diary.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/romance/breath-of-snow-and-ashes.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/romance/it-ends-with-us.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/romance/outlander-novel.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/romance/outlander-short-story.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/romance/the-fiery-cross.jpg +0 -0
- data/lib/starter_web/assets/images/collections/books/romance/the_dressmaker.jpg +0 -0
- data/lib/starter_web/collections/_biography/a-life-in-questions.adoc +13 -8
- data/lib/starter_web/collections/_biography/becoming.adoc +18 -12
- data/lib/starter_web/collections/_biography/born-to-run.adoc +17 -13
- data/lib/starter_web/collections/_biography/forty-autumns.adoc +14 -9
- data/lib/starter_web/collections/_biography/not-dead-yet.adoc +12 -7
- data/lib/starter_web/collections/_biography/princess-diarist-the.adoc +13 -8
- data/lib/starter_web/collections/_biography/when-breath-becomes-air.adoc +14 -9
- data/lib/starter_web/collections/_fantasy/harry-potter-deathly-hallows.adoc +13 -7
- data/lib/starter_web/collections/_fantasy/harry-potter-philosophers-stone.adoc +12 -8
- data/lib/starter_web/collections/_fantasy/mistborn-trilogy.adoc +14 -10
- data/lib/starter_web/collections/_fantasy/ready-player-one.adoc +12 -11
- data/lib/starter_web/collections/_fantasy/sword-of-destiny.adoc +15 -7
- data/lib/starter_web/collections/_fantasy/terry-pratchet-diary.adoc +11 -6
- data/lib/starter_web/collections/_romance/breath-of-snow-and-ashes.adoc +15 -10
- data/lib/starter_web/collections/_romance/it-ends-with-us.adoc +11 -6
- data/lib/starter_web/collections/_romance/outlander-novel.adoc +11 -6
- data/lib/starter_web/collections/_romance/{virgins-outlander-short-story.adoc → outlander-virgins-short-story.adoc} +11 -6
- data/lib/starter_web/collections/_romance/{dressmaker-the.adoc → the-dressmaker.adoc} +11 -6
- data/lib/starter_web/collections/_romance/{fiery-cross-the.adoc → the-fiery-cross.adoc} +11 -6
- data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +6 -6
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +12 -11
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-static-site-generators.adoc +9 -7
- data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +8 -8
- data/lib/starter_web/dot.ruby-version +1 -1
- data/lib/starter_web/index.html +10 -8
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/about/features.adoc +7 -1
- data/lib/starter_web/pages/public/about/reporting_issues.adoc +2 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/000_intro.adoc +2 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +2 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +2 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/000_intro.asciidoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/112_getting_started.asciidoc +1 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/113_themes.asciidoc +1 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +2 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/100_chapter.asciidoc +3 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/200_chapter.asciidoc +1 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +2 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +6 -0
- data/lib/starter_web/pages/public/blog/navigator/archive/allview.html +6 -13
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +17 -11
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +7 -8
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +5 -7
- data/lib/starter_web/pages/public/blog/navigator/index.html +15 -14
- data/lib/starter_web/pages/public/features/general.adoc +7 -1
- data/lib/starter_web/pages/public/features/template.adoc +87 -128
- data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_all_books.adoc +10 -2
- data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_biography.adoc +8 -3
- data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_fantasy.adoc +11 -4
- data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_romance.adoc +11 -5
- data/lib/starter_web/pages/public/learn/bookshelf/jekyll_collections.adoc +24 -14
- data/lib/starter_web/pages/public/learn/bs_sass_variables/bs_sass_variables.adoc +4 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/core_web_vitals.adoc +8 -4
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/100_gistblock.asciidoc +2 -1
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_bootstrap.asciidoc +27 -28
- data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +169 -155
- data/lib/starter_web/pages/public/learn/roundtrip/bootstrap_themes.adoc +28 -19
- data/lib/starter_web/pages/public/learn/roundtrip/highlghter_rouge.adoc +9 -5
- data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +67 -77
- data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.1.asciidoc +460 -0
- data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.adoc +12 -7
- data/lib/starter_web/pages/public/learn/roundtrip/modal_extentions.adoc +26 -19
- data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +470 -447
- data/lib/starter_web/pages/public/learn/roundtrip/present_videos.adoc +60 -59
- data/lib/starter_web/pages/public/learn/roundtrip/responsive_tables.adoc +51 -38
- data/lib/starter_web/pages/public/learn/roundtrip/typography.adoc +31 -25
- data/lib/starter_web/pages/public/learn/where_to_go.adoc +9 -4
- data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +4 -0
- data/lib/starter_web/pages/public/legal/en/200_impress.adoc +2 -0
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +22 -3
- data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +5 -0
- data/lib/starter_web/pages/public/manuals/speak2me.adoc +412 -0
- data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +27 -19
- data/lib/starter_web/pages/public/plans/plans.adoc +3 -0
- data/lib/starter_web/pages/public/tools/cheatsheet/gem.adoc +2 -0
- data/lib/starter_web/pages/public/tools/cheatsheet/git.adoc +2 -0
- data/lib/starter_web/pages/public/tools/cheatsheet/j1.adoc +2 -0
- data/lib/starter_web/pages/public/tools/cheatsheet/yaml.adoc +6 -0
- data/lib/starter_web/pages/public/tools/previewer/preview_bootstrap_theme.adoc +17 -3
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +38 -7
- data/lib/starter_web/_includes/google/static/google_ad_7284712660.html +0 -19
@@ -0,0 +1,72 @@
|
|
1
|
+
# ------------------------------------------------------------------------------
|
2
|
+
# ~/_data/modules/defaults/speak2me.yml
|
3
|
+
# Default configuration settings for J1 Speak2Me module
|
4
|
+
#
|
5
|
+
# Product/Info:
|
6
|
+
# https://jekyll.one
|
7
|
+
#
|
8
|
+
# Copyright (C) 2023 Juergen Adams
|
9
|
+
#
|
10
|
+
# J1 Theme is licensed under the MIT License.
|
11
|
+
# See: https://github.com/jekyll-one/J1 Theme/blob/master/LICENSE
|
12
|
+
# ------------------------------------------------------------------------------
|
13
|
+
|
14
|
+
# ------------------------------------------------------------------------------
|
15
|
+
# Description
|
16
|
+
#
|
17
|
+
description:
|
18
|
+
title: J1 Speak2Me
|
19
|
+
scope: Default settings
|
20
|
+
location: _data/modules/defaults/speak2me.yml
|
21
|
+
|
22
|
+
# ------------------------------------------------------------------------------
|
23
|
+
# Default settings
|
24
|
+
#
|
25
|
+
defaults:
|
26
|
+
enabled: false
|
27
|
+
|
28
|
+
dialogContainerID: speak2me_container
|
29
|
+
speechSelector: main
|
30
|
+
|
31
|
+
modal:
|
32
|
+
title: Text-2-Speech Translation
|
33
|
+
|
34
|
+
settings:
|
35
|
+
voice_settings_title: Voice Settings
|
36
|
+
voice_select_title: Select a voice
|
37
|
+
voice_control_title: Voice Control
|
38
|
+
|
39
|
+
speak_button_text: Speak
|
40
|
+
speak_button_style: success
|
41
|
+
stop_button_text: Stop
|
42
|
+
stop_button_style: primary
|
43
|
+
pause_button_text: Pause
|
44
|
+
pause_button_style: info
|
45
|
+
resume_button_text: Resume
|
46
|
+
resume_button_style: info
|
47
|
+
exit_button_text: Close
|
48
|
+
exit_button_style: warning
|
49
|
+
|
50
|
+
voice_speed_min: 0.1
|
51
|
+
voice_speed_max: 3.0
|
52
|
+
voice_speed_step: 0.1
|
53
|
+
voice_speed_value: 1.0
|
54
|
+
voice_speed_label: Speed
|
55
|
+
voice_speed_max_label: 1.0
|
56
|
+
|
57
|
+
voice_pitch_min: 0.1
|
58
|
+
voice_pitch_max: 2.0
|
59
|
+
voice_pitch_step: 0.1
|
60
|
+
voice_pitch_value: 0.9
|
61
|
+
voice_pitch_label: Pitch
|
62
|
+
voice_pitch_max_label: 0.9
|
63
|
+
|
64
|
+
voice_volume_min: 0
|
65
|
+
voice_volume_max: 1.0
|
66
|
+
voice_volume_step: 0.1
|
67
|
+
voice_volume_value: 0.9
|
68
|
+
voice_volume_label: Volume
|
69
|
+
voice_volume_max_label: 0.9
|
70
|
+
|
71
|
+
# ------------------------------------------------------------------------------
|
72
|
+
# END config
|
@@ -91,7 +91,7 @@ settings:
|
|
91
91
|
pagePath: /pages/public/blog/navigator/page
|
92
92
|
elementScroll: true
|
93
93
|
scrollOffset: 200
|
94
|
-
lastPage:
|
94
|
+
lastPage: 2 # Dosn't work: high number "means" ALL pages|posts to load
|
95
95
|
infoLastPage: false
|
96
96
|
|
97
97
|
lastPageInfo_en: ""
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# ------------------------------------------------------------------------------
|
2
|
+
# ~/_data/modules/speak2me.yml
|
3
|
+
# User configuration settings for J1 Speak2Me module
|
4
|
+
#
|
5
|
+
# Product/Info:
|
6
|
+
# https://jekyll.one
|
7
|
+
#
|
8
|
+
# Copyright (C) 2023 Juergen Adams
|
9
|
+
#
|
10
|
+
# J1 Theme is licensed under the MIT License.
|
11
|
+
# See: https://github.com/jekyll-one/J1 Theme/blob/master/LICENSE
|
12
|
+
# ------------------------------------------------------------------------------
|
13
|
+
|
14
|
+
# ------------------------------------------------------------------------------
|
15
|
+
# Description
|
16
|
+
#
|
17
|
+
description:
|
18
|
+
title: J1 Speak2Me
|
19
|
+
scope: User settings
|
20
|
+
location: _data/modules/speak2me.yml
|
21
|
+
|
22
|
+
# ------------------------------------------------------------------------------
|
23
|
+
# User configuration settings
|
24
|
+
#
|
25
|
+
settings:
|
26
|
+
enabled: true
|
27
|
+
|
28
|
+
# ----------------------------------------------------------------------------
|
29
|
+
# Speak2Me options
|
30
|
+
# ----------------------------------------------------------------------------
|
31
|
+
|
32
|
+
# ------------------------------------------------------------------------------
|
33
|
+
# END config
|
@@ -373,6 +373,29 @@ resources:
|
|
373
373
|
]
|
374
374
|
init_function: [ j1.init ]
|
375
375
|
|
376
|
+
# ----------------------------------------------------------------------------
|
377
|
+
# Speak2Me
|
378
|
+
# Speech synthesis (TTS)
|
379
|
+
#
|
380
|
+
- name: speak2me
|
381
|
+
resource:
|
382
|
+
enabled: true
|
383
|
+
|
384
|
+
id: speak2me
|
385
|
+
comment: Module speak2me
|
386
|
+
region: head
|
387
|
+
layout: [ all ]
|
388
|
+
required: always
|
389
|
+
preload: false
|
390
|
+
script_load: defer
|
391
|
+
dependencies: false
|
392
|
+
pass_init_data: true
|
393
|
+
data:
|
394
|
+
css: []
|
395
|
+
files: [ adapter/js/speak2me.js ]
|
396
|
+
js: []
|
397
|
+
init_function: [ j1.adapter.speak2me.init ]
|
398
|
+
|
376
399
|
# ----------------------------------------------------------------------------
|
377
400
|
# Bootstrap JS v5.3.0
|
378
401
|
#
|
@@ -410,7 +433,7 @@ resources:
|
|
410
433
|
comment: Module BMD
|
411
434
|
region: head
|
412
435
|
layout: [ all ]
|
413
|
-
required:
|
436
|
+
required: ondemand
|
414
437
|
preload: false
|
415
438
|
script_load:
|
416
439
|
dependencies: false
|
@@ -57,7 +57,7 @@
|
|
57
57
|
<id>{{ page.url | absolute_url | xml_escape }}</id>
|
58
58
|
<post_limited>{{ limit_posts }}</post_limited>
|
59
59
|
<template_name>J1 Theme</template_name>
|
60
|
-
<template_version>2023.
|
60
|
+
<template_version>2023.7.0</template_version>
|
61
61
|
|
62
62
|
{% assign title = site.title | default: site.name %}
|
63
63
|
{% if page.collection != "posts" %}
|
@@ -38,7 +38,7 @@ Asciidoctor::Extensions.register do
|
|
38
38
|
text_content = (text = attrs['text']) ? %(#{text}) : nil
|
39
39
|
html = %(
|
40
40
|
<div class="paragraph">
|
41
|
-
<p class="#{modifier}"> <i class="conum" data-value="#{target}"></i> #{text} </p>
|
41
|
+
<p class="speak2me-ignore #{modifier}"> <i class="conum" data-value="#{target}"></i> #{text} </p>
|
42
42
|
</div>
|
43
43
|
)
|
44
44
|
|
@@ -35,8 +35,8 @@ Asciidoctor::Extensions.register do
|
|
35
35
|
|
36
36
|
def process parent, target, attrs
|
37
37
|
|
38
|
-
title_html = (attrs.has_key? 'title') ? %(<div class="
|
39
|
-
html = %(#{title_html} <
|
38
|
+
title_html = (attrs.has_key? 'title') ? %(<div class="carousel-title">#{attrs['title']}</div>\n) : nil
|
39
|
+
html = %(#{title_html} <carousel id="#{target}" class="#{attrs['role']}"></carousel>)
|
40
40
|
create_pass_block parent, html, attrs, subs: nil
|
41
41
|
end
|
42
42
|
end
|
@@ -33,8 +33,8 @@ Asciidoctor::Extensions.register do
|
|
33
33
|
name_positional_attributes 'role'
|
34
34
|
|
35
35
|
def process parent, target, attrs
|
36
|
-
title_html = (attrs.has_key? 'title') ? %(<div class="gallery-title
|
37
|
-
html = %(#{title_html} <div id="#{target}" class="#{attrs['role']}"></div>)
|
36
|
+
title_html = (attrs.has_key? 'title') ? %(<div class="gallery-title">#{attrs['title']}</div>\n) : nil
|
37
|
+
html = %(#{title_html} <gallery><div id="#{target}" class="#{attrs['role']}"></div></gallery>)
|
38
38
|
create_pass_block parent, html, attrs, subs: nil
|
39
39
|
end
|
40
40
|
end
|
@@ -34,9 +34,9 @@ Asciidoctor::Extensions.register do
|
|
34
34
|
|
35
35
|
def process parent, target, attrs
|
36
36
|
title_html = (attrs.has_key? 'title') ?
|
37
|
-
%(<div class="title notranslate">#{attrs['title']}</div>\n) : nil
|
37
|
+
%(<div class="title speak2me-ignore notranslate">#{attrs['title']}</div>\n) : nil
|
38
38
|
|
39
|
-
html = %(<div class="openblock gist mt-4 mb-5">
|
39
|
+
html = %(<div class="openblock gist speak2me-ignore mt-4 mb-5">
|
40
40
|
#{title_html}
|
41
41
|
<div class="content">
|
42
42
|
<script src="https://gist.github.com/#{target}.js"></script>
|
@@ -37,7 +37,7 @@ Asciidoctor::Extensions.register do
|
|
37
37
|
|
38
38
|
def process parent, target, attrs
|
39
39
|
|
40
|
-
html = %(<div id="#{target}" class="gad-container #{attrs['role']}"></div>)
|
40
|
+
html = %(<div id="#{target}" class="gad-container speak2me-ignore #{attrs['role']}"></div>)
|
41
41
|
create_pass_block parent, html, attrs, subs: nil
|
42
42
|
end
|
43
43
|
end
|
@@ -44,7 +44,7 @@ Asciidoctor::Extensions.register do
|
|
44
44
|
imagesdir = parent.attr 'imagesdir'
|
45
45
|
images_hash = Hash[*attrs['image_data'].split(',')]
|
46
46
|
|
47
|
-
title_html = (attrs.has_key? 'title') ? %(<div class="title
|
47
|
+
title_html = (attrs.has_key? 'title') ? %(<div class="lightbox-title">#{attrs['title']}</div>\n) : nil
|
48
48
|
role = (attrs.has_key? 'role') ? role : ''
|
49
49
|
grouped = (attrs.has_key? 'group') ? true : false
|
50
50
|
|
@@ -73,12 +73,7 @@ Asciidoctor::Extensions.register do
|
|
73
73
|
end
|
74
74
|
content = html_block.target! # See: https://stackoverflow.com/questions/4961609/extra-to-s-when-using-builder-to-generate-xml
|
75
75
|
|
76
|
-
html = %(
|
77
|
-
<div id="lb-#{target}" class="imageblock">
|
78
|
-
#{title_html}
|
79
|
-
#{content}
|
80
|
-
</div>
|
81
|
-
)
|
76
|
+
html = %(#{title_html} <lightbox id="lb-#{target}" class="imageblock"> #{content} </lightbox>)
|
82
77
|
|
83
78
|
create_pass_block parent, html, attrs, subs: nil
|
84
79
|
end
|
@@ -37,9 +37,8 @@ Asciidoctor::Extensions.register do
|
|
37
37
|
name_positional_attributes 'role'
|
38
38
|
|
39
39
|
def process parent, target, attrs
|
40
|
-
title_html = (attrs.has_key? 'title') ? %(<div class="masonry-title
|
41
|
-
|
42
|
-
html = %(#{title_html} <div id="#{target}_parent" class="masonry-parent #{attrs['role']}"></div>)
|
40
|
+
title_html = (attrs.has_key? 'title') ? %(<div class="masonry-title">#{attrs['title']}</div>\n) : nil
|
41
|
+
html = %(#{title_html} <masonry id="#{target}_parent" class="masonry-parent #{attrs['role']}"></masonry>)
|
43
42
|
create_pass_block parent, html, attrs, subs: nil
|
44
43
|
end
|
45
44
|
|
@@ -37,8 +37,8 @@ Asciidoctor::Extensions.register do
|
|
37
37
|
|
38
38
|
def process parent, target, attrs
|
39
39
|
|
40
|
-
title_html = (attrs.has_key? 'title') ? %(<div class="slider-title
|
41
|
-
html = %(#{title_html} <
|
40
|
+
title_html = (attrs.has_key? 'title') ? %(<div class="slider-title">#{attrs['title']}</div>\n) : nil
|
41
|
+
html = %(#{title_html} <slider id="p_#{target}" class="master-slider-parent #{attrs['role']}"></slider>)
|
42
42
|
create_pass_block parent, html, attrs, subs: nil
|
43
43
|
end
|
44
44
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# ------------------------------------------------------------------------------
|
2
|
+
# ~/_plugins/asciidoctor-extensions/mdib-icon-inline.rb
|
3
|
+
# Asciidoctor extension for J1 Theme
|
4
|
+
#
|
5
|
+
# Product/Info:
|
6
|
+
# https://jekyll.one
|
7
|
+
#
|
8
|
+
# Copyright (C) 2023 Juergen Adams
|
9
|
+
#
|
10
|
+
# J1 Theme is licensed under the MIT License.
|
11
|
+
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
|
12
|
+
#
|
13
|
+
# ------------------------------------------------------------------------------
|
14
|
+
require 'asciidoctor/extensions' unless RUBY_ENGINE == 'opal'
|
15
|
+
include Asciidoctor
|
16
|
+
|
17
|
+
# A inline macro that places an MDIB icon into the output document
|
18
|
+
#
|
19
|
+
# Usage
|
20
|
+
#
|
21
|
+
# mdib:<name>[<size>, <modifier>]
|
22
|
+
#
|
23
|
+
# Example:
|
24
|
+
#
|
25
|
+
# mdib:account[mdib-48px, <modifier>]
|
26
|
+
#
|
27
|
+
Asciidoctor::Extensions.register do
|
28
|
+
class MdibIconInlineMacro < Extensions::InlineMacroProcessor
|
29
|
+
use_dsl
|
30
|
+
named :mdib
|
31
|
+
name_positional_attributes 'size', 'modifier'
|
32
|
+
default_attrs 'size' => '1x', 'modifier' => ''
|
33
|
+
|
34
|
+
def process parent, target, attributes
|
35
|
+
doc = parent.document
|
36
|
+
size_class = (size = attributes['size']) ? %(mdib-#{size}) : nil
|
37
|
+
modifier_class = (modifier = attributes['modifier']) ? %(#{modifier}) : nil
|
38
|
+
icon_name = target.tr '_', '-'
|
39
|
+
%(<i class="mdib #{size_class} #{modifier} mdib-#{icon_name}"></i>)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
inline_macro MdibIconInlineMacro
|
43
|
+
end
|
@@ -34,7 +34,7 @@ Asciidoctor::Extensions.register do
|
|
34
34
|
default_attrs 'role' => ''
|
35
35
|
|
36
36
|
def process parent, target, attrs
|
37
|
-
html = %(<div id="#{target}" class="range-slider #{attrs['role']}"></div>)
|
37
|
+
html = %(<div id="#{target}" class="range-slider speak2me-ignore #{attrs['role']}"></div>)
|
38
38
|
create_pass_block parent, html, attrs, subs: nil
|
39
39
|
end
|
40
40
|
end
|
@@ -38,8 +38,8 @@ Asciidoctor::Extensions.register do
|
|
38
38
|
|
39
39
|
def process parent, target, attrs
|
40
40
|
|
41
|
-
title_html = (attrs.has_key? 'title') ? %(<div class="slider-title
|
42
|
-
html = %(#{title_html} <
|
41
|
+
title_html = (attrs.has_key? 'title') ? %(<div class="slider-title">#{attrs['title']}</div>\n) : nil
|
42
|
+
html = %(#{title_html} <carousel id="#{target}_parent" class="slider-parent #{attrs['role']}"></carousel>)
|
43
43
|
create_pass_block parent, html, attrs, subs: nil
|
44
44
|
end
|
45
45
|
end
|
@@ -35,7 +35,7 @@ Asciidoctor::Extensions.register do
|
|
35
35
|
name_positional_attributes 'role'
|
36
36
|
|
37
37
|
def process parent, target, attrs
|
38
|
-
html = %(<div id="#{target}" class="nb-textbook #{attrs['role']}" data-nb-textbook="initial"></div>)
|
38
|
+
html = %(<div id="#{target}" class="nb-textbook speak2me-ignore #{attrs['role']}" data-nb-textbook="initial"></div>)
|
39
39
|
create_pass_block parent, html, attrs, subs: nil
|
40
40
|
end
|
41
41
|
end
|
@@ -1,22 +1,22 @@
|
|
1
|
-
# ------------------------------------------------------------------------------
|
2
|
-
# ~/_plugins/filter/liquify.rb
|
3
|
-
# Liquid filter to expand nested liquid-variables in the front matter
|
4
|
-
#
|
5
|
-
# Product/Info:
|
6
|
-
# http://jekyll.one
|
7
|
-
#
|
8
|
-
# Copyright (C) 2023 Juergen Adams
|
9
|
-
#
|
10
|
-
# J1 Theme is licensed under the MIT License.
|
11
|
-
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
|
12
|
-
# See: http://acegik.net/blog/ruby/jekyll/plugins/howto-nest-liquid-template-variables-inside-yaml-front-matter-block.html
|
13
|
-
# ------------------------------------------------------------------------------
|
14
|
-
module Jekyll
|
15
|
-
module ExpandNestedVariableFilter
|
16
|
-
def liquify(input)
|
17
|
-
Liquid::Template.parse(input).render(@context)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
Liquid::Template.register_filter(Jekyll::ExpandNestedVariableFilter)
|
1
|
+
# ------------------------------------------------------------------------------
|
2
|
+
# ~/_plugins/filter/liquify.rb
|
3
|
+
# Liquid filter to expand nested liquid-variables in the front matter
|
4
|
+
#
|
5
|
+
# Product/Info:
|
6
|
+
# http://jekyll.one
|
7
|
+
#
|
8
|
+
# Copyright (C) 2023 Juergen Adams
|
9
|
+
#
|
10
|
+
# J1 Theme is licensed under the MIT License.
|
11
|
+
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
|
12
|
+
# See: http://acegik.net/blog/ruby/jekyll/plugins/howto-nest-liquid-template-variables-inside-yaml-front-matter-block.html
|
13
|
+
# ------------------------------------------------------------------------------
|
14
|
+
module Jekyll
|
15
|
+
module ExpandNestedVariableFilter
|
16
|
+
def liquify(input)
|
17
|
+
Liquid::Template.parse(input).render(@context)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
Liquid::Template.register_filter(Jekyll::ExpandNestedVariableFilter)
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/lib/starter_web/assets/images/collections/books/fantasy/harry-potter-philosophers-stone.jpg
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -11,10 +11,10 @@ categories: [ Book ]
|
|
11
11
|
tags: [ Biography ]
|
12
12
|
|
13
13
|
image:
|
14
|
-
path:
|
14
|
+
path: /assets/images/collections/books/biography/a_life_in_questions.jpg
|
15
15
|
|
16
16
|
book:
|
17
|
-
cover:
|
17
|
+
cover: /assets/images/collections/books/biography/a_life_in_questions.jpg
|
18
18
|
format: hardback
|
19
19
|
pages: 320
|
20
20
|
publisher: HarperCollins Publishers
|
@@ -60,19 +60,24 @@ long-standing quiz master of University Challenge. Filled with views,
|
|
60
60
|
opinions and stories from 4 decades in front of the camera. Jeremy Paxman
|
61
61
|
is Britain's bravest, most incisive political interviewer.
|
62
62
|
|
63
|
+
excerpt__end
|
64
|
+
|
65
|
+
// Page content
|
66
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
67
|
+
mdi:clock-time-five-outline[24px, md-gray mr-2]
|
68
|
+
*3 Minutes* to read
|
69
|
+
|
70
|
+
// Include sub-documents (if any)
|
71
|
+
//
|
72
|
+
[role="mt-5"]
|
73
|
+
[[readmore]]
|
63
74
|
The no-nonsense star of BBC Newsnight, Paxman is a supreme inquisitor,
|
64
75
|
a master at skewering mammoth egos with his relentless grilling. Few figures
|
65
76
|
in public life have escaped. From John Major to Theresa May, from Tony Blair
|
66
77
|
to Ed Miliband, Paxman had them quaking in their boots.
|
67
78
|
|
68
|
-
excerpt__end
|
69
|
-
|
70
|
-
// Content
|
71
|
-
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
72
|
-
[role="mt-4"]
|
73
79
|
image:{{page.book.cover}}[role="mr-4 mb-4 float-left"]
|
74
80
|
|
75
|
-
[[readmore]]
|
76
81
|
His working life has been defined by questions. *Why is this bastard
|
77
82
|
lying to me?* was at the front of his mind as he conducted every interview.
|
78
83
|
But it wasn't just politicians. Paxman's interviews with Dizzee Rascal,
|
@@ -12,10 +12,10 @@ categories: [ Book ]
|
|
12
12
|
tags: [ Biography ]
|
13
13
|
|
14
14
|
image:
|
15
|
-
path:
|
15
|
+
path: /assets/images/collections/books/biography/becoming.jpg
|
16
16
|
|
17
17
|
book:
|
18
|
-
cover:
|
18
|
+
cover: /assets/images/collections/books/biography/becoming.jpg
|
19
19
|
format: hardback
|
20
20
|
pages: 430
|
21
21
|
publisher: Penguin Random House LLC
|
@@ -56,22 +56,28 @@ resource_options:
|
|
56
56
|
// -----------------------------------------------------------------------------
|
57
57
|
In a life filled with meaning and accomplishment, Michelle Obama has emerged
|
58
58
|
as one of the most iconic and compelling women of our era. As First Lady of
|
59
|
-
the United States of America
|
60
|
-
role
|
59
|
+
the United States of America -- the first African American to
|
60
|
+
serve in that role and helped create the most welcoming and inclusive White
|
61
|
+
House in history.
|
61
62
|
|
63
|
+
excerpt__end
|
64
|
+
|
65
|
+
// Page content
|
66
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
67
|
+
mdi:clock-time-five-outline[24px, md-gray mr-2]
|
68
|
+
*3 Minutes* to read
|
69
|
+
|
70
|
+
// Include sub-documents (if any)
|
71
|
+
//
|
72
|
+
[role="mt-4"]
|
73
|
+
[[readmore]]
|
62
74
|
While also establishing herself as a powerful advocate for women and girls
|
63
75
|
in the U.S. and around the world, dramatically changing the ways that families
|
64
76
|
pursue healthier and more active lives, and standing with her husband as he
|
65
77
|
led America through some of its most harrowing moments.
|
66
78
|
|
67
|
-
excerpt__end
|
68
|
-
|
69
|
-
// Content
|
70
|
-
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
71
|
-
[role="mt-4"]
|
72
79
|
image:{{page.book.cover}}[role="mr-4 float-left"]
|
73
80
|
|
74
|
-
[[readmore]]
|
75
81
|
The book offers a personal and introspective account of Michelle Obama's
|
76
82
|
life, from her childhood in Chicago to her years in the White House.
|
77
83
|
Michelle shares her experiences, values, and the significant moments that
|
@@ -86,13 +92,13 @@ their shared experiences during his political career.
|
|
86
92
|
|
87
93
|
In her memoir, a work of deep reflection and mesmerizing storytelling,
|
88
94
|
Michelle Obama invites readers into her world, chronicling the experiences
|
89
|
-
that have shaped her
|
95
|
+
that have shaped her -- from her childhood on the South Side of Chicago to
|
90
96
|
her years as an executive balancing the demands of motherhood and work
|
91
97
|
to her time spent at the world’s most famous address.
|
92
98
|
|
93
99
|
With unerring honesty and lively wit, she describes her triumphs and her
|
94
100
|
disappointments, both public and protected, telling her full story as she
|
95
|
-
has lived it
|
101
|
+
has lived it -- in her own words and on her own terms. Warm, wise, and
|
96
102
|
revelatory.
|
97
103
|
|
98
104
|
Throughout "Becoming," Michelle Obama reflects on her efforts to balance
|
@@ -11,10 +11,10 @@ categories: [ Book ]
|
|
11
11
|
tags: [ Biography ]
|
12
12
|
|
13
13
|
image:
|
14
|
-
path:
|
14
|
+
path: /assets/images/collections/books/biography/born_to_run.jpg
|
15
15
|
|
16
16
|
book:
|
17
|
-
cover:
|
17
|
+
cover: /assets/images/collections/books/biography/born_to_run.jpg
|
18
18
|
format: hardback
|
19
19
|
pages: 528
|
20
20
|
publisher: Simon and Schuster Ltd.
|
@@ -58,21 +58,25 @@ write the story of his life, bringing to these pages the same honesty, humour
|
|
58
58
|
and originality found in his songs. Bruce Springsteen and the E Street Band
|
59
59
|
performed at the Super Bowl's halftime show.
|
60
60
|
|
61
|
-
The experience was so exhilarating
|
62
|
-
that Bruce decided to write about it. That's how this extraordinary
|
63
|
-
autobiography began. Springsteen describes growing up Catholic in Freehold,
|
64
|
-
New Jersey, amid the poetry, danger and darkness that fuelled his imagination,
|
65
|
-
leading up to the moment he refers to as *The Big Bang*: seeing
|
66
|
-
Elvis Presley's debut on The Ed Sullivan Show.
|
67
|
-
|
68
61
|
excerpt__end
|
69
62
|
|
70
|
-
//
|
63
|
+
// Page content
|
71
64
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
72
|
-
[
|
73
|
-
|
65
|
+
mdi:clock-time-five-outline[24px, md-gray mr-2]
|
66
|
+
*3 Minutes* to read
|
74
67
|
|
68
|
+
// Include sub-documents (if any)
|
69
|
+
//
|
70
|
+
[role="mt-5]
|
75
71
|
[[readmore]]
|
72
|
+
The experience was so exhilarating that Bruce decided to write about it.
|
73
|
+
That's how this extraordinary autobiography began. Springsteen describes
|
74
|
+
growing up Catholic in Freehold, New Jersey, amid the poetry, danger and
|
75
|
+
darkness that fuelled his imagination, leading up to the moment he refers
|
76
|
+
to as *The Big Bang*: seeing Elvis Presley's debut on The Ed Sullivan Show.
|
77
|
+
|
78
|
+
image:{{page.book.cover}}[role="mr-4 float-left"]
|
79
|
+
|
76
80
|
In the book, Springsteen recounts his early years growing up in a working-class
|
77
81
|
family in New Jersey and the impact of his upbringing on his music. He shares
|
78
82
|
stories about his musical influences, struggles with personal relationships,
|
@@ -101,7 +105,7 @@ Springsteen, but this book is much more than a legendary rock star's memoir.
|
|
101
105
|
|
102
106
|
Many of his songs like *Thunder Road*, *Badlands*, *The River*,
|
103
107
|
*Born in the USA*, *The Rising*, and *The Ghost of Tom Joad*
|
104
|
-
|
108
|
+
-- to name just a few -- Bruce Springsteen's autobiography is written with the
|
105
109
|
lyricism of a singular songwriter and the wisdom of a man who has thought
|
106
110
|
deeply about his experiences.
|
107
111
|
|