From 615a648279fd959d71285a073963b506dcca9548 Mon Sep 17 00:00:00 2001 From: Zhang Anjun Date: Sat, 15 Mar 2025 13:01:04 +0800 Subject: [PATCH] v3.8 --- images/calendar_generator.jpg | Bin 0 -> 24202 bytes images/certtool.jpg | Bin 0 -> 22748 bytes index.html | 12 +++++++++++- 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 images/calendar_generator.jpg create mode 100644 images/certtool.jpg diff --git a/images/calendar_generator.jpg b/images/calendar_generator.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9958a4470f98f200e16eed83fc3dcb9743ff8f82 GIT binary patch literal 24202 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 literal 0 HcmV?d00001 diff --git a/images/certtool.jpg b/images/certtool.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f371ce6972156f09d70003d3ae18d9e6f98b7edd GIT binary patch literal 22748 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 D$2O}i literal 0 HcmV?d00001 diff --git a/index.html b/index.html index ad37e94..14a1ad9 100644 --- a/index.html +++ b/index.html @@ -32,6 +32,11 @@

Recent Work

+
+ +

Calendar Generator

+

A Python script that dynamically creates a formatted monthly calendar. The source code is scheduled to be released on March 27, 2025.

+

PKI Services

@@ -42,6 +47,11 @@

Connect 4

A Python implementation of the classic text-based Connect 4 game (If you don't have access to GitHub, click here).

+
+ +

CertTool

+

CertTool provides the easiest and the safest way to trust our certificates (If you don't have access to GitHub, click here)..

+
@@ -55,7 +65,7 @@