diff --git a/.github/workflows/pages-deploy.yml b/.github/workflows/pages-deploy.yml
index c33b2a6..cc28f99 100644
--- a/.github/workflows/pages-deploy.yml
+++ b/.github/workflows/pages-deploy.yml
@@ -42,7 +42,7 @@ jobs:
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
- ruby-version: 3.2
+ ruby-version: 3.3
bundler-cache: true
- name: Build site
@@ -53,7 +53,7 @@ jobs:
- name: Test site
run: |
bundle exec htmlproofer _site \
- \-\-disable-external=true \
+ \-\-disable-external \
\-\-ignore-urls "/^http:\/\/127.0.0.1/,/^http:\/\/0.0.0.0/,/^http:\/\/localhost/"
- name: Upload site artifact
diff --git a/.gitignore b/.gitignore
index cee9e12..d6bf509 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@ Gemfile.lock
# Jekyll cache
.jekyll-cache
+.jekyll-metadata
_site
# RubyGems
@@ -16,6 +17,10 @@ package-lock.json
# IDE configurations
.idea
+.vscode
+!.vscode/settings.json
+!.vscode/extensions.json
# Misc
+_sass/dist
assets/js/dist
diff --git a/Gemfile b/Gemfile
index a3eebd6..79c7434 100644
--- a/Gemfile
+++ b/Gemfile
@@ -2,10 +2,10 @@
source "https://rubygems.org"
-gem "jekyll-theme-chirpy", "~> 6.2", ">= 6.5.5"
+gem "jekyll-theme-chirpy", "~> 7.0", ">= 7.0.1"
group :test do
- gem "html-proofer", "~> 4.4"
+ gem "html-proofer", "~> 5.0"
end
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
diff --git a/README.md b/README.md
index 1f4210b..bdcc8ae 100644
--- a/README.md
+++ b/README.md
@@ -1,81 +1,61 @@
-
+# Chirpy Starter
- # Chirpy Jekyll Theme
+[][gem]
+[][mit]
- A minimal, responsive, and feature-rich Jekyll theme for technical writing.
+When installing the [**Chirpy**][chirpy] theme through [RubyGems.org][gem], Jekyll can only read files in the folders
+`_data`, `_layouts`, `_includes`, `_sass` and `assets`, as well as a small part of options of the `_config.yml` file
+from the theme's gem. If you have ever installed this theme gem, you can use the command
+`bundle info --path jekyll-theme-chirpy` to locate these files.
- [][gem]
- [][ci]
- [][codacy]
- [][license]
- [](https://996.icu)
+The Jekyll team claims that this is to leave the ball in the user’s court, but this also results in users not being
+able to enjoy the out-of-the-box experience when using feature-rich themes.
- [**Live Demo** →][demo]
+To fully use all the features of **Chirpy**, you need to copy the other critical files from the theme's gem to your
+Jekyll site. The following is a list of targets:
- [][demo]
+```shell
+.
+├── _config.yml
+├── _plugins
+├── _tabs
+└── index.html
+```
-
+To save you time, and also in case you lose some files while copying, we extract those files/configurations of the
+latest version of the **Chirpy** theme and the [CD][CD] workflow to here, so that you can start writing in minutes.
-## Features
+## Prerequisites
-- Dark / Light Theme Mode
-- Localized UI language
-- Pinned Posts on Home Page
-- Hierarchical Categories
-- Trending Tags
-- Table of Contents
-- Last Modified Date
-- Syntax Highlighting
-- Mathematical Expressions
-- Mermaid Diagrams & Flowcharts
-- Dark / Light Mode Images
-- Embed Videos
-- Disqus / Giscus / Utterances Comments
-- Built-in Search
-- Atom Feeds
-- PWA
-- Google Analytics / GoatCounter
-- SEO & Performance Optimization
+Follow the instructions in the [Jekyll Docs](https://jekyllrb.com/docs/installation/) to complete the installation of
+the basic environment. [Git](https://git-scm.com/) also needs to be installed.
-## Documentation
+## Installation
-To learn how to use, develop, and upgrade the project, please refer to the [Wiki][wiki].
+Sign in to GitHub and [**use this template**][use-template] to generate a brand new repository and name it
+`USERNAME.github.io`, where `USERNAME` represents your GitHub username.
+
+Then clone it to your local machine and run:
+
+```console
+$ bundle
+```
+
+## Usage
+
+Please see the [theme's docs](https://github.com/cotes2020/jekyll-theme-chirpy#documentation).
## Contributing
-Contributions (_pull requests_, _issues_, and _discussions_) are what make the open-source community such an amazing place
-to learn, inspire, and create. Any contributions you make are greatly appreciated.
-For details, see the "[Contributing Guidelines][contribute-guide]".
-
-## Credits
-
-### Contributors
-
-Thanks to [all the contributors][contributors] involved in the development of the project!
-
-[][contributors]
- —— Made with [contrib.rocks](https://contrib.rocks)
-
-### Third-Party Assets
-
-This project is built on the [Jekyll][jekyllrb] ecosystem and some [great libraries][lib], and is developed using [VS Code][vscode] as well as tools provided by [JetBrains][jetbrains] under a non-commercial open-source software license.
-
-The avatar and favicon for the project's website are from [ClipartMAX][clipartmax].
+The contents of this repository are automatically updated when new releases are made to the [main repository][chirpy].
+If you have problems using it, or would like to participate in improving it, please go to the main repository for feedback!
## License
-This project is published under [MIT License][license].
+This work is published under [MIT][mit] License.
[gem]: https://rubygems.org/gems/jekyll-theme-chirpy
-[ci]: https://github.com/cotes2020/jekyll-theme-chirpy/actions/workflows/ci.yml?query=event%3Apush+branch%3Amaster
-[codacy]: https://app.codacy.com/gh/cotes2020/jekyll-theme-chirpy/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade
-[license]: https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/LICENSE
-[jekyllrb]: https://jekyllrb.com/
-[clipartmax]: https://www.clipartmax.com/middle/m2i8b1m2K9Z5m2K9_ant-clipart-childrens-ant-cute/
-[demo]: https://cotes2020.github.io/chirpy-demo/
-[wiki]: https://github.com/cotes2020/jekyll-theme-chirpy/wiki
-[contribute-guide]: https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md
-[contributors]: https://github.com/cotes2020/jekyll-theme-chirpy/graphs/contributors
-[lib]: https://github.com/cotes2020/chirpy-static-assets
-[vscode]: https://code.visualstudio.com/
-[jetbrains]: https://www.jetbrains.com/?from=jekyll-theme-chirpy
\ No newline at end of file
+[chirpy]: https://github.com/cotes2020/jekyll-theme-chirpy/
+[use-template]: https://github.com/cotes2020/chirpy-starter/generate
+[CD]: https://en.wikipedia.org/wiki/Continuous_deployment
+[mit]: https://github.com/cotes2020/chirpy-starter/blob/master/LICENSE
diff --git a/_config.yml b/_config.yml
index 0b4403a..e473033 100644
--- a/_config.yml
+++ b/_config.yml
@@ -45,16 +45,36 @@ social:
- https://www.facebook.com/RajuKottedi435
- https://www.linkedin.com/in/bangararajuk/
-google_site_verification: # fill in to your verification string
+# Site Verification Settings
+webmaster_verifications:
+ google: # fill in your Google verification code
+ bing: # fill in your Bing verification code
+ alexa: # fill in your Alexa verification code
+ yandex: # fill in your Yandex verification code
+ baidu: # fill in your Baidu verification code
+ facebook: # fill in your Facebook verification code
# ↑ --------------------------
# The end of `jekyll-seo-tag` settings
-google_analytics:
- id:
+# Web Analytics Settings
+analytics:
+ google:
+ id: # fill in your Google Analytics ID
+ goatcounter:
+ id: # fill in your GoatCounter ID
+ umami:
+ id: # fill in your Umami ID
+ domain: # fill in your Umami domain
+ matomo:
+ id: # fill in your Matomo ID
+ domain: # fill in your Matomo domain
+ cloudflare:
+ id: # fill in your Cloudflare Web Analytics token
-goatcounter:
- id: # fill in your Goatcounter ID
+# Pageviews settings
+pageviews:
+ provider: # now only supports 'goatcounter'
# Prefer color scheme setting.
#
@@ -69,12 +89,12 @@ goatcounter:
#
theme_mode: # [light | dark]
-# The CDN endpoint for images.
+# The CDN endpoint for media resources.
# Notice that once it is assigned, the CDN url
-# will be added to all image (site avatar & posts' images) paths starting with '/'
+# will be added to all media resources (site avatar, posts' images, audio and video files) paths starting with '/'
#
# e.g. 'https://cdn.com'
-img_cdn:
+cdn:
# the avatar on sidebar, support local or CORS resources
avatar: /assets/img/avatar.jpg
@@ -87,7 +107,8 @@ social_preview_image: # string, local or CORS resources
toc: true
comments:
- active: 'remark42' # The global switch for posts comments, e.g., 'disqus'. Keep it empty means disable
+# Global switch for the post comment system. Keeping it empty means disabled.
+ provider: 'remark42' # [disqus | utterances | giscus]
# The active options are as follows:
# remark42 settings > https://remark42.com/
remark42:
@@ -105,6 +126,7 @@ comments:
category:
category_id:
mapping: # optional, default to 'pathname'
+ strict: # optional, default to '0'
input_position: # optional, default to 'bottom'
lang: # optional, default to the value of `site.lang`
reactions_enabled: # optional, default to the value of `1`
@@ -136,6 +158,7 @@ baseurl: "/blog"
# ------------ The following options are not recommended to be modified ------------------
kramdown:
+ footnote_backlink: "↩︎"
syntax_highlighter: rouge
syntax_highlighter_opts: # Rouge Options › https://github.com/jneen/rouge#full-options
css_class: highlight
@@ -196,7 +219,7 @@ exclude:
- tools
- README.md
- LICENSE
- - rollup.config.js
+ - "*.config.js"
- package*.json
- db_scripts
- frontmatter.json
diff --git a/_data/share.yml b/_data/share.yml
index ee8e6e8..671b646 100644
--- a/_data/share.yml
+++ b/_data/share.yml
@@ -22,7 +22,7 @@ platforms:
#
# - type: Weibo
# icon: "fab fa-weibo"
- # link: "http://service.weibo.com/share/share.php?title=TITLE&url=URL"
+ # link: "https://service.weibo.com/share/share.php?title=TITLE&url=URL"
#
# - type: Mastodon
# icon: "fa-brands fa-mastodon"
diff --git a/_drafts/2024-07-08-anatomy-of-a-csrf-attack.md b/_drafts/2024-07-08-anatomy-of-a-csrf-attack.md
new file mode 100644
index 0000000..9d05e20
--- /dev/null
+++ b/_drafts/2024-07-08-anatomy-of-a-csrf-attack.md
@@ -0,0 +1,8 @@
+---
+title: Anatomy of a CSRF Attack
+date: 2024-07-08 0:00:00 +5:30
+tags:
+ - csrf
+ - security
+slug: anatomy-csrf-attack
+---
diff --git a/_includes/comments.html b/_includes/comments.html
index 8b9e1dc..2c2605a 100644
--- a/_includes/comments.html
+++ b/_includes/comments.html
@@ -1,5 +1,5 @@
-{% if page.comments and site.comments.active %}
- {% capture path %}comments/{{ site.comments.active }}.html{% endcapture %}
+{% if page.comments and site.comments.provider %}
+ {% capture path %}comments/{{ site.comments.provider }}.html{% endcapture %}
{% include {{ path }} %}
{% endif %}
\ No newline at end of file
diff --git a/_includes/head.html b/_includes/head.html
index 330aa62..5432fd1 100644
--- a/_includes/head.html
+++ b/_includes/head.html
@@ -20,7 +20,7 @@
{% unless src contains '://' %}
{%- capture img_url -%}
- {% include img-url.html src=src img_path=page.img_path absolute=true %}
+ {% include media-url.html src=src subpath=page.media_subpath absolute=true %}
{%- endcapture -%}
{%- capture old_url -%}{{ src | absolute_url }}{%- endcapture -%}
@@ -31,7 +31,7 @@
{% elsif site.social_preview_image %}
{%- capture img_url -%}
- {% include img-url.html src=site.social_preview_image absolute=true %}
+ {% include media-url.html src=site.social_preview_image absolute=true %}
{%- endcapture -%}
{%- capture og_image -%}
@@ -59,34 +59,30 @@
{% include_cached favicons.html %}
- {% if site.resources.ignore_env != jekyll.environment and site.resources.self_hosted %}
-
-
- {% else %}
- {% for cdn in site.data.origin[type].cdns %}
-
-
- {% endfor %}
-
-
- {% endif %}
-
-
- {% if jekyll.environment == 'production' and site.google_analytics.id != empty and site.google_analytics.id %}
-
-
-
-
-
- {% endif %}
+
+ {% unless site.assets.self_host.enabled %}
+ {% for hint in site.data.origin.cors.resource_hints %}
+ {% for link in hint.links %}
+
+ {% endfor %}
+ {% endfor %}
+ {% endunless %}
-
+ {% unless jekyll.environment == 'production' %}
+
+ {% endunless %}
-
+
+
+
+
+
+
+
-
+
{% if site.toc and page.toc %}
@@ -97,8 +93,8 @@
{% endif %}
{% if page.layout == 'page' or page.layout == 'post' %}
-
-
+
+
{% endif %}
diff --git a/_includes/likes-views.html b/_includes/likes-views.html
index 336310a..7688271 100644
--- a/_includes/likes-views.html
+++ b/_includes/likes-views.html
@@ -46,6 +46,10 @@
if(Number(views.innerText) !== NaN){
postDetails.views = Number(views.innerText);
}
+ if(postDetails.modifiedDate === ""){
+ postDetails.modifiedDate = postDetails.createdDate;
+ }
+
ajax(serviceUrl + "/CreatePost", "POST", postDetails)
.then(function (result) {
if(result != "N/A"){
diff --git a/_layouts/default.html b/_layouts/default.html
index 19efb13..651829c 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -12,7 +12,7 @@ layout: compress
{% endif %}
-
+
{% include head.html %}
@@ -82,14 +82,9 @@ layout: compress
{% endif %}
+ {% include js-selector.html lang=lang %}
- {% include js-selector.html %}
-
- {% if page.mermaid %}
- {% include mermaid.html %}
- {% endif %}
-
- {% include_cached search-loader.html %}
+ {% include_cached search-loader.html lang=lang %}
\ No newline at end of file
diff --git a/_layouts/post.html b/_layouts/post.html
index b1dbc9c..839aa71 100644
--- a/_layouts/post.html
+++ b/_layouts/post.html
@@ -14,6 +14,9 @@ tail_includes: