j1-template 2023.8.2 → 2023.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_includes/themes/j1/layouts/content_generator_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"]
|