Compare commits
6 Commits
7d8d0b5d37
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
754347facb
|
|||
|
df811b3b16
|
|||
|
23b175c34c
|
|||
|
51e2ce5a53
|
|||
|
5cb7741903
|
|||
|
629f465b26
|
BIN
public/blog/club-p/banner.webp
Normal file
BIN
public/blog/club-p/banner.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 89 KiB |
BIN
public/blog/club-p/demo.png
Normal file
BIN
public/blog/club-p/demo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 90 KiB |
BIN
public/blog/club-p/dojo.webp
Normal file
BIN
public/blog/club-p/dojo.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
56
src/components/Posthog.astro
Normal file
56
src/components/Posthog.astro
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<script is:inline>
|
||||||
|
!(function (t, e) {
|
||||||
|
var o, n, p, r;
|
||||||
|
e.__SV ||
|
||||||
|
((window.posthog = e),
|
||||||
|
(e._i = []),
|
||||||
|
(e.init = function (i, s, a) {
|
||||||
|
function g(t, e) {
|
||||||
|
var o = e.split(".");
|
||||||
|
2 == o.length && ((t = t[o[0]]), (e = o[1])),
|
||||||
|
(t[e] = function () {
|
||||||
|
t.push([e].concat(Array.prototype.slice.call(arguments, 0)));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
((p = t.createElement("script")).type = "text/javascript"),
|
||||||
|
(p.async = !0),
|
||||||
|
(p.src = s.api_host + "/static/array.js"),
|
||||||
|
(r = t.getElementsByTagName("script")[0]).parentNode.insertBefore(
|
||||||
|
p,
|
||||||
|
r
|
||||||
|
);
|
||||||
|
var u = e;
|
||||||
|
for (
|
||||||
|
void 0 !== a ? (u = e[a] = []) : (a = "posthog"),
|
||||||
|
u.people = u.people || [],
|
||||||
|
u.toString = function (t) {
|
||||||
|
var e = "posthog";
|
||||||
|
return (
|
||||||
|
"posthog" !== a && (e += "." + a), t || (e += " (stub)"), e
|
||||||
|
);
|
||||||
|
},
|
||||||
|
u.people.toString = function () {
|
||||||
|
return u.toString(1) + ".people (stub)";
|
||||||
|
},
|
||||||
|
o =
|
||||||
|
"capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys getNextSurveyStep onSessionId setPersonProperties".split(
|
||||||
|
" "
|
||||||
|
),
|
||||||
|
n = 0;
|
||||||
|
n < o.length;
|
||||||
|
n++
|
||||||
|
)
|
||||||
|
g(u, o[n]);
|
||||||
|
e._i.push([i, s, a]);
|
||||||
|
}),
|
||||||
|
(e.__SV = 1));
|
||||||
|
})(document, window.posthog || []);
|
||||||
|
posthog.init("phc_LaGA9fvYGcEMPtMiJRIAwFsTMyaZaQhtA578GMvT7L7", {
|
||||||
|
api_host: "https://eu.i.posthog.com",
|
||||||
|
person_profiles: "identified_only",
|
||||||
|
});
|
||||||
|
</script>
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
---
|
---
|
||||||
import { SEO } from "astro-seo";
|
import { SEO } from "astro-seo";
|
||||||
|
import Posthog from "../components/Posthog.astro";
|
||||||
|
|
||||||
const { frontmatter } = Astro.props;
|
const { frontmatter } = Astro.props;
|
||||||
import "./MarkdownLayout.css";
|
import "./MarkdownLayout.css";
|
||||||
---
|
---
|
||||||
@@ -41,13 +43,6 @@ import "./MarkdownLayout.css";
|
|||||||
<footer>
|
<footer>
|
||||||
<p class="text-secondary text-center">© 2024 Zvonimir Rudinski</p>
|
<p class="text-secondary text-center">© 2024 Zvonimir Rudinski</p>
|
||||||
</footer>
|
</footer>
|
||||||
|
<Posthog />
|
||||||
<script>
|
|
||||||
const a = document.querySelectorAll("a");
|
|
||||||
a.forEach((el) => {
|
|
||||||
el.setAttribute("target", "_blank");
|
|
||||||
el.setAttribute("rel", "noopener noreferrer");
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -21,3 +21,11 @@
|
|||||||
#content a {
|
#content a {
|
||||||
@apply text-secondary underline;
|
@apply text-secondary underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#content blockquote {
|
||||||
|
@apply bg-gray-800 text-gray-300 border-l-4 border-secondary p-4 my-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content cite {
|
||||||
|
@apply text-secondary;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
import { SEO } from "astro-seo";
|
import { SEO } from "astro-seo";
|
||||||
import { format } from "date-fns";
|
import { format } from "date-fns";
|
||||||
|
import Posthog from "../../components/Posthog.astro";
|
||||||
|
|
||||||
const posts = await Astro.glob("./posts/*.md");
|
const posts = await Astro.glob("./posts/*.md");
|
||||||
|
|
||||||
@@ -68,5 +69,6 @@ posts.sort((a, b) => {
|
|||||||
<footer class="mt-12">
|
<footer class="mt-12">
|
||||||
<p class="text-secondary text-center">© 2024 Zvonimir Rudinski</p>
|
<p class="text-secondary text-center">© 2024 Zvonimir Rudinski</p>
|
||||||
</footer>
|
</footer>
|
||||||
|
<Posthog />
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
69
src/pages/blog/posts/club-penguin.md
Normal file
69
src/pages/blog/posts/club-penguin.md
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
---
|
||||||
|
layout: ../../../layouts/MarkdownLayout.astro
|
||||||
|
title: 'where are you, club penguin?'
|
||||||
|
pubDate: 2024-07-21
|
||||||
|
description: 'A nostalgic piece about Club Penguin, a game that was a big part of my childhood. Also, a mini announcement at the end.'
|
||||||
|
---
|
||||||
|
<blockquote>
|
||||||
|
I honestly, with all my heart, think that Zvonimir just got stuck in 2013<br />
|
||||||
|
and never acknowledged the fact that he's not 13 anymore.
|
||||||
|
</blockquote>
|
||||||
|
<cite>~ A friend of mine</cite>
|
||||||
|
|
||||||
|
What is this post about? Well, it's about a game that was a big part of my childhood, and probably the childhood of many others as well.
|
||||||
|
|
||||||
|
The game ~is~ was called Club Penguin.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
If you do not remember Club Penguin, chances are you were not a child in the 2000s. <small>(you're either too old or too young)</small>
|
||||||
|
|
||||||
|
Club Penguin was a virtual world where you could create your own penguin, decorate your igloo, play games, and chat with other players.
|
||||||
|
The games ranged from anything like sled racing to card games, and they were all fun in their own way <small>(The Card-Jitsu was my favorite)</small>.
|
||||||
|
You could earn coins by playing games, and you could use those coins to buy clothes, furniture, and other items for your penguin.
|
||||||
|
|
||||||
|
The only downside was that you had to be a member to access all the features, but even without a membership, the game was still fun.
|
||||||
|
I could still buy an item or two for my penguin, and I could still play most of the games. <small>(There was even a complete quest line about being a secret agent!)</small>
|
||||||
|
|
||||||
|
It was a game that was simple, yet fun, and it was a game that I spent countless hours playing while blasting my favorite artists!
|
||||||
|
|
||||||
|
If you're wondering, my favorite artists were (and still are) Avril Lavigne, Green Day, Blink-182 and Nirvana. (<small>Yes, I was an edgy kid</small>)
|
||||||
|
|
||||||
|
Keep in mind, this was before I discovered Pink Floyd, which I consider the greatest band of all time. (<small>Yes, I'm still an edgy kid</small>)
|
||||||
|
|
||||||
|
# Unfortunately,
|
||||||
|
Club Penguin was shut down in 2017, and it was replaced by a mobile version called Club Penguin Island. But it was not the same.
|
||||||
|
|
||||||
|
The original Club Penguin was the best, and nothing can replace it.
|
||||||
|
Oh, and also the mobile version was shut down in 2018, so there's that.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Now, where are you, Club Penguin?
|
||||||
|
|
||||||
|
I know that the original feeling might never come back, but there are some private servers that are trying to bring back the game.
|
||||||
|
|
||||||
|
I won't mention any of them here, but if you're interested, you can find them with a simple Google search.
|
||||||
|
|
||||||
|
Since I'm talking about Club Penguin, I might as well mention that I'm working on a small project related to the game.
|
||||||
|
|
||||||
|
## Well, kind of.
|
||||||
|
|
||||||
|
The project is not a game yet, and it's VERY lacking in features, but it's a start.
|
||||||
|
|
||||||
|
I cannot overstate how much I love Club Penguin, and I wanted to create something that would bring back some of the nostalgia.
|
||||||
|
|
||||||
|
So, I started creating... *(drum roll...)*
|
||||||
|
|
||||||
|
# Club Cat... *(crickets...)*
|
||||||
|
|
||||||
|
I know, I know, the name is a blatant rip-off of Club Penguin, but I couldn't think of anything better <small>(for now)</small>.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The project if we can even call it that, is a simple chat room with cats instead of penguins.
|
||||||
|
|
||||||
|
Nothing is animated, nor there is any multiplayer for that matter, but it's a start.
|
||||||
|
You can click around the canvas and talk to yourself, but that's about it.
|
||||||
|
I'm planning to add more features in the future, but I'm not sure when that will happen, as I have other work to tend to as well.
|
||||||
|
|
||||||
@@ -14,6 +14,6 @@ If you don't like the content, remember that you can always close the tab and go
|
|||||||
|
|
||||||
At some point I'd also like to add a comments section to the posts, but I'm too lazy to do that right now. <small>(I'm sorry)</small>
|
At some point I'd also like to add a comments section to the posts, but I'm too lazy to do that right now. <small>(I'm sorry)</small>
|
||||||
|
|
||||||
I hope you enjoy the content I post here, and if you have any suggestions or feedback, feel free to contact me! <small>(zvonimir@mailfence.com)</small>
|
I hope you enjoy the content I post here, and if you have any suggestions or feedback, feel free to contact me! <small>(zvonimir@zvonimir.xyz)</small>
|
||||||
|
|
||||||
<small>PS: The website is not hosted on GitHub Pages anymore :)</small>
|
<small>PS: The website is not hosted on GitHub Pages anymore :)</small>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { SEO } from "astro-seo";
|
|||||||
import { Icon } from "astro-icon/components";
|
import { Icon } from "astro-icon/components";
|
||||||
import Section from "../components/Section.astro";
|
import Section from "../components/Section.astro";
|
||||||
import { projects } from "../projects";
|
import { projects } from "../projects";
|
||||||
|
import Posthog from "../components/Posthog.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
@@ -79,7 +80,7 @@ import { projects } from "../projects";
|
|||||||
<div class="flex gap-4 mt-4">
|
<div class="flex gap-4 mt-4">
|
||||||
<abbr title="Send me an email">
|
<abbr title="Send me an email">
|
||||||
<a
|
<a
|
||||||
href="mailto:zvonimir@mailfence.com"
|
href="mailto:zvonimir@zvonimir.xyz"
|
||||||
class="opacity-50 hover:opacity-100 hover:text-secondary"
|
class="opacity-50 hover:opacity-100 hover:text-secondary"
|
||||||
>
|
>
|
||||||
<Icon name="mdi:email" size={32} />
|
<Icon name="mdi:email" size={32} />
|
||||||
@@ -127,5 +128,6 @@ import { projects } from "../projects";
|
|||||||
|
|
||||||
window.addEventListener("DOMContentLoaded", onMount);
|
window.addEventListener("DOMContentLoaded", onMount);
|
||||||
</script>
|
</script>
|
||||||
|
<Posthog />
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { SEO } from "astro-seo";
|
|||||||
import { getProject, projects } from "../../projects";
|
import { getProject, projects } from "../../projects";
|
||||||
import Section from "../../components/Section.astro";
|
import Section from "../../components/Section.astro";
|
||||||
import { Icon } from "astro-icon/components";
|
import { Icon } from "astro-icon/components";
|
||||||
|
import Posthog from "../../components/Posthog.astro";
|
||||||
|
|
||||||
export const getStaticPaths = (() => {
|
export const getStaticPaths = (() => {
|
||||||
return projects.map(({ id }) => ({
|
return projects.map(({ id }) => ({
|
||||||
@@ -110,5 +111,6 @@ const image = (await import(`../../assets/${project.id}.png`)).default;
|
|||||||
<footer class="mt-12">
|
<footer class="mt-12">
|
||||||
<p class="text-secondary text-center">© 2024 Zvonimir Rudinski</p>
|
<p class="text-secondary text-center">© 2024 Zvonimir Rudinski</p>
|
||||||
</footer>
|
</footer>
|
||||||
|
<Posthog />
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user