Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
01322e7
chore: move global style to `global.scss`
nguyenhy Oct 1, 2025
9d1e45f
style: mermaid tools with/without hover
nguyenhy Oct 1, 2025
4cf8e36
doc: update `js-runtime` section and example flowchart
nguyenhy Oct 1, 2025
ce055aa
feat: add `favicon`
nguyenhy Oct 3, 2025
c1242d0
feat: add FaviconHead component with favicon and touch icons links
nguyenhy Oct 3, 2025
a362003
feat: remove old favicon.svg and replace with FaviconHead component
nguyenhy Oct 3, 2025
5e5b71d
feat: add site description and slogan constants for blog
nguyenhy Oct 3, 2025
d59ccc9
style: prevent margin on code block inside `playground`
nguyenhy Oct 6, 2025
482f7a2
feat(playground): allow create code block with filename
nguyenhy Oct 6, 2025
c29d8b7
feat: margin-bottom of all custom element `astro-playground`
nguyenhy Oct 6, 2025
8d42eb5
fix(playground): reduce layout flickering
nguyenhy Oct 6, 2025
90d111a
blog: browser rendering pipeline
nguyenhy Oct 6, 2025
ad7df36
blog: show the number on UI
nguyenhy Oct 6, 2025
68e6eb3
blog: update content of future writing article
nguyenhy Oct 6, 2025
10e547e
feat: add `latest updated` of each blog in the list
nguyenhy Oct 6, 2025
263aa19
Merge pull request #54 from nguyenhy/blog/js-runtime
nguyenhy Oct 6, 2025
6e4eafc
Merge pull request #57 from nguyenhy/blog/js-rendering-pipeline
nguyenhy Oct 6, 2025
fd5d738
Merge pull request #55 from nguyenhy/feat/favicon
nguyenhy Oct 6, 2025
f9490c4
0.0.2
nguyenhy Oct 7, 2025
895bddd
Merge pull request #58 from nguyenhy/blog/js-rendering-pipeline
nguyenhy Oct 7, 2025
3345b56
Merge branch 'dev' of github.com:nguyenhy/nguyenhy.github.io into dep…
nguyenhy Oct 7, 2025
37b4f11
fix(logo): correct path to logo of PWD's `manifest.json`
nguyenhy Oct 7, 2025
73ffacb
chore: update `rss` title
nguyenhy Oct 7, 2025
250e238
feat: dynamic `robots.txt` file
nguyenhy Oct 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"name": "hyn",
"description": "Personal blog to explore fresh insights and elevate your tech skills daily with innovative articles and guidance",
"type": "module",
"version": "0.0.1",
"version": "0.0.2",
"scripts": {
"dev": "astro dev --force",
"build": "astro build --force",
Expand Down
9 changes: 0 additions & 9 deletions public/favicon.svg

This file was deleted.

Binary file added public/logo/android-icon-144x144.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/android-icon-192x192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/android-icon-36x36.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/android-icon-48x48.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/android-icon-72x72.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/android-icon-96x96.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/apple-icon-114x114.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/apple-icon-120x120.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/apple-icon-144x144.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/apple-icon-152x152.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/apple-icon-180x180.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/apple-icon-57x57.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/apple-icon-60x60.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/apple-icon-72x72.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/apple-icon-76x76.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/apple-icon-precomposed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/apple-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions public/logo/browserconfig.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
Binary file added public/logo/favicon-16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/favicon-96x96.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/favicon.ico
Binary file not shown.
66 changes: 66 additions & 0 deletions public/logo/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
{
"name": "Hyn - Discover new perspective",
"short_name": "hyn",
"start_url": "/",
"display": "standalone",
"protocol_handlers": [
{
"protocol": "web+hyn",
"url": "/blog?path=%s"
}
],
"screenshots": [
{
"src": "\/logo_source/h-high-resolution-logo.png",
"sizes": "2000x2000",
"type": "image/png",
"form_factor": "wide",
"label": "Screenshot 1"
},
{
"src": "\/logo_source/h-high-resolution-logo.png",
"sizes": "2000x2000",
"type": "image/png",
"platform": "ios",
"label": "Screenshot 1"
}
],
"icons": [
{
"src": "\/logo\/android-icon-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "\/logo\/android-icon-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "\/logo\/android-icon-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "\/logo\/android-icon-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "\/logo\/android-icon-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "\/logo\/android-icon-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"
}
]
}
Binary file added public/logo/ms-icon-144x144.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/ms-icon-150x150.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/ms-icon-310x310.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo/ms-icon-70x70.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/logo_source/h-high-resolution-logo.png
4 changes: 3 additions & 1 deletion src/components/BaseHead.astro
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import type { ImageMetadata } from "astro";
import FallbackImage from "../assets/blog-placeholder-1.jpg";
import { SITE_TITLE } from "../consts";
import FaviconHead from './FaviconHead.astro'

interface Props {
title: string;
Expand All @@ -19,7 +20,6 @@ const { title, description, image = FallbackImage } = Astro.props;
<!-- Global Metadata -->
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="sitemap" href="/sitemap-index.xml" />
<link
rel="alternate"
Expand Down Expand Up @@ -66,3 +66,5 @@ const { title, description, image = FallbackImage } = Astro.props;
<meta property="twitter:title" content={title} />
<meta property="twitter:description" content={description} />
<meta property="twitter:image" content={new URL(image.src, Astro.url)} />

<FaviconHead />
20 changes: 20 additions & 0 deletions src/components/FaviconHead.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
---

<link rel="apple-touch-icon" sizes="57x57" href="/logo/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/logo/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/logo/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/logo/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/logo/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/logo/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/logo/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/logo/favicon-16x16.png">
<link rel="manifest" href="/logo/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/logo/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
11 changes: 11 additions & 0 deletions src/components/Mermaid.astro
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ const cid = randStr();

display: block;

margin-bottom: 20px;

&:active {
cursor: grabbing;
}
Expand All @@ -86,6 +88,13 @@ const cid = randStr();

display: flex;
flex-direction: row;

opacity: 1;
transition: 100ms linear;

&:not(:hover) {
opacity: 0.3;
}
}
.o--mermaid_tool {
width: 30px;
Expand All @@ -97,6 +106,8 @@ const cid = randStr();
line-height: 16px;
cursor: pointer;

background-color: inherit;

svg {
fill: white;
}
Expand Down
38 changes: 34 additions & 4 deletions src/components/playground/WebPlayground.astro
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@ import { combiner } from "./web";

interface Props {
html?: string;
htmlFileName?: string;
css?: string;
cssFileName?: string;
js?: string;
jsFileName?: string;
}

const cid = randStr("o--playground-");
Expand All @@ -24,13 +27,37 @@ const props = Astro.props;
</div>
<div class="o--tab_contents">
<div class="o--tab_content o--playground_code m--html">
{props.html && <Code lang="html" code={props.html} />}
{
props.html && (
<Code
lang="html"
code={props.html}
title={props.htmlFileName}
/>
)
}
</div>
<div class="o--tab_content o--playground_code m--css">
{props.css && <Code lang="css" code={props.css} />}
{
props.css && (
<Code
lang="css"
code={props.css}
title={props.cssFileName}
/>
)
}
</div>
<div class="o--tab_content o--playground_code m--js">
{props.js && <Code lang="javascript" code={props.js} />}
{
props.js && (
<Code
lang="javascript"
code={props.js}
title={props.jsFileName}
/>
)
}
</div>
<div class="o--tab_content o--playground_preview m--preview"></div>
</div>
Expand Down Expand Up @@ -75,7 +102,6 @@ const props = Astro.props;
}

let grid = 1;
this.setAttribute("data-layout", "grid");
this.setAttribute("data-tab-preview", "");
if (html) {
this.setAttribute("data-tab-html", "");
Expand All @@ -91,6 +117,7 @@ const props = Astro.props;
}
this.setAttribute("data-grid", grid.toString());
this.setAttribute("data-active_tab", "preview");
this.setAttribute("data-layout", "grid");

const $btns =
this.querySelectorAll<HTMLButtonElement>(".o--tab_nav");
Expand Down Expand Up @@ -225,6 +252,9 @@ const props = Astro.props;
}
}
}
&:not([data-layout]) {
display: none;
}
}
.o--playground_code {
:global(.expressive-code) {
Expand Down
3 changes: 2 additions & 1 deletion src/consts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
// You can import this data from anywhere in your site by using the `import` keyword.

export const SITE_TITLE = "hyn";
export const SITE_DESCRIPTION = "Welcome to my website!";
export const SITE_SLOGAN = "Discover new perspective";
export const SITE_DESCRIPTION = "Personal blog to explore fresh insights and elevate your tech skills daily with innovative articles and guidance";
export const SITE_LINK_GITHUB = "https://github.com/nguyenhy";
Loading