j1-template 2024.3.13 → 2024.3.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +1 -1
  3. data/_includes/themes/j1/layouts/layout_resource_generator.html +1 -4
  4. data/_includes/themes/j1/procedures/blocks/footer/boxes/social_media_icons.proc +24 -23
  5. data/_includes/themes/j1/procedures/layouts/content_writer.proc +4 -3
  6. data/_includes/themes/j1/procedures/layouts/default_writer.proc +37 -6
  7. data/_includes/themes/j1/procedures/layouts/module_writer.proc +31 -95
  8. data/_includes/themes/j1/procedures/layouts/resource_writer.proc +51 -29
  9. data/assets/data/amplitude.28.html +887 -0
  10. data/assets/data/amplitude.29.html +923 -0
  11. data/assets/data/amplitude.html +311 -46
  12. data/assets/data/banner.html +9 -7
  13. data/assets/data/masterslider.html +128 -7
  14. data/assets/data/panel.html +16 -65
  15. data/assets/theme/j1/adapter/js/amplitude.23.js +1165 -0
  16. data/assets/theme/j1/adapter/js/amplitude.24.js +1164 -0
  17. data/assets/theme/j1/adapter/js/amplitude.25.js +1268 -0
  18. data/assets/theme/j1/adapter/js/amplitude.js +294 -117
  19. data/assets/theme/j1/adapter/js/attic.js +14 -11
  20. data/assets/theme/j1/adapter/js/docsearch.js +2 -2
  21. data/assets/theme/j1/adapter/js/fab.js +2 -2
  22. data/assets/theme/j1/adapter/js/j1.js +8 -8
  23. data/assets/theme/j1/adapter/js/lazyLoader.js +60 -10
  24. data/assets/theme/j1/adapter/js/masonry.js +1 -1
  25. data/assets/theme/j1/adapter/js/masterslider.js +2 -2
  26. data/assets/theme/j1/adapter/js/particles.js +2 -2
  27. data/assets/theme/j1/adapter/js/scroller.js +2 -2
  28. data/assets/theme/j1/adapter/js/slick.js +2 -2
  29. data/assets/theme/j1/adapter/js/themes.js +1 -1
  30. data/assets/theme/j1/adapter/js/translator.js +2 -2
  31. data/assets/theme/j1/adapter/js/waves.js +1 -1
  32. data/assets/theme/j1/core/css/animate.css +1634 -1070
  33. data/assets/theme/j1/core/css/animate.css.map +1 -0
  34. data/assets/theme/j1/core/css/animate.min.css +2 -1
  35. data/assets/theme/j1/core/css/animate.min.css.map +1 -0
  36. data/assets/theme/j1/core/css/icon-fonts/fontawesome.css +3060 -1538
  37. data/assets/theme/j1/core/css/icon-fonts/fontawesome.css.map +1 -0
  38. data/assets/theme/j1/core/css/icon-fonts/fontawesome.min.css +2 -1
  39. data/assets/theme/j1/core/css/icon-fonts/fontawesome.min.css.map +1 -0
  40. data/assets/theme/j1/core/css/icon-fonts/iconify.css +2308 -1153
  41. data/assets/theme/j1/core/css/icon-fonts/iconify.css.map +1 -0
  42. data/assets/theme/j1/core/css/icon-fonts/iconify.min.css +2 -1
  43. data/assets/theme/j1/core/css/icon-fonts/iconify.min.css.map +1 -0
  44. data/assets/theme/j1/core/css/icon-fonts/mdi.css +16716 -8423
  45. data/assets/theme/j1/core/css/icon-fonts/mdi.css.map +1 -0
  46. data/assets/theme/j1/core/css/icon-fonts/mdi.min.css +2 -1
  47. data/assets/theme/j1/core/css/icon-fonts/mdi.min.css.map +1 -0
  48. data/assets/theme/j1/core/css/icon-fonts/mdib.css +5554 -2766
  49. data/assets/theme/j1/core/css/icon-fonts/mdib.css.map +1 -0
  50. data/assets/theme/j1/core/css/icon-fonts/mdib.min.css +2 -1
  51. data/assets/theme/j1/core/css/icon-fonts/mdib.min.css.map +1 -0
  52. data/assets/theme/j1/core/css/icon-fonts/mdil.css +742 -441
  53. data/assets/theme/j1/core/css/icon-fonts/mdil.css.map +1 -0
  54. data/assets/theme/j1/core/css/icon-fonts/mdil.min.css +2 -1
  55. data/assets/theme/j1/core/css/icon-fonts/mdil.min.css.map +1 -0
  56. data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.css +6552 -3980
  57. data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.css.map +1 -0
  58. data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.min.css +2 -5
  59. data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.min.css.map +1 -0
  60. data/assets/theme/j1/core/css/themes/unodark/bootstrap.css +6818 -4131
  61. data/assets/theme/j1/core/css/themes/unodark/bootstrap.css.map +1 -0
  62. data/assets/theme/j1/core/css/themes/unodark/bootstrap.min.css +2 -5
  63. data/assets/theme/j1/core/css/themes/unodark/bootstrap.min.css.map +1 -0
  64. data/assets/theme/j1/core/css/themes/unolight/bootstrap.css +18568 -11577
  65. data/assets/theme/j1/core/css/themes/unolight/bootstrap.css.map +1 -0
  66. data/assets/theme/j1/core/css/themes/unolight/bootstrap.min.css +2 -35
  67. data/assets/theme/j1/core/css/themes/unolight/bootstrap.min.css.map +1 -0
  68. data/assets/theme/j1/core/css/vendor.css +1771 -1043
  69. data/assets/theme/j1/core/css/vendor.css.map +1 -0
  70. data/assets/theme/j1/core/css/vendor.min.css +2 -1
  71. data/assets/theme/j1/core/css/vendor.min.css.map +1 -0
  72. data/assets/theme/j1/core/js/template.js +399 -447
  73. data/assets/theme/j1/core/js/template.min.js +7 -7
  74. data/assets/theme/j1/core/js/template.min.js.map +1 -1
  75. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.css +4 -2
  76. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.css +39 -4
  77. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.min.css +1 -1
  78. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.css +57 -17
  79. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.min.css +1 -1
  80. data/assets/theme/j1/modules/amplitudejs/icons/player/blue/pause.png +0 -0
  81. data/assets/theme/j1/modules/amplitudejs/icons/player/blue/play.png +0 -0
  82. data/assets/theme/j1/modules/amplitudejs/icons/player/blue/play.svg +87 -0
  83. data/assets/theme/j1/modules/amplitudejs/icons/player/dark/skip-backward.svg +60 -0
  84. data/assets/theme/j1/modules/amplitudejs/icons/player/dark/skip-forward.svg +59 -0
  85. data/assets/theme/j1/modules/amplitudejs/js/amplitude.js +65 -21
  86. data/assets/theme/j1/modules/amplitudejs/js/amplitude.min.js +1 -1
  87. data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.js +113 -0
  88. data/assets/theme/j1/modules/iconPicker/js/universal-icon-picker.js +471 -471
  89. data/assets/theme/j1/modules/j1LazyLoader/LICENSE +21 -0
  90. data/assets/theme/j1/modules/j1LazyLoader/js/j1Lazy.js +870 -0
  91. data/assets/theme/j1/modules/js-cookies/js/js.cookie.js +3 -3
  92. data/assets/theme/j1/modules/lazyCssLoader/js/main.0.js +166 -0
  93. data/assets/theme/j1/modules/lazyCssLoader/js/main.1.js +65 -0
  94. data/assets/theme/j1/modules/lazyCssLoader/js/main.js +66 -0
  95. data/assets/theme/j1/modules/lazyCssLoader/js/plugins/examplePlugin.js +13 -0
  96. data/assets/theme/j1/modules/lazyCssLoader/js/plugins/my-plugin.js +25 -0
  97. data/assets/theme/j1/modules/lazyCssLoader/js/plugins/plugin-interface.js +9 -0
  98. data/assets/theme/j1/modules/lazyCssLoader/js/plugins/pluginA.js +46 -0
  99. data/assets/theme/j1/modules/lazyLoader/js/plugins/README.md +324 -0
  100. data/assets/theme/j1/modules/lazyLoader/js/plugins/jquery.lazy.picture.js +188 -0
  101. data/assets/theme/j1/modules/lightGallery/js/lightgallery.js +1 -1
  102. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.0.js +794 -0
  103. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.js +151 -67
  104. data/assets/theme/j1/modules/slimSelect/js/select.js +1 -1
  105. data/assets/theme/j1/modules/slimSelect/js/select.min.js +3 -3
  106. data/assets/theme/j1/modules/themeSwitcher/js/switcher.js +2 -1
  107. data/assets/theme/j1/modules/videojs/js/plugins/players/dm/dailymotion.min.js +1 -1
  108. data/assets/theme/j1/modules/videojs/js/plugins/players/dm/icon/scalable/dailymotion.svg +62 -0
  109. data/assets/theme/j1/modules/videojs/js/plugins/players/yt/v3.0.0/youtube.js +832 -0
  110. data/assets/theme/j1/modules/videojs/js/plugins/players/yt/v3.0.0/youtube.min.js +17 -0
  111. data/assets/theme/j1/modules/videojs/js/plugins/players/yt/youtube.min.js +1 -1
  112. data/assets/theme/j1/modules/videojs/js/video.js +2 -2
  113. data/lib/j1/version.rb +1 -1
  114. data/lib/starter_web/README.md +577 -560
  115. data/lib/starter_web/_config.yml +2 -2
  116. data/lib/starter_web/_data/blocks/footer.yml +10 -5
  117. data/lib/starter_web/_data/blocks/panel.yml +2 -2
  118. data/lib/starter_web/_data/layouts/default.yml +14 -3
  119. data/lib/starter_web/_data/modules/amplitude.yml +145 -0
  120. data/lib/starter_web/_data/modules/defaults/amplitude.yml +29 -7
  121. data/lib/starter_web/_data/modules/defaults/lazyLoader.yml +2 -2
  122. data/lib/starter_web/_data/modules/gallery.yml +136 -0
  123. data/lib/starter_web/_data/modules/lazyLoader.0.yml +118 -0
  124. data/lib/starter_web/_data/modules/lazyLoader.yml +68 -31
  125. data/lib/starter_web/_data/modules/masonry.yml +4 -4
  126. data/lib/starter_web/_data/modules/masterslider.yml +118 -12
  127. data/lib/starter_web/_data/modules/navigator_menu.yml +831 -803
  128. data/lib/starter_web/_data/resources.yml +154 -190
  129. data/lib/starter_web/_data/templates/feed.xml +1 -1
  130. data/lib/starter_web/_includes/attributes.asciidoc +1 -0
  131. data/lib/starter_web/_plugins/asciidoctor/amplitude-block.rb +1 -1
  132. data/lib/starter_web/_plugins/asciidoctor/dailymotion-block.rb +1 -1
  133. data/lib/starter_web/_plugins/asciidoctor/gallery-block.rb +4 -2
  134. data/lib/starter_web/_plugins/asciidoctor/masonry-block.rb +1 -1
  135. data/lib/starter_web/_plugins/asciidoctor/videojs-block.rb +58 -46
  136. data/lib/starter_web/_plugins/asciidoctor/vimeo-block.rb +26 -19
  137. data/lib/starter_web/_plugins/asciidoctor/youtube-block.rb +30 -40
  138. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  139. data/lib/starter_web/assets/image/icons/lanus/favicon.ico +0 -0
  140. data/lib/starter_web/assets/image/icons/lanus/lanus-512x512.png +0 -0
  141. data/lib/starter_web/assets/image/icons/lanus/lanus.ico +0 -0
  142. data/lib/starter_web/assets/image/icons/lanus/lanus.png +0 -0
  143. data/lib/starter_web/assets/image/icons/lanus/scalable/lanus.svg +76 -0
  144. data/lib/starter_web/assets/image/icons/lanus/scalable/lanus_sw.svg +62 -0
  145. data/lib/starter_web/assets/image/modules/icons/social/scalable/icon-twitter-x-28 - social.svg +86 -0
  146. data/lib/starter_web/assets/image/modules/icons/social/scalable/icon-twitter-x-28.svg +64 -0
  147. data/lib/starter_web/assets/image/modules/icons/social/scalable/icon-twitter-x.svg +1 -0
  148. data/lib/starter_web/assets/image/modules/icons/social/twitter_x.png +0 -0
  149. data/lib/starter_web/package.json +7 -18
  150. data/lib/starter_web/pages/public/amplitude_yt_tester.adoc +218 -0
  151. data/lib/starter_web/pages/public/features/template.adoc +18 -8
  152. data/lib/starter_web/pages/public/features/template.asciidoc +758 -0
  153. data/lib/starter_web/pages/public/lazy_loader_tester.adoc +402 -0
  154. data/lib/starter_web/pages/public/manuals/ytdl/man.adoc +3020 -0
  155. data/lib/starter_web/pages/public/manuals/ytdl/man.md +2378 -0
  156. data/lib/starter_web/pages/public/tools/previewer/_includes/attributes.asciidoc +0 -16
  157. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/amplitudejs.large.css.asciidoc +505 -0
  158. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/frame.hover.html +69 -0
  159. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/frame.nested.html +75 -0
  160. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/frame.textarea.html +57 -0
  161. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/my.content.html +112 -0
  162. data/lib/starter_web/pages/public/tools/previewer/preview_amplitudejs.adoc +172 -0
  163. data/lib/starter_web/pages/public/tour/_includes/attributes.asciidoc +2 -2
  164. data/lib/starter_web/pages/public/tour/_includes/documents/419_advanced_modals_demo.asciidoc +16 -16
  165. data/lib/starter_web/pages/public/tour/asciidoc_extensions.adoc +13 -3
  166. data/lib/starter_web/pages/public/tour/bootstrap_themes.adoc +12 -3
  167. data/lib/starter_web/pages/public/tour/highlghter_rouge.adoc +13 -3
  168. data/lib/starter_web/pages/public/tour/icon_fonts.adoc +12 -3
  169. data/lib/starter_web/pages/public/tour/modal_extentions.adoc +12 -6
  170. data/lib/starter_web/pages/public/tour/{playback_audio.adoc → play_audio.adoc} +207 -188
  171. data/lib/starter_web/pages/public/tour/{playback_video.adoc → play_video.adoc} +49 -51
  172. data/lib/starter_web/pages/public/tour/present_images.adoc +27 -5
  173. data/lib/starter_web/pages/public/tour/quicksearch.adoc +13 -3
  174. data/lib/starter_web/pages/public/tour/responsive_tables.adoc +13 -4
  175. data/lib/starter_web/pages/public/tour/typography.adoc +12 -3
  176. metadata +90 -22
  177. /data/assets/theme/j1/modules/{lazyLoader → j1LazyLoader/js}/plugins/README.md +0 -0
  178. /data/assets/theme/j1/modules/{lazyLoader/plugins/jquery.lazy.picture.js → j1LazyLoader/js/plugins/picture.js} +0 -0
  179. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.ajax.js +0 -0
  180. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.ajax.min.js +0 -0
  181. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.av.js +0 -0
  182. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.av.min.js +0 -0
  183. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.iframe.js +0 -0
  184. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.iframe.min.js +0 -0
  185. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.noop.js +0 -0
  186. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.noop.min.js +0 -0
  187. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.picture.min.js +0 -0
  188. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.script.js +0 -0
  189. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.script.min.js +0 -0
  190. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.vimeo.js +0 -0
  191. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.vimeo.min.js +0 -0
  192. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.youtube.js +0 -0
  193. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.youtube.min.js +0 -0
@@ -1,560 +1,577 @@
1
- # All you need for your new amazing site
2
-
3
- Jekyll meets Bootstrap - and makes a lot of friends. J1 Theme combines
4
- the best of OpenSource software for the Web and the Web site generator
5
- `Jekyll`. J1 is OpenSource, and so are the packaged modules - no pain for
6
- private or professional use. Explore this site to learn what's possible if
7
- you go to the Jekyll Way.
8
-
9
- ![Screenshot](https://github.com/jekyll-one-org/j1-template/raw/main/j1-template-screenshot.jpg "J1 Template")
10
-
11
- * Fully Responsive. J1 Theme supports modern web browsers on all
12
- devices for best results on PCs, Tablets, and SmartPhones.
13
- * Full Bootstpap V5 support. Current Technology and Design. Excellent
14
- performance running desktop and mobile websites. Use Jekyll One to
15
- present your content at its best.
16
- * Start in no time. No programming is needed to start using J1. The
17
- Template provides a large number of building blocks to create modern
18
- web pages in minutes.
19
-
20
- **Create powerful modern Static Webs: Secure, Flexible and Fast.**
21
-
22
- Have fun!
23
-
24
-
25
- # Live Demo
26
-
27
- The template comes with a Web included, a skeleton for your new Web site.
28
- This Web is called the **Starter Web**, a general-purpose Website scaffold to
29
- be modified for your needs. The built-in Starter Web can be visited live
30
- at [Netlify](https://starter.jekyll.one/).
31
-
32
- **Have fun exploring what a modern static web, a Jekyll site can do**!
33
-
34
-
35
- # Features
36
-
37
- The template combines the best free software for the web. Jekyll One Theme
38
- is OpenSource and the modules included are free to use as well. No license
39
- issues for private or professional use.
40
-
41
- * Fully Responsive. J1 Theme supports modern web browsers on all
42
- devices for best results on PCs, Tablets, and SmartPhones.
43
- * Full Bootstpap V5 support. Current Technology and Design. Excellent
44
- performance running desktop and mobile websites. Use Jekyll One to
45
- present your content at its best.
46
- * Start in no time. No programming is needed to start using J1. The
47
- Template provides a large number of building blocks to create modern
48
- web pages in minutes.
49
-
50
- ## General
51
-
52
- * Jekyll V4 support
53
- * Ruby V3 support
54
- * Asciidoc (Asciidoctor) and Markdown support
55
- * Asciidoctor plugins included
56
- * Bootstrap V5
57
- * Responsive Design
58
- * Material Design
59
- * Responsive Text
60
- * Responsive HTML tables
61
- * Compressed HTML, CSS and Javascript support
62
- * Themes support (Bootswatch)
63
- * Icon Font support (MDI, FA, Iconify, Twitter Emoji)
64
- * Themeable source code highlighting (Rouge)
65
- * Desktop and Mobile Web and Navigation ready
66
- * Fully configurable
67
- * Highest Google Lighthouse scores
68
-
69
- ## Modules and Extensions
70
-
71
- * Bootstrap extensions included
72
- * Asciidoctor extensions included
73
- * Smooth-srcoll support
74
- * Full-text search engine included (Lunr)
75
- * Blog Post navigation included
76
- * GDPR compatible cookie consent module included
77
- * Translator module (Google, Deepl) included
78
- * Clipboard module included
79
- * Floating Action Buttons included
80
- * Navigation modules included
81
- * Lightbox modules included
82
- * Gallery modules included
83
- * Carousel modules included
84
- * Audio Player modules included (AmplitudeJS)
85
- * Video Player modules included (VideoJS)
86
-
87
- ## Addons and Integrations
88
-
89
- * Featured example content included
90
- * Royalty free images included
91
- * Comment provider support for Hyvor and Disqus
92
- * Google Analytics support
93
- * Deploy on Github Pages (source only), Netlify and Heroku ready
94
-
95
-
96
- # Supported platforms
97
-
98
- J1 is supported on all current x64-based OS:
99
-
100
- * Windows 10, build >= 1903
101
- * Windows WSL 2
102
- * Linux, kernel version >= 4.15 (e.g. Ubuntu 18.x LTS)
103
- * OSX, version >= 10.10.5 (Yosemite)
104
-
105
- Note that 32-bit versions (x32) are generally **not** supported for all
106
- platforms.
107
-
108
-
109
- # Development languages and tools
110
-
111
- To run the Development System for J1 Theme, the following languages and
112
- tools expected to be in place with your OS:
113
-
114
- * Ruby language, version v3
115
- * Javascript (NodeJS), version >= 18
116
- * NPM, version >= 8.5
117
- * YARN, version >= 1.22
118
- * Git, version >= 2.29
119
-
120
- <1> required only for **full** Jupyter Notebook support
121
-
122
- Note: More current or older versions may work, but not tested.
123
-
124
-
125
- ## Development packages
126
-
127
- For some of the componentsJ1 is using, a working C/C++ development environment
128
- is needed to compile platform-specific libraries. Ensure that all dev packages
129
- are installed for your OS (Linux, OSX, or Windows).
130
-
131
- ### Development packages for Windows
132
-
133
- For Ruby on Windows, a installation using RubyInstaller is recommended. A
134
- current Ruby of version **3.1** is available at the
135
- [RubyInstaller](https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.2-1/rubyinstaller-devkit-3.1.2-1-x64.exe)
136
- site.
137
-
138
- Note, to automatically install a development environment for Ruby on Windows,
139
- a x64 version of Ruby should be installed that is already bundled with a
140
- **DEVKIT** (MSYS2 toolchain).
141
-
142
- ### Development packages on Linux (Ubuntu)
143
-
144
- In order to install all required development components on e.g. Ubuntu
145
- you run:
146
-
147
- ``` sh
148
- sudo apt-get -y install \
149
- gcc g++ make \
150
- autoconf bison build-essential \
151
- libssl-dev \
152
- libyaml-dev \
153
- libreadline-dev \
154
- zlib1g-dev \
155
- libncurses5-dev \
156
- libffi-dev \
157
- libgdbm-dev
158
- ```
159
-
160
- To install the required languages and tools, if not already in place, the
161
- following commands can be used to do so:
162
-
163
- ``` sh
164
- sudo apt-get -y install \
165
- curl \
166
- git-all \
167
- nodejs \
168
- ruby
169
- ```
170
-
171
- Additionally, for Ruby and NodeJS the dev-packages are to be installed to
172
- make all header files available for a working C/C++ development environment:
173
-
174
- ``` sh
175
- sudo apt-get -y install \
176
- nodejs-dev \
177
- ruby-dev
178
- ```
179
-
180
- Note that priviliged (administrative) user rights are needed to install
181
- system-wide software packages for the OS.
182
-
183
- ### Development packages on OSX
184
-
185
- For all OSX system, the installation of the Apple Developer Tools (XCode)
186
- is expected. Development tools like Ruby, NodeJS, or the bash comes
187
- with the OS are **not** recommended to use. Most of the software comes in
188
- quite old versions and therefor unusable for J1 development.
189
-
190
- To install recommended versions, the easiest way to install the missing
191
- software is [Homebrew](https://brew.sh/). A lot of helpful information
192
- how to manage package installations using Homebrew can be found on the
193
- internet.
194
-
195
- Beside the base installation of the recommend tools, all other recommendations
196
- for Linux systems are for OSX the same.
197
-
198
- ## Upgrades needed for all platforms
199
-
200
- If Ruby and NodeJS are in place, some packeages are to be upgraded to more
201
- current versions. Install all packages system-wide with their respective
202
- product installation pathes.
203
-
204
- ### Upgrades needed for Ruby <= v2.7
205
-
206
- Install latest bundler for Ruby:
207
-
208
- ``` sh
209
- gem install bundler --no-document
210
- ```
211
-
212
- Install latest RubyGems for Ruby:
213
-
214
- ``` sh
215
- gem install rubygems-update --no-document
216
- update_rubygems --no-document
217
- gem update --system
218
- ```
219
-
220
- ### Upgrades needed for NodeJS
221
-
222
- NodeJS comes with NPM pre-installed. The native CLI for the NodeJS package
223
- management is `npm`. Besides `npm` there's another quite handy CLI for NPM
224
- available: *Yarn*.
225
-
226
- The CLI `yarn` is developed at Facebook and can be used as a replacement
227
- for `npm`. From a top-level perspective, both package management clients behave
228
- pretty much the same. The syntax `yarn` uses is shorter in writing, making
229
- the command-line look a bit more natural. Therefore, we prefer to use `yarn`.
230
-
231
- NOTE: Yarn adds some additional features to the NodeJS package management
232
- implemented for the needs at Facebook. Regarding the J1 development system,
233
- those add-ons are neither needed nor used.
234
-
235
- Install latest NPM and Yarn packages for NodeJS:
236
-
237
- ``` sh
238
- npm install -g npm@latest
239
- npm install -g yarn@latest
240
- ```
241
-
242
-
243
- # Setting up the project
244
-
245
- Running the J1 Theme project is very simple:
246
-
247
- * Downlad the repo
248
- * Setup the project
249
- * Run and develop the buildin starter web
250
-
251
- ## Checkout the Repo
252
-
253
- The repo for the J1 Theme development system is published on Github.
254
- You can get it from Github by cloning the repository using `git`:
255
-
256
- ``` sh
257
- git clone https://github.com/jekyll-one-org/j1-template.git
258
- ```
259
-
260
- The repo gets written to folder `j1-template`. Have a look and browse the
261
- folder. You'll see a structure like this:
262
-
263
- j1 development repo
264
- ```
265
- ├──── .git
266
- │ └─── packages
267
- │ ├── 100_theme_css
268
- │ ├── 200_theme_js
269
- │ ├── 300_theme_src
270
- │ ├── 400_theme_site
271
- │ ├── 500_theme_gem
272
- │ └─── 600_theme_utilsrv
273
- ├──── .gitattributes
274
- ├──── .gitignore
275
- ├──── lerna.json
276
- ├──── LICENSE.md
277
- ├──── package.json
278
- └──── README.md
279
- ```
280
-
281
- J1 Theme is a so-called *multi-package* project, a *Monorepo* managed by
282
- Lerna. A Monorepo is a strategy where multiple (sub-)projects are stored in a
283
- single repository instead of putting them into individual repositories.
284
-
285
- All development *tasks* are defined as NPM *scripts* with the top-level project
286
- config file `package.json`. For each package, package-level config files
287
- are used having the same name `package.json` to manage specific tasks like
288
- the generation of CSS and JS files, or creating the buildin starter web.
289
-
290
- All **base** development *tasks* are defined with the top-level project
291
- configuration; no need to dive into all the package-level configurations.
292
- All is managed by Lerna, based on simple top-level *tasks*.
293
-
294
- ## Initialize the project
295
-
296
- Initializing the project is managed by the top-level *task* `setup`. A bunch
297
- of sub-tasks are fired, all of the managed by Lerna.
298
-
299
- Let's start ...
300
-
301
- ``` sh
302
- yarn setup
303
- ```
304
-
305
- Because a lot of sub-tasks getting started for a (first) `setup`, see below
306
- the output as a summary :
307
-
308
- ``` sh
309
- Set up development system for first use ..
310
- Bootstrap base modules ..
311
- done.
312
- Create project folders ..
313
- done.
314
-
315
- Create starter config files ..
316
- lerna info Executing command in 1 package: "yarn run jekyll_files"
317
- site: $ run-s -s jekyll_files:*
318
- lerna success run Ran npm script 'jekyll_files' in 1 package in 2.2s:
319
- lerna success - site
320
- Bootstrap project modules ..
321
- done.
322
-
323
- Initialize development packages ..
324
- lerna info Updating package.json
325
- lerna info Updating lerna.json
326
- lerna info Creating packages directory
327
- lerna success Initialized Lerna files
328
- lerna info Bootstrapping 6 packages
329
- lerna info Installing external dependencies
330
- lerna info Symlinking packages and binaries
331
- lerna success Bootstrapped 6 packages
332
- done.
333
-
334
- Detect operating system ..
335
- OS detected as: Windows_NT
336
- Create links for shared resources ..
337
- lerna info Executing command in 1 package: "yarn run setup-links"
338
- site: $ cross-var if-env OS=Windows_NT && run-s -s link-default || cross-env OS=$(echo $(getos)) run-s -s switch-links
339
- lerna success run Ran npm script 'setup-links' in 1 package in 2.4s:
340
- lerna success - site
341
- lerna info Executing command in 3 packages: "yarn run build"
342
- css: $ npm run clean
343
- js: $ npm run clean && npm run lint
344
- site: $ run-s -s jekyll_build:*
345
- css: > css@2024.3.8 clean path_to_\j1-template\packages\100_theme_css
346
- css: > run-p -s clean:*
347
- js: > js@2024.3.8 clean path_to_\j1-template\packages\200_theme_js
348
- js: > run-p -s clean:*
349
- site: > site@2024.3.8 bundle path_to_\j1-template\packages\400_theme_site
350
- site: > run-s -s bundler:*
351
- css: $ npm run build_css && npm run uglify_css
352
- site: Create bundle ..
353
- css: > css@2024.3.8 build_css path_to_\j1-template\packages\100_theme_css
354
- css: > run-p -s theme_css:*
355
- js: > js@2024.3.8 lint path_to_\j1-template\packages\200_theme_js
356
- js: > run-p -s lint:*
357
- css: Rendering Complete, saving .css file...
358
- css: Wrote CSS to path_to_\j1-template\packages\100_theme_css\dist\icon-fonts\fontawesome.css
359
- css: Rendering Complete, saving .css file...
360
- css: Wrote CSS to path_to_\j1-template\packages\100_theme_css\dist\icon-fonts\iconify.css
361
- css: Rendering Complete, saving .css file...
362
- css: Rendering Complete, saving .css file...
363
- css: Wrote CSS to path_to_\j1-template\packages\100_theme_css\dist\animate.css
364
- ..
365
- js: $ npm run build-js
366
- css: Rendering Complete, saving .css file...
367
- css: Wrote CSS to path_to_\j1-template\packages\100_theme_css\dist\themes\uno-dark\bootstrap.css
368
- css: Rendering Complete, saving .css file...
369
- css: Wrote CSS to path_to_\j1-template\packages\100_theme_css\dist\icon-fonts\materialdesign.css
370
- css: Rendering Complete, saving .css file...
371
- css: Wrote CSS to path_to_\j1-template\packages\100_theme_css\dist\themes\uno-light\bootstrap.css
372
- js: > js@2024.3.8 build-js path_to_\j1-template\packages\200_theme_js
373
- js: > cross-var webpack --mode production --config $npm_package_wp_build
374
- site: Bundle Rubies using user path ..
375
- css: > css@2024.3.8 uglify_css path_to_\j1-template\packages\100_theme_css
376
- css: > run-p -s uglify_css:*
377
- js: $ npm run uglify-js && npm run deploy
378
- js: > js@2024.3.8 uglify-js path_to_\j1-template\packages\200_theme_js
379
- js: > terser dist/template.js -o dist/template.min.js -m --source-map
380
- ..
381
- site: Fetching gem metadata from https://rubygems.org/..........
382
- site: Fetching gem metadata from https://rubygems.org/.
383
- site: Resolving dependencies...
384
- site: Using rake 12.3.3
385
- site: Using public_suffix 4.0.6
386
- site: Using addressable 2.8.0
387
- site: Using asciidoctor 1.5.8
388
- site: Using rouge 3.26.0
389
- ..
390
- site: Bundle complete! 31 Gemfile dependencies, 88 gems now installed.
391
- ..
392
- site: Configuration file: path_to_/j1-template/packages/400_theme_site/_config.yml
393
- site: Source: path_to_/j1-template/packages/400_theme_site
394
- site: Destination: path_to_/j1-template/packages/400_theme_site/_site
395
- site: Incremental build: enabled
396
- site: Generating...
397
- site: J1 QuickSearch: creating search index ...
398
- site: J1 QuickSearch: finished, index ready.
399
- site: J1 Paginator: autopages, disabled|not configured
400
- site: J1 Paginator: pagination enabled, start processing ...
401
- site: J1 Paginator: finished, processed 1 pagination page|s
402
-
403
- site: Build Process Summary:
404
- site: | PHASE | TIME |
405
- site: +------------+---------+
406
- site: | RESET | 0.0053 |
407
- site: | READ | 1.5589 |
408
- site: | GENERATE | 1.6977 |
409
- site: | RENDER | 31.5453 |
410
- site: | CLEANUP | 0.0241 |
411
- site: | WRITE | 1.1489 |
412
- site: +------------+---------+
413
- site: | TOTAL TIME | 35.9802 |
414
- site:
415
- site: Site Render Stats:
416
- site: | Filename | Count | Bytes | Time |
417
- site: +-----------------------------------------------------------------------------------+-------+-----------+---------+
418
- site: | _layouts/default.html | 60 | 5269.94K | 29.702 |
419
- site: | _includes/themes/j1/procedures/layouts/default_writer.proc | 240 | 5299.72K | 28.394 |
420
- site: | _includes/themes/j1/layouts/layout_module_generator.html | 60 | 1609.43K | 25.946 |
421
- site: | _includes/themes/j1/procedures/layouts/module_writer.proc | 2280 | 1290.96K | 25.672 |
422
- site: | _includes/themes/j1/procedures/global/set_base_vars_folders.proc | 2340 | 38.85K | 22.121 |
423
- ..
424
- site: | _includes/themes/j1/procedures/global/get_category_item.proc | 72 | 3.59K | 0.009 |
425
- site: | _layouts/home.html | 1 | 5.95K | 0.009 |
426
- site: +-----------------------------------------------------------------------------------+-------+-----------+---------+
427
- site: | TOTAL (for 50 files) | 14138 | 31708.37K | 140.026 |
428
- site:
429
- site: done in 36.018 seconds.
430
- site: Auto-regeneration: disabled. Use --watch to enable.
431
- ..
432
- site: $ run-s -s jekyll_post_build:*
433
- lerna success run Ran npm script 'build' in 3 packages in 55.8s:
434
- lerna success - css
435
- lerna success - js
436
- lerna success - site
437
- Configure environment ..
438
- done.
439
- Done in 139.92s.
440
- ```
441
-
442
- The `setup` process will take a while - typically up to ten minutes for the
443
- first run (depending on the performances of your Internet connection and your
444
- workstations power). A bunch of NPM modules and Ruby Gems are downloaded and
445
- linked for the packages part of the repo. See `setup` as an extended `install`
446
- and `build` process to manage an initial setup for the (Lerna) Monorepo.
447
-
448
- ## Running the Starter Web
449
-
450
- Running the buildin **Starter Web** for development is done like so:
451
-
452
- ``` sh
453
- yarn site
454
- ```
455
-
456
- The task `site` does a lot for you. Whatever is necessary for a full-stack
457
- Web development. The task will put in place all needed CSS and JS components,
458
- build the content, and finally run the website in a browser.
459
-
460
- Go, go, go ..
461
-
462
- ``` sh
463
- site: $ run-p -s develop:*
464
- utls: $ run-p -s utilsrv
465
- utls: Startup UTILSRV ..
466
- utls: Log file exists : messages_2021-08-11
467
- utls: Server enabled: false
468
- utls: Environment detected as: dev
469
- utls: Daemon path set to: path_to_\j1-template\packages\600_theme_utilsrv
470
- utls: Daemon verbosity set to: false
471
- utls: Project path set to: path_to_\j1-template\packages\600_theme_utilsrv/../400_theme_site
472
- utls: Data path set to: path_to_\j1-template\packages\600_theme_utilsrv/../400_theme_site/_data
473
- utls: Log file set to: path_to_\j1-template\packages\600_theme_utilsrv/../../log/messages_2021-08-11.log
474
- utls: Stop the server. Exiting ...
475
- utls: Reset file: messages_2021-08-11
476
- site: i 「wds」: Project is running at http://localhost:41000/
477
- site: i 「wds」: webpack output is served from /assets/themes/j1/core/js
478
- site: i 「wds」: Content not from webpack is served from path_to_\j1-template\packages\400_theme_site\_site
479
- site: Configuration file: C:/Temp/j1-template/packages/400_theme_site/_config.yml
480
- site: i 「wdm」: wait until bundle finished: /assets/themes/j1/core/js/template.js
481
- site: i 「wdm」: 53 modules
482
- site: i 「wdm」: Compiled successfully.
483
- site: Source: C:/Temp/j1-template/packages/400_theme_site
484
- site: Destination: C:/Temp/j1-template/packages/400_theme_site/_site
485
- site: Incremental build: enabled
486
- site: Generating...
487
- site: J1 QuickSearch: creating search index ...
488
- site: J1 QuickSearch: finished, index ready.
489
- site: J1 Paginator: autopages, disabled|not configured
490
- site: J1 Paginator: pagination enabled, start processing ...
491
- site: J1 Paginator: finished, processed 1 pagination page|s
492
- site: done in 10.093 seconds.
493
- site: Auto-regeneration: enabled for '.'
494
- site: Server address: http://localhost:4000/
495
- site: Server running... press ctrl-c to stop.
496
- ```
497
-
498
- Finally, the J1 starter web get openend in your default browser.
499
-
500
-
501
- ## Reset the Development System
502
-
503
- To start from the beginning, you can reset the development system to the
504
- factory state. The top-level task `reset` does the resetting work for you
505
- and cleans up each and everything except the **Git repo** and the NPM modules
506
- folder `node_modules` stored in the project root. Both are kept untouched
507
- by a reset.
508
-
509
- ``` sh
510
- yarn reset
511
- ```
512
-
513
- The cleanup runs some tasks for the root folder and in parallel sub-tasks
514
- using Lerna for all packages:
515
-
516
- ``` sh
517
- Reset development system to factory state ..
518
- Clean up project root files ..
519
- Remove bundle folder ..
520
- Remove log folder ..
521
- Remove log files ..
522
-
523
- Clean up project packages ..
524
- lerna info Executing command in 6 packages: "yarn run clean"
525
- js: $ run-p -s clean:*
526
- css: $ run-p -s clean:*
527
- src: $ run-s clean:*
528
- site: $ run-p -s clean:*
529
- gem: $ run-p -s clean:* && run-p -s clean-bundle:*
530
- utls: $ shx rm -f *.lock && shx rm -f package-lock.json
531
-
532
- lerna success run Ran npm script 'clean' in 6 packages in 3.1s:
533
- lerna success - css
534
- lerna success - js
535
- lerna success - src
536
- lerna success - site
537
- lerna success - gem
538
- lerna success - utls
539
-
540
- Remove js modules from all packages ..
541
- lerna info clean removing path_to_\j1-template\packages\100_theme_css\node_modules
542
- lerna info clean removing path_to_\j1-template\packages\200_theme_js\node_modules
543
- lerna info clean removing path_to_\j1-template\packages\300_theme_src\node_modules
544
- lerna info clean removing path_to_\j1-template\packages\400_theme_site\node_modules
545
- lerna info clean removing path_to_\j1-template\packages\500_theme_gem\node_modules
546
- lerna info clean removing path_to_\j1-template\packages\600_theme_utilsrv\node_modules
547
- lerna success clean finished
548
- done.
549
-
550
- Done in 11.20s.
551
- ```
552
-
553
- To reset the Development System *completely*, delete the folder `node_modules`
554
- manually and start from the scratch by running the `setup` task again:
555
-
556
- ``` sh
557
- yarn setup
558
- ```
559
-
560
- Happy Jekylling!
1
+ # All you need for your new amazing site
2
+
3
+ Jekyll meets Bootstrap - and makes a lot of friends. J1 Template combines
4
+ the best of Open Source software for the Web and the Web site generator
5
+ `Jekyll`. J1 is Open Source, and so are the packaged modules - no pain for
6
+ private or professional use. Explore this site to learn what's possible if
7
+ you go to the Jekyll Way.
8
+
9
+ ![Screenshot](https://github.com/jekyll-one-org/j1-template/raw/main/starter-screenshot.jpg "J1 Template Web")
10
+
11
+ * Fully Responsive. J1 Template supports modern web browsers on all
12
+ devices for best results on PCs, Tablets, and SmartPhones.
13
+ * Full Bootstpap V5 support. Current Technology and Design. Excellent
14
+ performance running desktop and mobile websites. Use Jekyll One to
15
+ present your content at its best.
16
+ * Start in no time. No programming is needed to start using J1. The
17
+ Template provides a large number of building blocks to create modern
18
+ web pages in minutes.
19
+
20
+ **Create powerful modern Static Webs: Secure, Flexible and Fast.**
21
+
22
+ Have fun!
23
+
24
+ # Live Demo
25
+
26
+ J1 Template comes with a build-in Web included, a skeleton for your new Web
27
+ site. This Web is called the **build-in Web**, a general-purpose Website
28
+ scaffold to be modified for your needs. The built-in Web can be visited live
29
+ at [starter.jekyll.one](https://starter.jekyll.one/).
30
+
31
+ **Have fun exploring what a modern static web, a Jekyll site can do**!
32
+
33
+ # Features
34
+
35
+ The template combines the best free software for the web. Jekyll One Theme
36
+ is Open Source and the modules included are free to use as well. No license
37
+ issues for private or professional use.
38
+
39
+ * Fully Responsive. J1 Theme supports modern web browsers on all
40
+ devices for best results on PCs, Tablets, and SmartPhones.
41
+ * Full Bootstpap V5 support. Current Technology and Design. Excellent
42
+ performance running desktop and mobile websites. Use Jekyll One to
43
+ present your content at its best.
44
+ * Start in no time. No programming is needed to start using J1. The
45
+ Template provides a large number of building blocks to create modern
46
+ web pages in minutes.
47
+
48
+ ## General
49
+
50
+ * Jekyll V4 support
51
+ * Ruby V3 support
52
+ * Bootstrap V5 support
53
+ * Asciidoc (Asciidoctor) and Markdown support
54
+ * Asciidoctor plugins included
55
+ * Responsive Design
56
+ * Responsive Text
57
+ * Responsive HTML tables
58
+ + Full-text search
59
+ * Compressed HTML, CSS and Javascript support
60
+ * Themes support
61
+ * Icon Font support (MDI, FA, Iconify)
62
+ * Themeable source code highlighting
63
+ * Desktop and Mobile Web and Navigation ready
64
+ * Fully configurable
65
+ * Highest Google Lighthouse scores
66
+
67
+ ## Modules and Extensions
68
+
69
+ * Bootstrap V5 extensions included
70
+ * Bootstrap V% Themes Support included
71
+ * Asciidoctor extensions included
72
+ * Advanced Banners and Panels included
73
+ * Source Code Hightlighter (Rouge) included
74
+ * Smooth Srcoll support
75
+ * Infine Srcoll support
76
+ * Animate on Srcoll support
77
+ * Full-text Search Engine included (Lunr)
78
+ * Desktop Web Navigation included
79
+ * Mobile Web Navigation included
80
+ * Blog Post Navigation included
81
+ * GDPR compatible Cookie Consent module included
82
+ * Translator module (Google Translator) included
83
+ * Master Header module included
84
+ * Clipboard module included
85
+ * TOC module included
86
+ * Floating Action Buttons (FAB) included
87
+ * Lightbox module included
88
+ * Gallery module included
89
+ * Carousel and Slider modules included
90
+ * Video modules included
91
+ * Masonry module included
92
+
93
+ ## Addons and Integrations
94
+
95
+ * Featured Example Content included
96
+ * Royalty Free Images included
97
+ * Asciidoc (Asciidoctor) and Markdown (Kramdown) support
98
+ * Icon Fonts (FA, MDI, Iconify) included
99
+ * Video Player (HTML, YouTube, Vimeo, Dailymotion) included
100
+ * Scalable Text Support
101
+ * Comment Provider support (Hyvor and Disqus)
102
+ * Google Analytics support
103
+ * Support for Jupyter Notebooks
104
+ * Deploy on Github Pages (source only), Netlify and Heroku ready
105
+
106
+
107
+ # Supported platforms
108
+
109
+ J1 is supported on all current **x64-based** OS:
110
+
111
+ * Windows 10, build >= 1903
112
+ * Windows WSL 2
113
+ * Linux, Kernel version >= 4.15 (e.g. Ubuntu 18.x LTS)
114
+ * OSX, version >= 10.10.5 (Yosemite)
115
+
116
+ Note that 32-bit versions (x32) are generally **not** supported for
117
+ **all** platforms.
118
+
119
+
120
+ # Development languages and tools
121
+
122
+ To run the Development System for J1 Theme, the following languages and
123
+ tools expected to be in place with your OS:
124
+
125
+ * Ruby language, version >= 2.7
126
+ * Python language, version > 2.7 (optional) <1>
127
+ * Javascript language (NodeJS), version >= 14.x < 15.x
128
+ * Git, version >= 2.29 (optional) <2>
129
+ * Jekyll, version 4.2.x
130
+
131
+ <1> Required only for **full** Jupyter Notebook support.
132
+ <2> Required only if J1 Projects should be managed as repos.
133
+
134
+ **NOTE**: More current or older versions may work, but not tested.
135
+
136
+ ## Development packages
137
+
138
+ For some of the components J1 is using, a working C/C++ development
139
+ environment is needed to compile platform-specific libraries. Ensure
140
+ that all dev packages are installed for your OS (Linux, OSX, or Windows).
141
+
142
+ ### Development packages for Windows
143
+
144
+ For Ruby on Windows, a installation using **RubyInstaller** is recommended.
145
+ A current Ruby of version **3.1** is available at the
146
+ [RubyInstaller V31](https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.3-1/rubyinstaller-devkit-3.1.3-1-x64.exe)
147
+ site.
148
+ Note, to automatically install a development environment for Ruby on *Windows*,
149
+ a version of Ruby should be installed that is already **bundled** with a
150
+ **DEVKIT** (MSYS2 toolchain).
151
+
152
+ ### Development packages on Linux (Ubuntu)
153
+
154
+ In order to install all required development components on e.g. Ubuntu
155
+ you run:
156
+
157
+ ``` sh
158
+ sudo apt-get -y install \
159
+ gcc g++ make \
160
+ autoconf bison build-essential \
161
+ libssl-dev \
162
+ libyaml-dev \
163
+ libreadline-dev \
164
+ zlib1g-dev \
165
+ libncurses5-dev \
166
+ libffi-dev \
167
+ libgdbm-dev
168
+ ```
169
+
170
+ To install the required languages and tools, if not already in place, the
171
+ following commands can be used to do so:
172
+
173
+ ``` sh
174
+ sudo apt-get -y install \
175
+ curl \
176
+ git-all \
177
+ nodejs \
178
+ ruby
179
+ ```
180
+
181
+ Additionally, for Ruby and NodeJS the dev-packages are to be installed to
182
+ make all header files available for a working C/C++ development environment:
183
+
184
+ ``` sh
185
+ sudo apt-get -y install \
186
+ nodejs-dev \
187
+ ruby-dev
188
+ ```
189
+
190
+ Note that priviliged (administrative) user rights are needed to install
191
+ system-wide software packages for Ruby and the OS.
192
+
193
+ ### Development packages on OSX
194
+
195
+ For all OSX system, the installation of the Apple Developer Tools (XCode)
196
+ is expected. Development tools like Ruby, NodeJS, or the bash comes
197
+ with the OS are **not** recommended to use. Most of the software comes in
198
+ quite old versions and therefor unusable for J1 development.
199
+
200
+ To install recommended versions, the easiest way to install the missing
201
+ software is [Homebrew](https://brew.sh/). A lot of helpful information
202
+ how to manage package installations using Homebrew can be found on the
203
+ internet.
204
+
205
+ Beside the base installation of the recommend tools, all other recommendations
206
+ for Linux systems are for OSX the same.
207
+
208
+ ## Upgrades needed for all platforms
209
+
210
+ If Ruby and NodeJS are in place, some packeages are to be upgraded to more
211
+ current versions. Install all packages system-wide with their respective
212
+ product installation pathes.
213
+
214
+ ### Upgrades needed for Ruby <= v2.7
215
+
216
+ Install latest bundler for Ruby:
217
+
218
+ ``` sh
219
+ gem install bundler --no-document
220
+ ```
221
+
222
+ Install latest RubyGems for Ruby:
223
+
224
+ ``` sh
225
+ gem install rubygems-update --no-document
226
+ update_rubygems --no-document
227
+ gem update --system
228
+ ```
229
+
230
+ ### Upgrades needed for NodeJS
231
+
232
+ NodeJS comes with NPM pre-installed. The native CLI for the NodeJS package
233
+ management is `npm`. Besides `npm` there's another quite handy CLI for NPM
234
+ available: *Yarn*.
235
+
236
+ The CLI `yarn` is developed at Facebook and can be used as a replacement
237
+ for `npm`. From a top-level perspective, both package management clients
238
+ behave pretty much the same. The syntax `yarn` uses is shorter in writing,
239
+ making the command-line look a bit more natural. Therefore, we prefer to
240
+ use `yarn`.
241
+
242
+ **NOTE**: Yarn adds some additional features to the NodeJS package
243
+ management implemented for the needs at Facebook. To use J1 Theme, those
244
+ add-ons are neither needed nor used.
245
+
246
+ Install latest *NPM* and *Yarn* packages for *NodeJS*:
247
+
248
+ ``` sh
249
+ npm install -g npm@latest
250
+ npm install -g yarn@latest
251
+ ```
252
+
253
+ # Managing J1 Projects
254
+
255
+ Managing J1 Theme projects is very simple:
256
+
257
+ * Install J1 Theme
258
+ * Setup a project
259
+ * Initialize the project
260
+ * Run the J1 Project
261
+
262
+ ## Install J1 Theme
263
+
264
+ You can install J1 Theme in two ways:
265
+
266
+ * Installing the Ruby Gem of J1 Theme (recommended)
267
+ * Clone the current J1 Theme Repo from *Github*
268
+
269
+ The recommended method to install J1 is using the the **Ruby Gem**.
270
+ If you're using *Git* already, cloning the Repo at *Github* may an
271
+ option.
272
+
273
+ ### Installing the Ruby Gem
274
+
275
+ It is highly recommended to install all project-related Ruby GEMs so-called
276
+ **userized**. The **user install** option of the *RubyGems* CLI **gem** will
277
+ install all requested Ruby Gems in the **home directory** of a user.
278
+ Installing userized prevents polluting the System Ruby Installation by
279
+ packages only needed by specific users or projects.
280
+
281
+ **IMPORTANT**: If you're on *Linux* (Unix), a system-wide installation of
282
+ Ruby GEMs requires **elevated** user rights (root). *Userized* installations
283
+ of Ruby packages can be done by all users **without** having elevated
284
+ user rights.
285
+
286
+ J1 Theme uses the **user install** option internally by **default**.
287
+ All depended Ruby GEMs are installed in the user's home directory in
288
+ folder `.gem`.
289
+
290
+ Prior to install the J1 Gem, make sure that a `.gem` folder already **exists**
291
+ in your **home** directory.
292
+
293
+ On *Windows*, run:
294
+
295
+ mkdir %HOMEDRIVE%%HOMEPATH%\.gem
296
+
297
+ On *Unix/linux*, run:
298
+
299
+ md $HOME/.gem
300
+
301
+ The latest version of J1 Theme is available at
302
+ <a href="https://rubygems.org/gems/j1-template/" target="_blank">RubyGems</a>
303
+ or can installed by the RubyGems CLI **gem**:
304
+
305
+ gem install j1-template --no-document --user-install
306
+
307
+ **NOTE** The installation of the Gem will resolve all dependencies and
308
+ downloaad|install all dpended Ruby GEMs as required (userized).
309
+
310
+ ### Checkout the Repo from Github
311
+
312
+ The Repo for the **latest** version of J1 Theme is published on Github.
313
+ You can get it by **cloning** the repository using **Git**`:
314
+
315
+ git clone https://github.com/jekyll-one/j1-starter
316
+
317
+ The repo gets written to folder `j1-starter`. Have a look and
318
+ browse the folder. You'll see a structure like this:
319
+
320
+ General J1 Project Repo structure:
321
+
322
+ ``` sh
323
+ ├──── j1-starter
324
+ │ └─── _data
325
+ | └─── _includes
326
+ │ └─── _plugins
327
+ │ └─── assets
328
+ │ └─── collections
329
+ │ └─── dot.bundle
330
+ │ └─── pages
331
+ ├──── dot.gitattributes
332
+ ├──── dot.gitignore
333
+ ├──── dot.ruby-version
334
+ ├──── dot.nojekyll
335
+ ├──── dot.ruby-version
336
+ ├──── favicon.ico
337
+ ├──── Gemfile
338
+ ├──── index.html
339
+ ├──── LICENSE.md
340
+ ├──── package.json
341
+ └──── README.md
342
+ ```
343
+
344
+ **NOTE**: It is recommended to rename the folder `j1-template-starter` of
345
+ the cloned repo to a more specific (project) name.
346
+
347
+ All development **tasks** are defined as NPM **scripts** with the project
348
+ config file `package.json`. For your convenience, the J1 Theme Gem
349
+ comes with a build-in CLI **j1** run all project-related commands;
350
+ no need to learn **npm** or how to manage **NodeJS** projects.
351
+
352
+
353
+ ## Setup the Project
354
+
355
+ The setup procedure depends on how you installed J1 Theme. If you are
356
+ using the J1 GEM as recommended, you need to **create** a personal project
357
+ first. If you have cloned the J1 Theme Repo from *Github*, the project
358
+ is already created by the clone's folder and you can skip the creation of
359
+ a project; continue on section **Initialize a J1 Project**.
360
+
361
+ ### Create a J1 Project
362
+
363
+ First, you should make a folder holding all your J1 projects.
364
+ On *Windows*, run:
365
+
366
+ mkdir %HOMEDRIVE%%HOMEPATH%\j1-projects
367
+
368
+ Managing J1 Projects is simple: all tasks you need are run by the buildin
369
+ CLI **j1**. To create a new project inside the projects folder, run:
370
+
371
+ cd %HOMEDRIVE%%HOMEPATH%\j1-projects && j1 generate my-starter
372
+
373
+ This command creates a **initial** project in folder **my-starter**.
374
+
375
+ ```
376
+ 2023-02-28 18:12:08 - GENERATE: Running bundle install in C:/Users/xxx/j1-projects/my-starter ...
377
+ 2023-02-28 18:12:08 - GENERATE: Install bundle in USER gem folder ~/.gem ...
378
+ 2023-02-28 18:12:12 - GENERATE: Fetching gem metadata from https://rubygems.org/..........
379
+ 2023-02-28 18:12:12 - GENERATE: Resolving dependencies...
380
+ 2023-02-28 18:12:12 - GENERATE: Using bundler 2.3.7
381
+ ...
382
+ 2023-02-28 18:12:12 - GENERATE: Using j1-template 2024.3.14
383
+ 2023-02-28 18:12:12 - GENERATE: Bundle complete! 31 Gemfile dependencies, 78 gems now installed.
384
+ 2023-02-28 18:12:12 - GENERATE: Bundled gems are installed into `../../.gem`
385
+ 2023-02-28 18:12:12 - GENERATE: C:/Users/xxx/.gem/ruby/3.1.0;C:/DevTools/Ruby31-x64/lib/ruby/gems/3.1.0;
386
+ 2023-02-28 18:12:13 - GENERATE: Install patches in USER gem folder ~/.gem ...
387
+ 2023-02-28 18:12:13 - GENERATE: Install patches on path C:/Users/xxx/.gem/ruby/3.1.0 ...
388
+ 2023-02-28 18:12:13 - GENERATE: Patches already installed, skip install.
389
+ 2023-02-28 18:12:13 - GENERATE: Generated Jekyll site installed in folder C:/Users/xxx/j1-projects/my-starter
390
+ 2023-02-28 18:12:13 - GENERATE: To setup the site, change to the project folder C:/Users/xxx/j1-projects/my-starter and run: j1 setup
391
+ ```
392
+
393
+ ## Initialize the project
394
+
395
+ To make a project usable, is has to be initialzed first. This is needed
396
+ only once after you create a **new** project.
397
+ On *Windows*, run the `setup` task like so:
398
+
399
+ cd %HOMEDRIVE%%HOMEPATH%\j1-projects\my-starter && j1 setup
400
+
401
+ **NOTE**: While initializing a project, the J1 Theme Gem is downloaded as
402
+ a dependecy (if **not** already installed). For the users **cloned** the J1
403
+ Template repo (as a project), the J1 GEM will be installed and all **j1**
404
+ commands are available as well.
405
+
406
+ ```
407
+ Check consistency of the J1 project ...
408
+ 2023-02-28 18:17:47 - SETUP: Running bundle install in C:/Users/xxx/j1-projects/my-starter ...
409
+ 2023-02-28 18:17:47 - SETUP: Install bundle in USER gem folder ~/.gem ...
410
+ ...
411
+ 2023-02-28 18:17:48 - SETUP: Bundle complete! 31 Gemfile dependencies, 78 gems now installed.
412
+ 2023-02-28 18:17:48 - SETUP: Bundled gems are installed into `../../.gem`
413
+ 2023-02-28 18:17:48 - SETUP: Install patches in USER gem folder ~/.gem ...
414
+ 2023-02-28 18:17:48 - SETUP: Install patches on path C:/Users/xxx/.gem/ruby/3.1.0 ...
415
+ 2023-02-28 18:17:48 - SETUP: Initialize the project ...
416
+ 2023-02-28 18:17:48 - SETUP: Be patient, this will take a while ...
417
+ 2023-02-28 18:17:49 - SETUP:
418
+ 2023-02-28 18:17:49 - SETUP: > j1@2024.3.14 setup C:\Users\xxx\j1-projects\my-starter
419
+ 2023-02-28 18:17:49 - SETUP: > npm --silent run setup-start && npm --silent run setup-base && run-s -s setup:*
420
+ 2023-02-28 18:17:49 - SETUP:
421
+ 2023-02-28 18:17:50 - SETUP: Setup project for first use ..
422
+ 2023-02-28 18:17:50 - SETUP: Bootstrap base modules ..
423
+ 2023-02-28 18:18:05 - SETUP: done.
424
+ 2023-02-28 18:18:05 - SETUP: Configure environment ..
425
+ 2023-02-28 18:18:09 - SETUP: done.
426
+ 2023-02-28 18:18:09 - SETUP: Create project folders ..
427
+ ...
428
+ 2023-02-28 18:18:25 - SETUP: done.
429
+ 2023-02-28 18:18:26 - SETUP: Detect OS ..
430
+ 2023-02-28 18:18:27 - SETUP: OS detected: Windows_NT
431
+ 2023-02-28 18:18:28 - SETUP: Build site incremental ..
432
+ 2023-02-28 18:18:31 - SETUP: Configuration file: C:/Users/jadams/j1-projects/my-starter/_config.yml
433
+ 2023-02-28 18:18:34 - SETUP: Source: C:/Users/jadams/j1-projects/my-starter
434
+ 2023-02-28 18:18:34 - SETUP: Destination: C:/Users/jadams/j1-projects/my-starter/_site
435
+ 2023-02-28 18:18:34 - SETUP: Incremental build: enabled
436
+ 2023-02-28 18:18:34 - SETUP: Generating...
437
+ 2023-02-28 18:18:36 - SETUP: J1 Lunr: creating search index ...
438
+ 2023-02-28 18:18:38 - SETUP: J1 Lunr: finished, index ready.
439
+ 2023-02-28 18:18:38 - SETUP: J1 Paginator: autopages, disabled|not configured
440
+ 2023-02-28 18:18:38 - SETUP: J1 Paginator: pagination enabled, start processing ...
441
+ 2023-02-28 18:18:38 - SETUP: J1 Paginator: finished, processed 2 pagination page|s
442
+ 2023-02-28 18:19:28 - SETUP: done in 53.925 seconds.
443
+ 2023-02-28 18:19:28 - SETUP: Auto-regeneration: disabled. Use --watch to enable.
444
+ 2023-02-28 18:19:28 - SETUP: .. build finished.
445
+ 2023-02-28 18:19:29 - SETUP: To open the site, run: yarn site
446
+ 2023-02-28 18:19:29 - SETUP: Initializing the project finished successfully.
447
+ 2023-02-28 18:19:29 - SETUP: To open your site, run: j1 site
448
+ ```
449
+
450
+ ## Run the J1 Project
451
+
452
+ After the setup process has been finished, you can run a project by running
453
+ `j1 site`. Finally, the buildin Starter Web get openend in your default
454
+ browser. Let's start the journey ...
455
+
456
+ cd %HOMEDRIVE%%HOMEPATH%\j1-projects\mystarter && j1 site
457
+
458
+ ``` sh
459
+ Check consistency of the J1 project ...
460
+ Check setup state of the J1 project ...
461
+ 2023-02-28 18:26:18 - SITE: Starting up your site ...
462
+ 2023-02-28 18:26:18 - SITE:
463
+ 2023-02-28 18:26:18 - SITE: > j1@2024.3.14 j1-site C:\Users\jadams\j1-projects\my-starter
464
+ 2023-02-28 18:26:18 - SITE: > run-p -s j1-site:*
465
+ 2023-02-28 18:26:18 - SITE:
466
+ 2023-02-28 18:26:20 - SITE: Startup UTILSRV ..
467
+ 2023-02-28 18:26:21 - SITE: Log file exists : messages_2023-02-28
468
+ 2023-02-28 18:26:21 - SITE: Stop the server. Exiting ...
469
+ 2023-02-28 18:26:21 - SITE: Reset file: messages_2023-02-28
470
+ 2023-02-28 18:26:21 - SITE: Configuration file: C:/Users/jadams/j1-projects/my-starter/_config.yml
471
+ 2023-02-28 18:26:24 - SITE: Source: C:/Users/jadams/j1-projects/my-starter
472
+ 2023-02-28 18:26:24 - SITE: Destination: C:/Users/jadams/j1-projects/my-starter/_site
473
+ 2023-02-28 18:26:24 - SITE: Incremental build: enabled
474
+ 2023-02-28 18:26:24 - SITE: Generating...
475
+ 2023-02-28 18:26:27 - SITE: J1 Lunr: creating search index ...
476
+ 2023-02-28 18:26:28 - SITE: J1 Lunr: finished, index ready.
477
+ 2023-02-28 18:26:28 - SITE: J1 Paginator: autopages, disabled|not configured
478
+ 2023-02-28 18:26:28 - SITE: J1 Paginator: pagination enabled, start processing ...
479
+ 2023-02-28 18:26:28 - SITE: J1 Paginator: finished, processed 2 pagination page|s
480
+ 2023-02-28 18:26:35 - SITE: done in 10.408 seconds.
481
+ 2023-02-28 18:26:38 - SITE: Auto-regeneration: enabled for '.'
482
+ 2023-02-28 18:26:39 - SITE: LiveReload address: http://localhost:35729
483
+ 2023-02-28 18:26:39 - SITE: Server address: http://localhost:40000/
484
+ 2023-02-28 18:26:39 - SITE: Server running... press ctrl-c to stop.
485
+ ```
486
+
487
+ ## Rebuild a project
488
+
489
+ For some reason, it may needed to re-create an existing project. The task
490
+ `rebuild` rebuild all documents (pages and posts) from the scratch but
491
+ leaves the base project files untouched.
492
+ To **reset** a project, run (inside the project folder):
493
+
494
+ j1 reset
495
+
496
+ ``` sh
497
+ Check consistency of the J1 project ...
498
+ Check setup state of the J1 project ...
499
+ REBUILD: Rebuild the projects website ...
500
+ REBUILD: Be patient, this will take a while ...
501
+ 2023-02-28 18:45:09 - REBUILD:
502
+ 2023-02-28 18:45:09 - REBUILD: > j1@2024.3.14 rebuild C:\Users\xxx\j1-projects\my-starter
503
+ 2023-02-28 18:45:09 - REBUILD: > run-s -s rebuild:* && run-s -s post-rebuild:*
504
+ 2023-02-28 18:45:09 - REBUILD:
505
+ 2023-02-28 18:45:10 - REBUILD: Rebuild site incremental ..
506
+ 2023-02-28 18:45:10 - REBUILD: Clean up site files ..
507
+ 2023-02-28 18:45:12 - REBUILD: Configuration file: C:/Users/xxx/j1-projects/my-starter/_config.yml
508
+ 2023-02-28 18:45:13 - REBUILD: Cleaner: Removing _site...
509
+ 2023-02-28 18:45:13 - REBUILD: Cleaner: Removing ./.jekyll-metadata...
510
+ 2023-02-28 18:45:13 - REBUILD: Cleaner: Removing ./.jekyll-cache...
511
+ 2023-02-28 18:45:14 - REBUILD: Cleaner: Nothing to do for .sass-cache.
512
+ 2023-02-28 18:45:17 - REBUILD: Configuration file: C:/Users/xxx/j1-projects/my-starter/_config.yml
513
+ 2023-02-28 18:45:19 - REBUILD: Source: C:/Users/xxx/j1-projects/my-starter
514
+ 2023-02-28 18:45:19 - REBUILD: Destination: C:/Users/xxx/j1-projects/my-starter/_site
515
+ 2023-02-28 18:45:19 - REBUILD: Incremental build: enabled
516
+ 2023-02-28 18:45:19 - REBUILD: Generating...
517
+ 2023-02-28 18:45:21 - REBUILD: J1 Lunr: creating search index ...
518
+ 2023-02-28 18:45:23 - REBUILD: J1 Lunr: finished, index ready.
519
+ 2023-02-28 18:45:23 - REBUILD: J1 Paginator: autopages, disabled|not configured
520
+ 2023-02-28 18:45:23 - REBUILD: J1 Paginator: pagination enabled, start processing ...
521
+ 2023-02-28 18:45:23 - REBUILD: J1 Paginator: finished, processed 2 pagination page|s
522
+ 2023-02-28 18:46:11 - REBUILD: done in 52.09 seconds.
523
+ 2023-02-28 18:46:11 - REBUILD: Auto-regeneration: disabled. Use --watch to enable.
524
+ 2023-02-28 18:46:12 - REBUILD: .. rebuild finished.
525
+ 2023-02-28 18:46:12 - REBUILD: To open the site, run: yarn site
526
+ REBUILD: The projects website has been rebuild successfully.
527
+ REBUILD: To open the site, run: j1 site
528
+ ```
529
+
530
+
531
+ ## Reset a project
532
+
533
+ To start a project from the beginning, you can reset the system to the
534
+ factory state. The task `reset` does the resetting work for you
535
+ and cleans up each and everything except the **Git** repo and the modules
536
+ folder `node_modules` stored in the project root. Both are kept untouched
537
+ by a reset.
538
+
539
+ j1 reset
540
+
541
+ The cleanup runs some tasks for the root folder and in parallel sub-tasks
542
+ using Lerna for all packages:
543
+
544
+ ```
545
+ Check consistency of the J1 project ...
546
+ Check setup state of the J1 project ...
547
+ 2023-02-28 18:29:07 - RESET: Reset the project to factory state ...
548
+ 2023-02-28 18:29:07 - RESET: Be patient, this will take a while ...
549
+ 2023-02-28 18:29:08 - RESET:
550
+ 2023-02-28 18:29:08 - RESET: > j1@2024.3.14 reset C:\Users\xxx\j1-projects\my-starter
551
+ 2023-02-28 18:29:08 - RESET: > run-s -s reset:*
552
+ 2023-02-28 18:29:08 - RESET:
553
+ 2023-02-28 18:29:08 - RESET: Reset project to factory state ..
554
+ 2023-02-28 18:29:09 - RESET: Clean up base modules ..
555
+ 2023-02-28 18:29:10 - RESET: Clean up site files ..
556
+ 2023-02-28 18:29:12 - RESET: Configuration file: C:/Users/xxx/j1-projects/my-starter/_config.yml
557
+ 2023-02-28 18:29:13 - RESET: Cleaner: Removing _site...
558
+ 2023-02-28 18:29:13 - RESET: Cleaner: Removing ./.jekyll-metadata...
559
+ 2023-02-28 18:29:13 - RESET: Cleaner: Removing ./.jekyll-cache...
560
+ 2023-02-28 18:29:13 - RESET: Cleaner: Nothing to do for .sass-cache.
561
+ 2023-02-28 18:29:14 - RESET: Clean up projects files ..
562
+ 2023-02-28 18:29:14 - RESET: Remove bundle config folder ..
563
+ 2023-02-28 18:29:15 - RESET: Remove log folder ..
564
+ 2023-02-28 18:29:15 - RESET: Remove etc folder ..
565
+ 2023-02-28 18:29:15 - RESET: Remove various log files ..
566
+ 2023-02-28 18:29:16 - RESET: Remove lock files ..
567
+ 2023-02-28 18:29:16 - RESET: Clean up utility server ..
568
+ 2023-02-28 18:29:21 - RESET: done.
569
+ 2023-02-28 18:29:21 - RESET: The project reset finished successfully.
570
+ 2023-02-28 18:29:21 - RESET: To setup the project, run: j1 setup
571
+ ```
572
+
573
+ Start your work from the scratch by running the `setup` task again:
574
+
575
+ j1 setup
576
+
577
+ Happy Jekylling!