diff --git a/.gitignore b/.gitignore index 6a444981..97d634fc 100644 --- a/.gitignore +++ b/.gitignore @@ -189,3 +189,6 @@ build log_syndication.csv log_feed.csv + +assets/sass/*.css +assets/sass/*.css.map diff --git a/archetypes/post.md b/archetypes/post.md index 423732d7..0da3141d 100644 --- a/archetypes/post.md +++ b/archetypes/post.md @@ -25,6 +25,7 @@ series: - Horror stories - Data and Data Tools - Python's Reptile Env +- My Home Automation Lab reply: repost: like: diff --git a/assets/sass/_imports.scss b/assets/sass/_imports.scss new file mode 100644 index 00000000..3eaf9ddd --- /dev/null +++ b/assets/sass/_imports.scss @@ -0,0 +1 @@ +@import url("https://fonts.googleapis.com/css2?family=Audiowide&family=Rajdhani:wght@300;400;500;600;700&display=swap"); diff --git a/assets/sass/add.scss b/assets/sass/add.scss index 8fb01970..e1e46abe 100644 --- a/assets/sass/add.scss +++ b/assets/sass/add.scss @@ -1,3 +1,5 @@ +@import "_imports"; + @import "root"; @import "pride"; @import "comments"; @@ -11,3 +13,4 @@ @import "share-button"; @import "typewriter"; @import "input"; +@import "xkcd"; diff --git a/assets/sass/menu.scss b/assets/sass/menu.scss index 2b0f3058..f9f5db73 100644 --- a/assets/sass/menu.scss +++ b/assets/sass/menu.scss @@ -13,3 +13,9 @@ } } } + +.menu-link { + font-family: "Audiowide", sans-serif; + font-weight: 400; + font-style: normal; +} diff --git a/assets/sass/root.scss b/assets/sass/root.scss index 76d8c12e..8105c26d 100644 --- a/assets/sass/root.scss +++ b/assets/sass/root.scss @@ -27,3 +27,24 @@ --blockquote-background-color: rgb(75 75 75); } } + +body { + font-family: "Rajdhani", sans-serif; + font-weight: 400; + font-style: normal; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: "Audiowide", sans-serif; +} + +strong { + font-family: "Audiowide", sans-serif; + font-weight: 400; + font-size: 14px; +} diff --git a/assets/sass/xkcd.scss b/assets/sass/xkcd.scss new file mode 100644 index 00000000..e18a7d4e --- /dev/null +++ b/assets/sass/xkcd.scss @@ -0,0 +1,18 @@ +.xkcd-image { + display: flex; + justify-content: center; + width: 100%; +} + +.xkcd-title { + font-family: "Audiowide", sans-serif; + font-weight: 400; + font-style: normal; + font-size: 1.5em; +} + +.xkcd-subtitle { + font-size: 0.8rem; + color: #666; + margin-top: 0.5rem; +} diff --git a/content/micro/2025/07/response-to-response-dnd/index.md b/content/micro/2025/07/response-to-response-dnd/index.md index a0cf5bb5..ea671a2f 100644 --- a/content/micro/2025/07/response-to-response-dnd/index.md +++ b/content/micro/2025/07/response-to-response-dnd/index.md @@ -12,8 +12,8 @@ repost: null rsvp: null tags: - dnd -- selfhosting +- self-hosting title: Response to Response Dnd --- -Thanks, I will testing it and I will share something if is a good thing for my dnd group \ No newline at end of file +Thanks, I will testing it and I will share something if is a good thing for my dnd group diff --git a/content/post/2020/manage-site-and-certificate/index.md b/content/post/2020/manage-site-and-certificate/index.md index e83684c2..9bb1c575 100644 --- a/content/post/2020/manage-site-and-certificate/index.md +++ b/content/post/2020/manage-site-and-certificate/index.md @@ -19,7 +19,7 @@ After my [other post]({{< relref "post/2020/ssl-check-with-a-script/index.md" >} We need to check when the domain expire (DNS Lookup), we need to check if the server are up and the SSL certificate. This is a problem because we need to launch the same commands every day for multiple server every day and some time we forgot a domain or a url and we don't check it for days. And if something boom we need to fix it with *zero down time* so we need to do some sysadmin work. - +{{< xkcd 705 >}} So, for our task, we need : diff --git a/content/post/2026/starting-my-home-automation-experiment/cover.png b/content/post/2026/starting-my-home-automation-experiment/cover.png index 2c532327..e4454b96 100644 Binary files a/content/post/2026/starting-my-home-automation-experiment/cover.png and b/content/post/2026/starting-my-home-automation-experiment/cover.png differ diff --git a/content/post/2026/starting-my-home-automation-experiment/index.md b/content/post/2026/starting-my-home-automation-experiment/index.md index ea30c60f..ba25b954 100644 --- a/content/post/2026/starting-my-home-automation-experiment/index.md +++ b/content/post/2026/starting-my-home-automation-experiment/index.md @@ -4,20 +4,20 @@ date: 2026-03-29T20:46:01+02:00 draft: true feature_link: "https://www.midjourney.com/home/" feature_text: "by IA Midjourney" -description: -isStarred: false +description: "I am starting a Home Automation in my home and this is how I start it" tags: +- home-automation +- hacking +- self-hosting categories: - tinkering - -images: -keywords: series: -- Home Automation -reply: -repost: -like: -rsvp: -bookmark: +- My Home Automation Lab --- +And some time ago I installed the Fiber[^1] in my home and I want to use in the best way, so I start to rework all my local network and I think about adding some home automation. + +[^1]: I pay a company to install it and clean after. + +{{< xkcd 1966 >}} + diff --git a/layouts/shortcodes/xkcd.html b/layouts/shortcodes/xkcd.html new file mode 100644 index 00000000..6b84482a --- /dev/null +++ b/layouts/shortcodes/xkcd.html @@ -0,0 +1,17 @@ +{{ $id := string (.Get 0) }} +{{ $url := printf "https://xkcd.com/%s/info.0.json" $id }} + +{{ with resources.GetRemote $url }} +{{ $data := . | transform.Unmarshal }} +
+{{ else }} +Impossibile recuperare il fumetto xkcd #{{ $id }}.
+{{ end }} diff --git a/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.content b/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.content index f74ca37c..e06a1859 100644 --- a/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.content +++ b/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.content @@ -1 +1 @@ -@charset "UTF-8";:root{--blockquote-border-size:4px;--blockquote-background-color:rgb(248 248 248);--heading-border-size:4px;--link-background-color:189, 195, 199;--link-background-opacity:0.5;--link-background-opacity-hover:0.7;--pre-background-color:#272822;--pre-text-color:#f8f8f2;--code-background-color:rgba(0, 0, 0, 0.12);--code-text-color:#808080;--table-border-color:#dadada;--tr-even-background-color:#efefee}@media(prefers-color-scheme:dark){:root{--code-background-color:#272822;--code-text-color:rgba(255, 255, 255, 0.9);--table-border-color:#717171;--tr-even-background-color:#545454;--blockquote-background-color:rgb(75 75 75)}}@keyframes enterIn{0%{opacity:0}100%{opacity:100}}@media only screen and (min-width:768px){#pridecodes-code-corner-svg{width:150px}}@media only screen and (max-width:767px){#pridecodes-code-corner-svg{width:75px}}#pridecodes-code-corner-svg{animation:enterIn 2s;transition:all .2s ease-in-out}#pridecodes-code-corner-svg:hover{transform:scale(1.1);transform-origin:left top}small,section#comments .comment footer,section#comments .comment time,aside p{font-size:smaller;opacity:.9}section#comments #comments-wrapper{margin:1.5em 0;padding:0 var(--card-padding)}section#comments .comment{display:grid;column-gap:1rem;grid-template-areas:"avatar name" "avatar time" "avatar post" "...... interactions";grid-template-columns:min-content;justify-items:start;margin:0 auto 0 -1em;padding:.5em}section#comments .comment.comment-reply{margin:0 auto 0 1em}section#comments .comment .avatar-link{grid-area:avatar;height:4rem;position:relative;width:4rem}section#comments .comment .avatar-link .avatar{height:100%;width:100%;border-radius:20%}section#comments .comment .avatar-link.op::after{background-color:var(--accent-color);border-radius:50%;bottom:-.25rem;color:var(--accent-color-text);content:"✓";display:block;font-size:1.25rem;font-weight:700;height:1.5rem;line-height:1.5rem;position:absolute;right:-.25rem;text-align:center;width:1.5rem}section#comments .comment .author{align-items:center;display:flex;font-weight:700;gap:.5em;grid-area:name}section#comments .comment .author .instance{background-color:var(--code-background-color);border-radius:9999px;color:var(--neutral);font-size:smaller;font-weight:400;padding:.25em .75em}section#comments .comment .author .instance:hover{opacity:.8;text-decoration:none}section#comments .comment .author .instance.op{background-color:var(--code-background-color);color:var(--accent-color-text)}section#comments .comment .author .instance.op::before{content:"✓";font-weight:700;margin-inline-end:.25em}section#comments .comment time{grid-area:time;line-height:1.5rem}section#comments .comment main{grid-area:post}section#comments .comment main p:first-child{margin-top:.25em}section#comments .comment main p:last-child{margin-bottom:0}section#comments .comment footer{grid-area:interactions}section#comments .comment footer .faves{color:inherit}section#comments .comment footer .faves:hover{opacity:.8;text-decoration:none}section#comments .comment footer .faves::before{color:red;content:"♥";font-size:2rem;margin-inline-end:.25em}section#comments .comment .emoji{display:inline;height:1.25em;vertical-align:middle;width:1.25em}section#comments .comment .invisible{display:none}section#comments .comment .ellipsis::after{content:"…"}#webmentions{margin:0;position:relative;z-index:100;line-height:1.2em}#webmentions .comments{overflow-x:hidden;overflow-y:scroll}#webmentions h2{font-size:medium;margin:0;padding:2px}#webmentions .reacts img{margin:3px -1ex 8px 0}#webmentions img.missing{border:dashed #000 1px}#webmentions ul{list-style-type:none;margin:0;padding:4px}#webmentions li{text-indent:-1em;padding-left:1em}#webmentions a.reaction{position:relative;text-decoration:none;margin-right:0;letter-spacing:-1ex;margin-right:3ex}#webmentions a.reaction img{max-height:3em;width:auto;margin-right:-1ex;border-radius:25%}#webmentions a.reaction sub{font-size:50%}#webmentions .comments li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#webmentions .comments li .text{font-style:italic;text-decoration:none}.author{margin:0}.menu .trigger{float:left;display:flex;align-items:center}@media screen and (max-width:768px){.menu .menu-icon{position:relative}}.center-img{display:flex;justify-content:center;width:80%}.toot{--toot-bg:var(--entry);--toot-border:rgba(0, 0, 0, 0.1);--toot-radius:12px;--toot-shadow:0 1px 3px rgba(0, 0, 0, 0.1);background:var(--toot-bg);border:1px solid var(--toot-border);border-radius:var(--toot-radius);box-shadow:var(--toot-shadow);padding:16px;margin:1.5rem auto;max-width:600px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif}.dark .toot{--toot-border:rgba(255, 255, 255, 0.1);--toot-shadow:0 1px 3px rgba(0, 0, 0, 0.2)}.toot-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.toot-profile img{width:48px;height:48px;border-radius:4px;display:block}.toot-author{display:flex;flex-direction:column;gap:2px}.toot-author-name{color:var(--primary);font-weight:700;text-decoration:none;font-size:15px;line-height:20px}.toot-author-handle{color:var(--secondary);text-decoration:none;font-size:14px;line-height:18px}.toot-content{color:var(--content);font-size:15px;line-height:1.5;margin:12px 0}.toot-content p{margin:0 0 12px}.toot-content p:last-child{margin-bottom:0}.toot-content a{color:#2b90d9;text-decoration:none}.toot-content a:hover{text-decoration:underline}.toot-media-grid{display:grid;grid-gap:8px;margin:12px 0;border-radius:12px;overflow:hidden}.toot-media-grid[data-count="1"]{grid-template-columns:1fr}.toot-media-grid[data-count="2"]{grid-template-columns:repeat(2,1fr)}.toot-media-grid[data-count="3"]{grid-template-columns:repeat(2,1fr)}.toot-media-grid[data-count="3"]>:first-child{grid-column:1/-1}.toot-media-grid[data-count="4"]{grid-template-columns:repeat(2,1fr)}.toot-media-item img{width:100%;height:auto;display:block;border-radius:4px}.toot-footer{margin-top:12px;padding-top:12px;border-top:1px solid var(--toot-border);color:var(--secondary);font-size:14px}.toot-date{color:inherit;text-decoration:none}.toot-date:hover{text-decoration:underline}.page-content a[target=_blank]::after{content:none}.weeknote img{width:140px}share-button{position:fixed;width:60px;height:60px;bottom:40px;left:40px;color:#fff;background-color:#0c9;border-radius:50px;text-align:center}share-button button{background-color:initial;border:none;margin:0;padding:0;text-align:inherit;font:inherit;border-radius:0;appearance:none}share-button:not(:defined){display:none}share-button:not(:defined) button{display:none}share-button:defined{display:none}share-button:defined a{display:none}.my-float{margin-top:22px}@font-face{font-family:typewriter;src:url("/fonts/American Typewriter Regular.ttf")}.typewriter{font-family:typewriter,monospace}input[type=text]{width:100%;font-size:1rem;border-radius:.5em;padding:.5em} \ No newline at end of file +@charset "UTF-8";@import "https://fonts.googleapis.com/css2?family=Audiowide&family=Rajdhani:wght@300;400;500;600;700&display=swap";:root{--blockquote-border-size:4px;--blockquote-background-color:rgb(248 248 248);--heading-border-size:4px;--link-background-color:189, 195, 199;--link-background-opacity:0.5;--link-background-opacity-hover:0.7;--pre-background-color:#272822;--pre-text-color:#f8f8f2;--code-background-color:rgba(0, 0, 0, 0.12);--code-text-color:#808080;--table-border-color:#dadada;--tr-even-background-color:#efefee}@media(prefers-color-scheme:dark){:root{--code-background-color:#272822;--code-text-color:rgba(255, 255, 255, 0.9);--table-border-color:#717171;--tr-even-background-color:#545454;--blockquote-background-color:rgb(75 75 75)}}body{font-family:rajdhani,sans-serif;font-weight:400;font-style:normal}h1,h2,h3,h4,h5,h6{font-family:audiowide,sans-serif}strong{font-family:audiowide,sans-serif;font-weight:400;font-size:14px}@keyframes enterIn{0%{opacity:0}100%{opacity:100}}@media only screen and (min-width:768px){#pridecodes-code-corner-svg{width:150px}}@media only screen and (max-width:767px){#pridecodes-code-corner-svg{width:75px}}#pridecodes-code-corner-svg{animation:enterIn 2s;transition:all .2s ease-in-out}#pridecodes-code-corner-svg:hover{transform:scale(1.1);transform-origin:left top}small,section#comments .comment footer,section#comments .comment time,aside p{font-size:smaller;opacity:.9}section#comments #comments-wrapper{margin:1.5em 0;padding:0 var(--card-padding)}section#comments .comment{display:grid;column-gap:1rem;grid-template-areas:"avatar name" "avatar time" "avatar post" "...... interactions";grid-template-columns:min-content;justify-items:start;margin:0 auto 0 -1em;padding:.5em}section#comments .comment.comment-reply{margin:0 auto 0 1em}section#comments .comment .avatar-link{grid-area:avatar;height:4rem;position:relative;width:4rem}section#comments .comment .avatar-link .avatar{height:100%;width:100%;border-radius:20%}section#comments .comment .avatar-link.op::after{background-color:var(--accent-color);border-radius:50%;bottom:-.25rem;color:var(--accent-color-text);content:"✓";display:block;font-size:1.25rem;font-weight:700;height:1.5rem;line-height:1.5rem;position:absolute;right:-.25rem;text-align:center;width:1.5rem}section#comments .comment .author{align-items:center;display:flex;font-weight:700;gap:.5em;grid-area:name}section#comments .comment .author .instance{background-color:var(--code-background-color);border-radius:9999px;color:var(--neutral);font-size:smaller;font-weight:400;padding:.25em .75em}section#comments .comment .author .instance:hover{opacity:.8;text-decoration:none}section#comments .comment .author .instance.op{background-color:var(--code-background-color);color:var(--accent-color-text)}section#comments .comment .author .instance.op::before{content:"✓";font-weight:700;margin-inline-end:.25em}section#comments .comment time{grid-area:time;line-height:1.5rem}section#comments .comment main{grid-area:post}section#comments .comment main p:first-child{margin-top:.25em}section#comments .comment main p:last-child{margin-bottom:0}section#comments .comment footer{grid-area:interactions}section#comments .comment footer .faves{color:inherit}section#comments .comment footer .faves:hover{opacity:.8;text-decoration:none}section#comments .comment footer .faves::before{color:red;content:"♥";font-size:2rem;margin-inline-end:.25em}section#comments .comment .emoji{display:inline;height:1.25em;vertical-align:middle;width:1.25em}section#comments .comment .invisible{display:none}section#comments .comment .ellipsis::after{content:"…"}#webmentions{margin:0;position:relative;z-index:100;line-height:1.2em}#webmentions .comments{overflow-x:hidden;overflow-y:scroll}#webmentions h2{font-size:medium;margin:0;padding:2px}#webmentions .reacts img{margin:3px -1ex 8px 0}#webmentions img.missing{border:dashed #000 1px}#webmentions ul{list-style-type:none;margin:0;padding:4px}#webmentions li{text-indent:-1em;padding-left:1em}#webmentions a.reaction{position:relative;text-decoration:none;margin-right:0;letter-spacing:-1ex;margin-right:3ex}#webmentions a.reaction img{max-height:3em;width:auto;margin-right:-1ex;border-radius:25%}#webmentions a.reaction sub{font-size:50%}#webmentions .comments li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#webmentions .comments li .text{font-style:italic;text-decoration:none}.author{margin:0}.menu .trigger{float:left;display:flex;align-items:center}@media screen and (max-width:768px){.menu .menu-icon{position:relative}}.menu-link{font-family:audiowide,sans-serif;font-weight:400;font-style:normal}.center-img{display:flex;justify-content:center;width:80%}.toot{--toot-bg:var(--entry);--toot-border:rgba(0, 0, 0, 0.1);--toot-radius:12px;--toot-shadow:0 1px 3px rgba(0, 0, 0, 0.1);background:var(--toot-bg);border:1px solid var(--toot-border);border-radius:var(--toot-radius);box-shadow:var(--toot-shadow);padding:16px;margin:1.5rem auto;max-width:600px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif}.dark .toot{--toot-border:rgba(255, 255, 255, 0.1);--toot-shadow:0 1px 3px rgba(0, 0, 0, 0.2)}.toot-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.toot-profile img{width:48px;height:48px;border-radius:4px;display:block}.toot-author{display:flex;flex-direction:column;gap:2px}.toot-author-name{color:var(--primary);font-weight:700;text-decoration:none;font-size:15px;line-height:20px}.toot-author-handle{color:var(--secondary);text-decoration:none;font-size:14px;line-height:18px}.toot-content{color:var(--content);font-size:15px;line-height:1.5;margin:12px 0}.toot-content p{margin:0 0 12px}.toot-content p:last-child{margin-bottom:0}.toot-content a{color:#2b90d9;text-decoration:none}.toot-content a:hover{text-decoration:underline}.toot-media-grid{display:grid;grid-gap:8px;margin:12px 0;border-radius:12px;overflow:hidden}.toot-media-grid[data-count="1"]{grid-template-columns:1fr}.toot-media-grid[data-count="2"]{grid-template-columns:repeat(2,1fr)}.toot-media-grid[data-count="3"]{grid-template-columns:repeat(2,1fr)}.toot-media-grid[data-count="3"]>:first-child{grid-column:1/-1}.toot-media-grid[data-count="4"]{grid-template-columns:repeat(2,1fr)}.toot-media-item img{width:100%;height:auto;display:block;border-radius:4px}.toot-footer{margin-top:12px;padding-top:12px;border-top:1px solid var(--toot-border);color:var(--secondary);font-size:14px}.toot-date{color:inherit;text-decoration:none}.toot-date:hover{text-decoration:underline}.page-content a[target=_blank]::after{content:none}.weeknote img{width:140px}share-button{position:fixed;width:60px;height:60px;bottom:40px;left:40px;color:#fff;background-color:#0c9;border-radius:50px;text-align:center}share-button button{background-color:initial;border:none;margin:0;padding:0;text-align:inherit;font:inherit;border-radius:0;appearance:none}share-button:not(:defined){display:none}share-button:not(:defined) button{display:none}share-button:defined{display:none}share-button:defined a{display:none}.my-float{margin-top:22px}@font-face{font-family:typewriter;src:url("/fonts/American Typewriter Regular.ttf")}.typewriter{font-family:typewriter,monospace}input[type=text]{width:100%;font-size:1rem;border-radius:.5em;padding:.5em}.xkcd-image{display:flex;justify-content:center;width:100%}.xkcd-title{font-family:audiowide,sans-serif;font-weight:400;font-style:normal;font-size:1.5em}.xkcd-subtitle{font-size:.8rem;color:#666;margin-top:.5rem} \ No newline at end of file diff --git a/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.json b/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.json index b748eba2..1db43802 100644 --- a/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.json +++ b/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.json @@ -1 +1 @@ -{"Target":"add.min.33d130b2d4f20152c6ed4410e3edc02aff59e77cae5bac84015541343a158ffb.css","MediaType":"text/css","Data":{"Integrity":"sha256-M9EwstTyAVLG7UQQ4+3AKv9Z53yuW6yEAVVBNDoVj/s="}} \ No newline at end of file +{"Target":"add.min.855eeee13cf87b04c5f2dc5d26fbb0ee43b90357d4d210186eebe753d1055101.css","MediaType":"text/css","Data":{"Integrity":"sha256-hV7u4Tz4ewTF8txdJvuw7kO5A1fU0hAYbuvnU9EFUQE="}} \ No newline at end of file