j1-template 2023.8.2 → 2023.9.1
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.
- checksums.yaml +4 -4
- data/_includes/themes/j1/layouts/content_generator_post.html +19 -49
- data/_includes/themes/j1/procedures/posts/collate_timeline.proc +185 -192
- data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -14
- data/_includes/themes/j1/procedures/posts/pager.proc +39 -46
- data/assets/themes/j1/adapter/js/speak2me.js +1 -1
- data/assets/themes/j1/adapter/js/translator.js +4 -2
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +31 -26
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +2 -2
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +31 -26
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +2 -2
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +37 -29
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +3 -3
- data/assets/themes/j1/core/js/template.js +58 -43
- data/assets/themes/j1/core/js/template.min.js +7 -7
- data/assets/themes/j1/core/js/template.min.js.map +1 -1
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +2 -2
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +1 -1
- data/lib/starter_web/_data/blocks/footer.yml +6 -4
- data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +89 -135
- data/lib/starter_web/_data/modules/defaults/speak2me.yml +1 -0
- data/lib/starter_web/_data/modules/justifiedGallery.yml +3 -3
- data/lib/starter_web/_data/modules/navigator_menu.yml +14 -7
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_plugins/index/lunr.rb +1 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +74 -70
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +110 -84
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-static-site-generators.adoc +49 -33
- data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +47 -26
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/blog/navigator/archive/allview.html +66 -63
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +76 -77
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +63 -64
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +79 -64
- data/lib/starter_web/pages/public/blog/navigator/index.html +55 -99
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_bootstrap.asciidoc +6 -2
- data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +59 -35
- data/lib/starter_web/pages/public/learn/roundtrip/bootstrap_themes.adoc +4 -4
- data/lib/starter_web/pages/public/learn/roundtrip/highlghter_rouge.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +28 -12
- data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.adoc +12 -4
- data/lib/starter_web/pages/public/learn/roundtrip/modal_extentions.adoc +5 -1
- data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +512 -470
- data/lib/starter_web/pages/public/learn/roundtrip/present_videos.adoc +20 -6
- data/lib/starter_web/pages/public/learn/roundtrip/responsive_tables.adoc +5 -2
- data/lib/starter_web/pages/public/learn/where_to_go.adoc +24 -13
- data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +4 -1
- data/lib/starter_web/pages/public/legal/en/200_impress.adoc +4 -1
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +632 -595
- data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +12 -3
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +2 -2
data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb
CHANGED
@@ -1,20 +1,34 @@
|
|
1
1
|
---
|
2
2
|
title: Welcome to Jekyll
|
3
3
|
tagline: Websites For Everyone
|
4
|
+
|
4
5
|
#date: <%= Time.now.strftime('%Y-%m-%d') %>
|
5
6
|
#last_modified: 2023-01-01
|
6
7
|
|
7
|
-
|
8
|
-
|
8
|
+
description: >
|
9
|
+
Jekyll is a static site generator that allows you to build websites
|
10
|
+
using HTML, CSS, Javascript, and Markdown for writing the content.
|
11
|
+
It uses templates and layouts to generate the static files that make
|
12
|
+
up your website, which can be hosted on any web server.
|
13
|
+
keywords: >
|
14
|
+
open source, free, template, jekyll, jekyllone, web,
|
15
|
+
sites, static, jamstack, bootstrap
|
16
|
+
|
17
|
+
categories: [ Jekyll ]
|
18
|
+
tags: [ Template, Theme ]
|
9
19
|
|
10
20
|
image:
|
11
21
|
path: /assets/images/modules/attics/katie-moum-1920x1280.jpg
|
12
22
|
width: 1920
|
13
23
|
height: 1200
|
14
|
-
alt:
|
24
|
+
alt: Photo by Katie Moum on Unsplash
|
15
25
|
|
16
26
|
group: Featured
|
17
|
-
series:
|
27
|
+
#series: Featured
|
28
|
+
|
29
|
+
tts: true
|
30
|
+
fab_menu_id: open_toc
|
31
|
+
comments: false
|
18
32
|
regenerate: false
|
19
33
|
|
20
34
|
resources: [ animate ]
|
@@ -43,12 +57,12 @@ resource_options:
|
|
43
57
|
// Place an excerpt at the most top position
|
44
58
|
// -----------------------------------------------------------------------------
|
45
59
|
[role="dropcap"]
|
46
|
-
|
47
|
-
|
60
|
+
Jekyll is a static site generator that allows you to build websites
|
61
|
+
using HTML, CSS, Javascript, and Markdown or Asciidoc for writing
|
62
|
+
the content.
|
48
63
|
|
49
|
-
|
50
|
-
|
51
|
-
the HTML files from the server.
|
64
|
+
It uses templates and layouts to generate the static files that make up your
|
65
|
+
website, which can be hosted on any web server.
|
52
66
|
|
53
67
|
excerpt__end
|
54
68
|
|
@@ -68,8 +82,12 @@ All you’re doing at the end of the day is writing your content, and the J1
|
|
68
82
|
Template does all the tricky things: putting out HTML, Javascript, and CSS.
|
69
83
|
As a result, the site creation process gets out of your way.
|
70
84
|
|
85
|
+
mdi:clock-time-five-outline[24px, md-gray mr-2 mt-4]
|
86
|
+
*5 Minutes* to read
|
87
|
+
|
71
88
|
// Include sub-documents (if any)
|
72
89
|
// -----------------------------------------------------------------------------
|
90
|
+
[role="mt-5"]
|
73
91
|
== What is a static site?
|
74
92
|
|
75
93
|
A static site serves the content straight to the user as it is stored on
|
@@ -78,16 +96,12 @@ which use a database to load dynamic content, a static site will display
|
|
78
96
|
the same content to every user as it will directly load the HTML files
|
79
97
|
on the server.
|
80
98
|
|
81
|
-
A static site serves the content straight to the user as it is stored on
|
82
|
-
the server-side. In opposition to WordPress, which uses a database to load
|
83
|
-
dynamic content, a static site will display the same content to every user
|
84
|
-
as it will directly load the HTML files on the server.
|
85
|
-
|
86
99
|
In the last few years, static sites have greatly increased in popularity.
|
87
100
|
This surge is primarily due to advances in developer tools (languages and
|
88
101
|
libraries) and a stronger desire among businesses to optimize website
|
89
102
|
performance beyond the limits of a database-driven site.
|
90
103
|
|
104
|
+
[role="mt-4"]
|
91
105
|
=== What's different?
|
92
106
|
|
93
107
|
A dynamic website uses a database and PHP/MySQL to generate the content of
|
@@ -102,50 +116,73 @@ leveraging HTML and CSS as well as server-side scripting languages like PHP
|
|
102
116
|
to build webpages on the fly and serve different content to each site
|
103
117
|
visitor.
|
104
118
|
|
105
|
-
|
119
|
+
|
120
|
+
[role="mt-5"]
|
121
|
+
== Why use a static site?
|
106
122
|
|
107
123
|
What are the advantages of a static website over a dynamic site?
|
108
|
-
You may be wondering *Why should I build a static site when I could do the
|
109
|
-
same by using WordPress?*.
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
124
|
+
You may be wondering *Why should I build a static site* when I could do *the
|
125
|
+
same by using WordPress?*.
|
126
|
+
|
127
|
+
Well, having a database implies a lot of downsides. Here come the main
|
128
|
+
advantages of using a static site over a dynamic one.
|
129
|
+
|
130
|
+
[role="mt-4"]
|
131
|
+
=== Performance
|
132
|
+
|
133
|
+
Better performance and a crazy fast load time.
|
134
|
+
|
135
|
+
One of the main advantages of using a static site is the fact that it is
|
136
|
+
crazy fast to load. Indeed, when the user requests a page, there is
|
117
137
|
no need to request a database and various files to generate the
|
118
138
|
page itself as all the content is already placed in a one and only file:
|
119
|
-
an HTML one.
|
139
|
+
an HTML one.
|
140
|
+
|
141
|
+
That’s why by using a static site, you will get a boost in
|
120
142
|
your loading time that will provide a great user experience for the
|
121
143
|
internauts. Moreover, we know that more and more people are surfing the
|
122
144
|
web using their smartphones with, sometimes, poor internet connections.
|
123
145
|
That’s why having fast loading times will participate in making your
|
124
146
|
website mobile-friendly.
|
125
147
|
|
126
|
-
|
127
|
-
|
148
|
+
[role="mt-4"]
|
149
|
+
=== Security
|
150
|
+
|
151
|
+
Say goodbye to hacking and security issues.
|
152
|
+
|
128
153
|
Are you tired of getting WordPress notifications about security issues and
|
129
154
|
updates every week? No worries, as a static site has no database, there are
|
130
155
|
close to no hack possible compared to a WordPress website. Indeed, your
|
131
156
|
site will have way fewer footprints and security issues since it will
|
132
|
-
only load plain HTML and CSS files.
|
157
|
+
only load plain HTML and CSS files.
|
158
|
+
|
159
|
+
The security gain in having a static
|
133
160
|
website is one of the main reasons why many famous brands switch to a
|
134
161
|
static site instead of having their website on Drupal or WordPress.
|
135
162
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
163
|
+
[role="mt-4"]
|
164
|
+
=== Hosting
|
165
|
+
|
166
|
+
Building a static site and hosting: you will save money.
|
167
|
+
|
168
|
+
Using a static site, you need only HTML and CSS files to host. This kind
|
169
|
+
of file is super light which also means that you will not need a powerhouse
|
170
|
+
hosting to have a static site up and running.
|
171
|
+
|
141
172
|
Moreover, if your traffic suddenly increases, your site will not go down,
|
142
173
|
contrary to a dynamic site that should request the database each time
|
143
174
|
for each user.
|
144
175
|
|
145
|
-
|
146
|
-
|
147
|
-
|
176
|
+
[role="mt-4"]
|
177
|
+
=== Control
|
178
|
+
|
179
|
+
You're the master.
|
148
180
|
|
181
|
+
You were using a CMS means, giving control over your site to others.
|
182
|
+
Simple like this.
|
183
|
+
|
184
|
+
|
185
|
+
[role="mt-5"]
|
149
186
|
== Why use a site generator?
|
150
187
|
|
151
188
|
Working with pure HTML files is annoying; senseless today. Indeed, if you need
|
@@ -159,6 +196,7 @@ content and the Template. To say it another way, by using a static site
|
|
159
196
|
generator, you will only need to make the modification once, and the
|
160
197
|
generator will apply it to all your pages.
|
161
198
|
|
199
|
+
[role="mt-4"]
|
162
200
|
=== Why Jekyll?
|
163
201
|
|
164
202
|
As the popularity of static sites is growing, there are plenty of static
|
@@ -171,37 +209,3 @@ When I decided to go for a blog based on a static web, I personally
|
|
171
209
|
choose Jekyll as for me. It's a well-known static site generator, good support
|
172
210
|
in case of trouble, and the software gets regularly updated. This website is
|
173
211
|
powered by Jekyll. For good reasons.
|
174
|
-
|
175
|
-
|
176
|
-
== Automatically generated posts
|
177
|
-
|
178
|
-
You’ll find this post in your `_posts` directory. Go ahead and edit it and
|
179
|
-
re-build the site to see your changes. You can rebuild the site in many
|
180
|
-
different ways, but the most common way is to run `jekyll serve`, which
|
181
|
-
launches a web server and auto-regenerates your site when a file is updated.
|
182
|
-
|
183
|
-
Jekyll requires blog post files to be named according to the following format:
|
184
|
-
|
185
|
-
`YEAR-MONTH-DAY-title.MARKUP`
|
186
|
-
|
187
|
-
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit
|
188
|
-
numbers, and `MARKUP` is the file extension representing the format used in
|
189
|
-
the file. After that, include the necessary front matter. Take a look at the
|
190
|
-
source for this post to get an idea about how it works.
|
191
|
-
|
192
|
-
Jekyll also offers powerful support for code snippets:
|
193
|
-
|
194
|
-
[source, ruby]
|
195
|
-
----
|
196
|
-
def print_hi(name)
|
197
|
-
puts "Hi, #{name}"
|
198
|
-
end
|
199
|
-
print_hi('Tom')
|
200
|
-
#=> prints 'Hi, Tom' to STDOUT.
|
201
|
-
----
|
202
|
-
|
203
|
-
Check out the https://jekyllrb.com/docs/home[Jekyll Docs, {{browser-window--new}}]
|
204
|
-
for more info on how to get the most out of Jekyll. File all bugs amd feature
|
205
|
-
requests at https://github.com/jekyll/jekyll/issues[Jekyll Github Project, {{browser-window--new}}].
|
206
|
-
If you have questions, you can ask them on
|
207
|
-
https://talk.jekyllrb.com/[Jekyll Talk, {{browser-window--new}}].
|
@@ -1,9 +1,12 @@
|
|
1
1
|
---
|
2
2
|
title: Cookies
|
3
|
-
|
3
|
+
title_extention: Good To Know About Cookies
|
4
|
+
tagline: About Cookies
|
5
|
+
|
6
|
+
#date: 2023-01-01
|
4
7
|
#last_modified: 2023-01-01
|
5
8
|
|
6
|
-
categories: [ Technology
|
9
|
+
categories: [ Technology ]
|
7
10
|
tags: [ Cookies ]
|
8
11
|
|
9
12
|
image:
|
@@ -15,11 +18,12 @@ image:
|
|
15
18
|
group: Featured
|
16
19
|
series: Featured
|
17
20
|
|
21
|
+
#tts: false
|
18
22
|
fab_menu_id: open_toc
|
19
23
|
comments: false
|
20
24
|
regenerate: false
|
21
25
|
|
22
|
-
resources: [ animate
|
26
|
+
resources: [ animate ]
|
23
27
|
resource_options:
|
24
28
|
- attic:
|
25
29
|
padding_top: 600
|
@@ -51,96 +55,104 @@ resource_options:
|
|
51
55
|
Cookies can be used for various purposes, such as tracking user behavior,
|
52
56
|
remembering login credentials, and personalizing the user experience.
|
53
57
|
|
54
|
-
Providing clear and transparent information about cookies
|
55
|
-
understand how their data is used and allows them to
|
56
|
-
about their privacy.
|
58
|
+
Providing clear and transparent information about using cookies by website
|
59
|
+
operators helps users understand how their data is used and allows them to
|
60
|
+
make better choices about their privacy.
|
57
61
|
|
58
62
|
excerpt__end
|
59
63
|
|
64
|
+
// Load Liquid procedures
|
65
|
+
// -----------------------------------------------------------------------------
|
66
|
+
{% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
|
67
|
+
|
68
|
+
// Load page attributes
|
69
|
+
// -----------------------------------------------------------------------------
|
70
|
+
{% include {{load_attributes}} scope="global" %}
|
71
|
+
|
72
|
+
|
73
|
+
// Page content
|
74
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
75
|
+
mdi:clock-time-five-outline[24px, md-gray mr-2 mt-4]
|
76
|
+
*3-5 Minutes* to read
|
77
|
+
|
78
|
+
// Include sub-documents (if any)
|
79
|
+
// -----------------------------------------------------------------------------
|
80
|
+
[role="mt-5"]
|
81
|
+
== What are Cookies
|
82
|
+
|
83
|
+
HTTP header cookies, or short cookies, are a small data files that a website
|
84
|
+
asks your browser to create on your computer or mobile device. A cookie allows
|
85
|
+
the website to store your actions or preferences over time.
|
86
|
+
|
87
|
+
All modern browsers support cookies. However, users can configure a browser
|
88
|
+
to decline them. Moreover, all users can delete all or selected cookie files
|
89
|
+
whenever they like.
|
90
|
+
|
91
|
+
Find below how cookies are typically used for.
|
92
|
+
|
93
|
+
[role="mt-4"]
|
94
|
+
=== General
|
60
95
|
|
61
|
-
|
96
|
+
In general, cookies are used to remember a vistors personal preferences.
|
62
97
|
|
63
|
-
|
64
|
-
|
65
|
-
website to "remember" your actions or preferences over time. All modern
|
66
|
-
browsers support cookies, but users can set their browsers to decline them
|
67
|
-
and can delete them whenever they like. Good to know.
|
98
|
+
[role="mt-4"]
|
99
|
+
=== Identification
|
68
100
|
|
69
|
-
|
101
|
+
Cookies allows to identify users, on return for example.
|
70
102
|
|
71
|
-
|
72
|
-
|
103
|
+
[role="mt-4"]
|
104
|
+
=== Support
|
73
105
|
|
74
|
-
|
75
|
-
|
106
|
+
The data stored in cookies can help users to complete tasks without
|
107
|
+
re-entering the same information when visiting the site later.
|
76
108
|
|
77
|
-
|
78
|
-
|
79
|
-
from one page to another or when visiting the site later.
|
109
|
+
[role="mt-4"]
|
110
|
+
=== Tracking
|
80
111
|
|
81
|
-
Track behavioral::
|
82
112
|
Cookies can also be used for online behavioral target advertising and to
|
83
|
-
show
|
84
|
-
The webserver supplying the webpage can store a cookie on the
|
85
|
-
computer or mobile device.
|
86
|
-
|
87
|
-
All these cookies are called HTTP header cookies. Another way of storing
|
88
|
-
cookies is through JavaScript code contained or referenced on that page.
|
89
|
-
Each time the user requests a new page, the webserver can receive the
|
90
|
-
values of the cookies it previously set and return the page with content
|
91
|
-
relating to these values. Similarly, JavaScript code can read a
|
92
|
-
cookie belonging to its domain and act accordingly.
|
93
|
-
|
94
|
-
.How are they used
|
95
|
-
[NOTE]
|
96
|
-
====
|
97
|
-
The web server supplying the webpage can store a cookie on the user's
|
98
|
-
computer or mobile device. An external web server that manages files
|
99
|
-
included or referenced in the web page can store cookies. All these
|
100
|
-
cookies are called HTTP header cookies. Another way of storing cookies
|
101
|
-
is through JavaScript code contained or referenced on that page.
|
102
|
-
|
103
|
-
Each time the user requests a new page, the web server can receive the
|
104
|
-
values of the cookies it previously set and return the page with content
|
105
|
-
relating to these values. Similarly, JavaScript code can read a
|
106
|
-
cookie belonging to its domain and act accordingly.
|
107
|
-
====
|
113
|
+
show innformation relevant to something that users searched for in the past.
|
114
|
+
The webserver supplying the webpage can store a cookie on the users
|
115
|
+
computer or mobile device to store such personal preferences.
|
116
|
+
|
108
117
|
|
109
|
-
|
118
|
+
[role="mt-5"]
|
119
|
+
== Types of Cookies
|
110
120
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
Cookies let websites remember you, your website logins, shopping carts, and
|
115
|
-
more. But they can also be a treasure trove of private info for criminals
|
116
|
-
to spy on.
|
121
|
+
Cookies let websites remember you: for example your logins or purchases.
|
122
|
+
But they can also be a treasure trove of private info for criminals to
|
123
|
+
spy on.
|
117
124
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
which it belongs.
|
125
|
+
In general, cookies can't infect computers with viruses or other type of
|
126
|
+
malware. However, some cyberattacks can hijack cookies and enable access to
|
127
|
+
your browsing sessions. The danger lies in their ability to track individuals'
|
128
|
+
browsing histories. Web browser manufacturers introduced many security
|
129
|
+
functions to minimize attack risks.
|
124
130
|
|
125
|
-
|
131
|
+
A cookie can be classified by its lifespan and the website to which it
|
132
|
+
belongs.
|
126
133
|
|
127
|
-
|
134
|
+
[role="mt-4"]
|
135
|
+
=== Lifespan
|
136
|
+
|
137
|
+
Cookies classified by lifespan are either a:
|
128
138
|
|
129
139
|
Session cookie::
|
130
|
-
Session cookies gets automatically deleted when the user closes the
|
131
|
-
and all open window tabs.
|
140
|
+
Session cookies gets automatically deleted when the user closes the
|
141
|
+
web browser and all open window tabs.
|
132
142
|
|
133
143
|
Persistent cookie::
|
134
|
-
A persistent cookie
|
135
|
-
period of time.
|
144
|
+
A persistent cookie remains on the user's computer/device for a
|
145
|
+
pre-defined period of time; for a year at the maximum.
|
136
146
|
|
137
|
-
|
147
|
+
[role="mt-4"]
|
148
|
+
=== Website
|
138
149
|
|
139
|
-
|
150
|
+
The domain classifies cookies, the web address to which it belongs is
|
151
|
+
either of:
|
140
152
|
|
141
153
|
First-party cookie::
|
142
154
|
First-party cookie cookies are set by the webserver of the visited page
|
143
|
-
and share the
|
155
|
+
and share the same domain you're visiting. These are generally safer, as
|
144
156
|
long as users are browsing reputable websites or ones that have not been
|
145
157
|
compromised.
|
146
158
|
|
@@ -148,29 +160,43 @@ Third-party cookies::
|
|
148
160
|
Third-party cookies are stored by a *different* domain to the visited page.
|
149
161
|
This can happen when the webpage references a file located outside its domain.
|
150
162
|
Third-party cookies let advertisers or analytics companies track the user's
|
151
|
-
browsing history across the web on
|
163
|
+
browsing history across the web on any sites that contain their ads.
|
152
164
|
|
153
165
|
|
154
|
-
|
166
|
+
[role="mt-5"]
|
167
|
+
== Security
|
155
168
|
|
156
|
-
Without cookies, the
|
157
|
-
mid 90ies when
|
158
|
-
the attack methods on web applications
|
159
|
-
friendly place.
|
169
|
+
Without cookies, the Web would not work as it does today. However, since the
|
170
|
+
mid 90ies when Cookies were introduced, the web changed quite a lot, and so
|
171
|
+
did the attack methods on web applications.
|
160
172
|
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
173
|
+
[role="mb-4"]
|
174
|
+
A well-known attack method is known as cross-site request forgery or short
|
175
|
+
CSRF. A *CSRF* is an attack that forces an end user to execute unwanted
|
176
|
+
actions. A cookie may play a role in such scenarios, but they are not
|
177
|
+
generally unsafe.
|
166
178
|
|
167
|
-
|
179
|
+
[TIP]
|
180
|
+
====
|
181
|
+
If you like, read more about on a CRSF attack on the page
|
182
|
+
link:{url-owasp-attacks--csrf}[OWASP, {browser-window--new}].
|
183
|
+
====
|
168
184
|
|
169
|
-
Users can take control, used or *not* used, or delete cookies. For more
|
170
|
-
details, see {url-about-cookies--home}[AboutCookies]. You can delete
|
171
|
-
all cookies that are already on your computer, and you can set most
|
172
|
-
browsers to prevent them from being placed.
|
173
185
|
|
186
|
+
[role="mt-5"]
|
187
|
+
== Control
|
188
|
+
|
189
|
+
Users can take control when cookies are used or not. You can delete all
|
190
|
+
cookies that are already on your computer, and you
|
191
|
+
can set most browsers to prevent them from being placed.
|
192
|
+
|
193
|
+
[role="mb-4"]
|
174
194
|
If you do this, however, you may have to manually adjust some preferences
|
175
195
|
every time you visit a site, and some services and functionalities may not
|
176
196
|
work.
|
197
|
+
|
198
|
+
[TIP]
|
199
|
+
====
|
200
|
+
For more information how cookies are used, visit the page
|
201
|
+
link:{url-about-cookies--home}[AboutCookies, {browser-window--new}].
|
202
|
+
====
|
data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-static-site-generators.adoc
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
---
|
2
2
|
title: Static Site Generators
|
3
|
-
|
3
|
+
title_extention: Top Open Source Static Site Generators
|
4
|
+
tagline: Top Open Source
|
5
|
+
|
6
|
+
#date: 2023-01-01
|
4
7
|
#last_modified: 2023-01-01
|
5
8
|
|
6
|
-
categories: [ Jekyll
|
9
|
+
categories: [ Jekyll ]
|
7
10
|
tags: [ Generators ]
|
8
11
|
|
9
12
|
image:
|
@@ -15,10 +18,12 @@ image:
|
|
15
18
|
group: Featured
|
16
19
|
series: Featured
|
17
20
|
|
21
|
+
#tts: false
|
22
|
+
fab_menu_id: open_toc
|
18
23
|
comments: false
|
19
24
|
regenerate: false
|
20
25
|
|
21
|
-
resources: [ animate,
|
26
|
+
resources: [ animate, lightbox ]
|
22
27
|
resource_options:
|
23
28
|
- attic:
|
24
29
|
padding_top: 600
|
@@ -43,14 +48,14 @@ resource_options:
|
|
43
48
|
// Place an excerpt at the most top position
|
44
49
|
// -----------------------------------------------------------------------------
|
45
50
|
[role="dropcap"]
|
46
|
-
This article highlights the top
|
51
|
+
This article highlights the top Open Source projects providing static site
|
47
52
|
generators, so-called SSGs, in many different programming languages. You will
|
48
53
|
find Jekyll one of them.
|
49
54
|
|
50
55
|
A SSG is a software tool that assists in creating websites by generating
|
51
56
|
static HTML, CSS, and JavaScript files. Unlike dynamic websites that generate
|
52
|
-
content on the server side in response to each user
|
53
|
-
pre-generate the content
|
57
|
+
content on the server side in response to each request of a user, static sites
|
58
|
+
pre-generate the content upfront it is served to users.
|
54
59
|
|
55
60
|
excerpt__end
|
56
61
|
|
@@ -65,22 +70,22 @@ excerpt__end
|
|
65
70
|
|
66
71
|
// Page content
|
67
72
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
73
|
+
mdi:clock-time-five-outline[24px, md-gray mr-2 mt-4]
|
74
|
+
*3 Minutes* to read
|
68
75
|
|
69
76
|
// Include sub-documents (if any)
|
70
77
|
// -----------------------------------------------------------------------------
|
71
|
-
|
72
|
-
|
73
|
-
// [role="mb-3"]
|
74
|
-
// image::/assets/images/posts/featured/markus-spiske-2.jpg[{{page.title}}]
|
78
|
+
[role="mt-5"]
|
79
|
+
== Dynamic Webs
|
75
80
|
|
76
|
-
A typical
|
81
|
+
A typical website driven by a CMS works by building each and every page
|
77
82
|
*dynamically*. That means fetching the content from a database to pass them
|
78
|
-
over to a
|
79
|
-
|
83
|
+
over to a an middleware engine to load the content, add the required
|
84
|
+
structure information, for example CSS styles, and Javascript components if
|
80
85
|
needed. This means every page is assembled *on demand*.
|
81
86
|
|
82
|
-
.Accessing
|
83
|
-
lightbox::kickstart-wiad--dynamic-web-access[
|
87
|
+
.Accessing Scheme for a CMS
|
88
|
+
lightbox::kickstart-wiad--dynamic-web-access[800, {data-kickstart-wiad--dynamic-web-access}]
|
84
89
|
|
85
90
|
callout::1["Web Browser"]
|
86
91
|
callout::2["Web Server"]
|
@@ -88,43 +93,54 @@ callout::3["Rendering Engine (e.g. PHP-based)"]
|
|
88
93
|
callout::4["Database (e.g. MySQL, Postgres)"]
|
89
94
|
callout::5["Static content (Images, Videos, JS- and CSS files) and Caches", ml-2 mb-3]
|
90
95
|
|
91
|
-
== Is a CMS needed?
|
92
96
|
|
93
|
-
|
94
|
-
|
97
|
+
[role="mt-5"]
|
98
|
+
== Are CMS required?
|
99
|
+
|
100
|
+
For many websites, dynamic page generation is entirely unnecessary and adds
|
101
|
+
unwanted risks in terms of complexity, performance losses, and security
|
95
102
|
issues. After all, the content of most websites changes, when the content
|
96
|
-
authors make changes. Why the hell should a web page always
|
103
|
+
authors make changes. Why the hell should a web page always be assembled on
|
97
104
|
demand if there are no changes?
|
98
105
|
|
99
|
-
NOTE
|
106
|
+
[NOTE]
|
107
|
+
====
|
108
|
+
To be fair, most CMS are providing caching systems for web pages to
|
100
109
|
prevent unnecessary creation processes. It is not easy to implement such
|
101
110
|
a caching strategy, and in the very end, it adds the next level of
|
102
111
|
complexity.
|
112
|
+
====
|
103
113
|
|
104
|
-
A
|
114
|
+
A static site generator takes a different approach and generates all the pages
|
105
115
|
of the website *upfront*. That does not necessarily mean that a static website
|
106
116
|
is always built from scratch. Modern generators support a so-called
|
107
|
-
incremental build
|
108
|
-
|
117
|
+
incremental build. When there are changes detected to the content, only
|
118
|
+
selected pages are rebuild.
|
109
119
|
|
110
|
-
.Accessing
|
111
|
-
lightbox::kickstart-wiad--static-web-access[
|
120
|
+
.Accessing Scheme for a Static Web
|
121
|
+
lightbox::kickstart-wiad--static-web-access[800, {data-kickstart-wiad--static-web-access}]
|
112
122
|
|
113
123
|
callout::1["Web Browser"]
|
114
124
|
callout::2["Web Server"]
|
115
125
|
callout::3["Server-side rendered (prepared) static content", ml-2 mb-3]
|
116
126
|
|
117
|
-
|
127
|
+
|
128
|
+
[role="mt-5"]
|
129
|
+
== Static Webs
|
118
130
|
|
119
131
|
Overall, statically build web pages having no moving parts in the deployed
|
120
132
|
website. This results in browser-side caching only, the performance
|
121
|
-
goes up, and static sites are far more secure because they *build already
|
122
|
-
|
123
|
-
their ranking in terms of popularity, go for Jamstack. You'll find a
|
124
|
-
comprehensive list of static site generators used today.
|
133
|
+
goes up, and static sites are far more secure because they *build* already
|
134
|
+
and cannot be modified.
|
125
135
|
|
126
|
-
|
136
|
+
To find out what Open Source SSG are available today and their ranking in
|
137
|
+
terms of popularity, go for Jamstack. You'll find a comprehensive list of
|
138
|
+
static site generators used today.
|
127
139
|
|
128
|
-
.Top Ratings at Jamstack of October 2022
|
129
140
|
[role="mb-4"]
|
130
|
-
|
141
|
+
Check the most popular site generators available at the
|
142
|
+
{url-jamstack--generators}[Jamstack, {browser-window--new}]
|
143
|
+
site.
|
144
|
+
|
145
|
+
.Top Ratings at Jamstack of October 2022
|
146
|
+
image::/assets/images/posts/featured/jamstack-generators.jpg["SSGs at Jamstack"]
|