j1-template 2024.3.13 → 2024.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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!