Mastodon 4.6: Collections a další novinky

This commit is contained in:
2026-06-29 20:52:08 +02:00
parent 7902676587
commit d4b7aad17e
245 changed files with 30857 additions and 1244 deletions
+367 -11
View File
@@ -1,17 +1,373 @@
<!doctype html><html lang=en dir=auto data-theme=auto><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><title>Šťastný nový rok 2026 | Oscloud News</title><meta name=keywords content="oscloud,komunita"><meta name=description content="Děkujeme všem, kteří byli součástí OSCloud v roce 2025 — uživatelům, podporovatelům, přispěvatelům i celé komunitě kolem.
<!DOCTYPE html>
<html lang="en" dir="auto" data-theme="auto">
<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>Šťastný nový rok 2026 | Oscloud News</title>
<meta name="keywords" content="oscloud, komunita">
<meta name="description" content="Děkujeme všem, kteří byli součástí OSCloud v roce 2025 — uživatelům, podporovatelům, přispěvatelům i celé komunitě kolem.
Do roku 2026 přejeme hlavně zdraví, klid, stabilní systémy, funkční zálohy a komunitu, která drží při sobě.
Díky, že společně dáváme smysl otevřenému, bezpečnému a komunitnímu cloudu. Těšíme se na další společný rok.
Tým OSCloud"><meta name=author content="oscloud"><link rel=canonical href=https://blog.oscloud.cz/posts/stastny-novy-rok-2026/><link crossorigin=anonymous href=/assets/css/stylesheet.01de0cf7a606abfce8ed6089ab89e1538996376aac8ff05d3c7d2340f377b07c.css integrity="sha256-Ad4M96YGq/zo7WCJq4nhU4mWN2qsj/BdPH0jQPN3sHw=" rel="preload stylesheet" as=style><link rel=icon href=https://blog.oscloud.cz/favicon.ico><link rel=icon type=image/png sizes=16x16 href=https://blog.oscloud.cz/favicon-16x16.png><link rel=icon type=image/png sizes=32x32 href=https://blog.oscloud.cz/favicon-32x32.png><link rel=apple-touch-icon href=https://blog.oscloud.cz/apple-touch-icon.png><link rel=mask-icon href=https://blog.oscloud.cz/safari-pinned-tab.svg><meta name=theme-color content="#2e2e33"><meta name=msapplication-TileColor content="#2e2e33"><link rel=alternate hreflang=en href=https://blog.oscloud.cz/posts/stastny-novy-rok-2026/><noscript><style>#theme-toggle,.top-link{display:none}</style><style>@media(prefers-color-scheme:dark){:root{--theme:rgb(29, 30, 32);--entry:rgb(46, 46, 51);--primary:rgb(218, 218, 219);--secondary:rgb(155, 156, 157);--tertiary:rgb(65, 66, 68);--content:rgb(196, 196, 197);--code-block-bg:rgb(46, 46, 51);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51);color-scheme:dark}.list{background:var(--theme)}.toc{background:var(--entry)}}@media(prefers-color-scheme:light){.list::-webkit-scrollbar-thumb{border-color:var(--code-bg)}}</style></noscript><script>localStorage.getItem("pref-theme")==="dark"?document.querySelector("html").dataset.theme="dark":localStorage.getItem("pref-theme")==="light"?document.querySelector("html").dataset.theme="light":window.matchMedia("(prefers-color-scheme: dark)").matches?document.querySelector("html").dataset.theme="dark":document.querySelector("html").dataset.theme="light"</script><script defer src=https://analytics.oscloud.cz/script.js data-website-id=70aaf052-385c-41fb-9cfe-d3b3c6f54f2d></script><meta property="og:url" content="https://blog.oscloud.cz/posts/stastny-novy-rok-2026/"><meta property="og:site_name" content="Oscloud News"><meta property="og:title" content="Šťastný nový rok 2026"><meta property="og:description" content="Děkujeme všem, kteří byli součástí OSCloud v roce 2025 — uživatelům, podporovatelům, přispěvatelům i celé komunitě kolem.
Tým OSCloud">
<meta name="author" content="oscloud">
<link rel="canonical" href="https://blog.oscloud.cz/posts/stastny-novy-rok-2026/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.01de0cf7a606abfce8ed6089ab89e1538996376aac8ff05d3c7d2340f377b07c.css" integrity="sha256-Ad4M96YGq/zo7WCJq4nhU4mWN2qsj/BdPH0jQPN3sHw=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://blog.oscloud.cz/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://blog.oscloud.cz/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://blog.oscloud.cz/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://blog.oscloud.cz/apple-touch-icon.png">
<link rel="mask-icon" href="https://blog.oscloud.cz/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" hreflang="en" href="https://blog.oscloud.cz/posts/stastny-novy-rok-2026/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-block-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
color-scheme: dark;
}
.list {
background: var(--theme);
}
.toc {
background: var(--entry);
}
}
@media (prefers-color-scheme: light) {
.list::-webkit-scrollbar-thumb {
border-color: var(--code-bg);
}
}
</style>
</noscript>
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.querySelector("html").dataset.theme = 'dark';
} else if (localStorage.getItem("pref-theme") === "light") {
document.querySelector("html").dataset.theme = 'light';
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.querySelector("html").dataset.theme = 'dark';
} else {
document.querySelector("html").dataset.theme = 'light';
}
</script><script defer src="https://analytics.oscloud.cz/script.js" data-website-id="70aaf052-385c-41fb-9cfe-d3b3c6f54f2d"></script>
<meta property="og:url" content="https://blog.oscloud.cz/posts/stastny-novy-rok-2026/">
<meta property="og:site_name" content="Oscloud News">
<meta property="og:title" content="Šťastný nový rok 2026">
<meta property="og:description" content="Děkujeme všem, kteří byli součástí OSCloud v roce 2025 — uživatelům, podporovatelům, přispěvatelům i celé komunitě kolem.
Do roku 2026 přejeme hlavně zdraví, klid, stabilní systémy, funkční zálohy a komunitu, která drží při sobě.
Díky, že společně dáváme smysl otevřenému, bezpečnému a komunitnímu cloudu. Těšíme se na další společný rok.
Tým OSCloud"><meta property="og:locale" content="cs-cz"><meta property="og:type" content="article"><meta property="article:section" content="posts"><meta property="article:published_time" content="2026-01-01T11:20:00+01:00"><meta property="article:modified_time" content="2026-01-01T11:20:00+01:00"><meta property="article:tag" content="Oscloud"><meta property="article:tag" content="Komunita"><meta name=twitter:card content="summary"><meta name=twitter:title content="Šťastný nový rok 2026"><meta name=twitter:description content="Děkujeme všem, kteří byli součástí OSCloud v roce 2025 — uživatelům, podporovatelům, přispěvatelům i celé komunitě kolem.
Tým OSCloud">
<meta property="og:locale" content="cs-cz">
<meta property="og:type" content="article">
<meta property="article:section" content="posts">
<meta property="article:published_time" content="2026-01-01T11:20:00+01:00">
<meta property="article:modified_time" content="2026-01-01T11:20:00+01:00">
<meta property="article:tag" content="Oscloud">
<meta property="article:tag" content="Komunita">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Šťastný nový rok 2026">
<meta name="twitter:description" content="Děkujeme všem, kteří byli součástí OSCloud v roce 2025 — uživatelům, podporovatelům, přispěvatelům i celé komunitě kolem.
Do roku 2026 přejeme hlavně zdraví, klid, stabilní systémy, funkční zálohy a komunitu, která drží při sobě.
Díky, že společně dáváme smysl otevřenému, bezpečnému a komunitnímu cloudu. Těšíme se na další společný rok.
Tým OSCloud"><script type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Posts","item":"https://blog.oscloud.cz/posts/"},{"@type":"ListItem","position":2,"name":"Šťastný nový rok 2026","item":"https://blog.oscloud.cz/posts/stastny-novy-rok-2026/"}]}</script><script type=application/ld+json>{"@context":"https://schema.org","@type":"BlogPosting","headline":"Šťastný nový rok 2026","name":"Šťastný nový rok 2026","description":"Děkujeme všem, kteří byli součástí OSCloud v roce 2025 — uživatelům, podporovatelům, přispěvatelům i celé komunitě kolem.\nDo roku 2026 přejeme hlavně zdraví, klid, stabilní systémy, funkční zálohy a komunitu, která drží při sobě.\nDíky, že společně dáváme smysl otevřenému, bezpečnému a komunitnímu cloudu. Těšíme se na další společný rok.\nTým OSCloud\n","keywords":["oscloud","komunita"],"articleBody":"Děkujeme všem, kteří byli součástí OSCloud v roce 2025 — uživatelům, podporovatelům, přispěvatelům i celé komunitě kolem.\nDo roku 2026 přejeme hlavně zdraví, klid, stabilní systémy, funkční zálohy a komunitu, která drží při sobě.\nDíky, že společně dáváme smysl otevřenému, bezpečnému a komunitnímu cloudu. Těšíme se na další společný rok.\nTým OSCloud\n","wordCount":"52","inLanguage":"en","datePublished":"2026-01-01T11:20:00+01:00","dateModified":"2026-01-01T11:20:00+01:00","author":{"@type":"Person","name":"oscloud"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.oscloud.cz/posts/stastny-novy-rok-2026/"},"publisher":{"@type":"Organization","name":"Oscloud News","logo":{"@type":"ImageObject","url":"https://blog.oscloud.cz/favicon.ico"}}}</script></head><body id=top><header class=header><nav class=nav><div class=logo><a href=https://blog.oscloud.cz/ accesskey=h title="Oscloud News (Alt + H)"><img src=https://blog.oscloud.cz/logo.png alt aria-label=logo height=32>Oscloud News</a><div class=logo-switches><button id=theme-toggle accesskey=t title="(Alt + T)" aria-label="Toggle theme">
<svg id="moon" width="24" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg>
<svg id="sun" width="24" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></button></div></div><ul id=menu><li><a href=https://blog.oscloud.cz/ title=🇨🇿><span>🇨🇿</span></a></li><li><a href=https://blog.oscloud.cz/archives/ title=Archiv><span>Archiv</span></a></li><li><a href=https://blog.oscloud.cz/search/ title=Vyhledávání><span>Vyhledávání</span></a></li><li><a href=https://blog.oscloud.cz/tags/ title=Tagy><span>Tagy</span></a></li></ul></nav></header><main class=main><article class=post-single><header class=post-header><div class=breadcrumbs><a href=https://blog.oscloud.cz/>Home</a>&nbsp;»&nbsp;<a href=https://blog.oscloud.cz/posts/>Posts</a></div><h1 class="post-title entry-hint-parent">Šťastný nový rok 2026</h1><div class=post-meta><span title='2026-01-01 11:20:00 +0100 CET'>1. ledna 2026</span>&nbsp;·&nbsp;<span>1 min</span>&nbsp;·&nbsp;<span>oscloud</span></div></header><div class=post-content><p>Děkujeme všem, kteří byli součástí OSCloud v roce 2025 — uživatelům, podporovatelům, přispěvatelům i celé komunitě kolem.</p><p>Do roku 2026 přejeme hlavně zdraví, klid, stabilní systémy, funkční zálohy a komunitu, která drží při sobě.</p><p>Díky, že společně dáváme smysl otevřenému, bezpečnému a komunitnímu cloudu. Těšíme se na další společný rok.</p><p>Tým OSCloud</p></div><footer class=post-footer><ul class=post-tags><li><a href=https://blog.oscloud.cz/tags/oscloud/>Oscloud</a></li><li><a href=https://blog.oscloud.cz/tags/komunita/>Komunita</a></li></ul><nav class=paginav><a class=prev href=https://blog.oscloud.cz/posts/oscloud-2026/><span class=title>« Prev</span><br><span>OSCloud 2026: Tvoje data, tvoje pravidla</span>
</a><a class=next href=https://blog.oscloud.cz/posts/vhsky-2025/><span class=title>Next »</span><br><span>VHSky.cz ohlédnutí za rokem 2025 🎬</span></a></nav></footer></article></main><footer class=footer><span>&copy; 2026 <a href=https://blog.oscloud.cz/>Oscloud News</a></span> ·
<span>Powered by
<a href=https://gohugo.io/ rel="noopener noreferrer" target=_blank>Hugo</a> &
<a href=https://github.com/adityatelange/hugo-PaperMod/ rel=noopener target=_blank>PaperMod</a></span></footer><a href=#top aria-label="go to top" title="Go to Top (Alt + G)" class=top-link id=top-link accesskey=g><svg viewBox="0 0 12 6" fill="currentColor"><path d="M12 6H0l6-6z"/></svg>
</a><script>let menu=document.getElementById("menu");if(menu){const e=localStorage.getItem("menu-scroll-position");e&&(menu.scrollLeft=parseInt(e,10)),menu.onscroll=function(){localStorage.setItem("menu-scroll-position",menu.scrollLeft)}}document.querySelectorAll('a[href^="#"]').forEach(e=>{e.addEventListener("click",function(e){e.preventDefault();var t=this.getAttribute("href").substr(1);window.matchMedia("(prefers-reduced-motion: reduce)").matches?document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView():document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView({behavior:"smooth"}),t==="top"?history.replaceState(null,null," "):history.pushState(null,null,`#${t}`)})})</script><script>var mybutton=document.getElementById("top-link");window.onscroll=function(){document.body.scrollTop>800||document.documentElement.scrollTop>800?(mybutton.style.visibility="visible",mybutton.style.opacity="1"):(mybutton.style.visibility="hidden",mybutton.style.opacity="0")}</script><script>document.getElementById("theme-toggle").addEventListener("click",()=>{const e=document.querySelector("html");e.dataset.theme==="dark"?(e.dataset.theme="light",localStorage.setItem("pref-theme","light")):(e.dataset.theme="dark",localStorage.setItem("pref-theme","dark"))})</script><script>document.querySelectorAll("pre > code").forEach(e=>{const n=e.parentNode.parentNode,t=document.createElement("button");t.classList.add("copy-code"),t.innerHTML="copy";function s(){t.innerHTML="copied!",setTimeout(()=>{t.innerHTML="copy"},2e3)}t.addEventListener("click",t=>{if("clipboard"in navigator){navigator.clipboard.writeText(e.textContent),s();return}const n=document.createRange();n.selectNodeContents(e);const o=window.getSelection();o.removeAllRanges(),o.addRange(n);try{document.execCommand("copy"),s()}catch{}o.removeRange(n)}),n.classList.contains("highlight")?n.appendChild(t):n.parentNode.firstChild==n||(e.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName=="TABLE"?e.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(t):e.parentNode.appendChild(t))})</script></body></html>
Tým OSCloud">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1 ,
"name": "Posts",
"item": "https://blog.oscloud.cz/posts/"
},
{
"@type": "ListItem",
"position": 2 ,
"name": "Šťastný nový rok 2026",
"item": "https://blog.oscloud.cz/posts/stastny-novy-rok-2026/"
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Šťastný nový rok 2026",
"name": "Šťastný nový rok 2026",
"description": "Děkujeme všem, kteří byli součástí OSCloud v roce 2025 — uživatelům, podporovatelům, přispěvatelům i celé komunitě kolem.\nDo roku 2026 přejeme hlavně zdraví, klid, stabilní systémy, funkční zálohy a komunitu, která drží při sobě.\nDíky, že společně dáváme smysl otevřenému, bezpečnému a komunitnímu cloudu. Těšíme se na další společný rok.\nTým OSCloud\n",
"keywords": [
"oscloud", "komunita"
],
"articleBody": "Děkujeme všem, kteří byli součástí OSCloud v roce 2025 — uživatelům, podporovatelům, přispěvatelům i celé komunitě kolem.\nDo roku 2026 přejeme hlavně zdraví, klid, stabilní systémy, funkční zálohy a komunitu, která drží při sobě.\nDíky, že společně dáváme smysl otevřenému, bezpečnému a komunitnímu cloudu. Těšíme se na další společný rok.\nTým OSCloud\n",
"wordCount" : "52",
"inLanguage": "en",
"datePublished": "2026-01-01T11:20:00+01:00",
"dateModified": "2026-01-01T11:20:00+01:00",
"author":{
"@type": "Person",
"name": "oscloud"
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://blog.oscloud.cz/posts/stastny-novy-rok-2026/"
},
"publisher": {
"@type": "Organization",
"name": "Oscloud News",
"logo": {
"@type": "ImageObject",
"url": "https://blog.oscloud.cz/favicon.ico"
}
}
}
</script>
</head>
<body id="top">
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://blog.oscloud.cz/" accesskey="h" title="Oscloud News (Alt + H)">
<img src="https://blog.oscloud.cz/logo.png" alt="" aria-label="logo"
height="32">Oscloud News</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)" aria-label="Toggle theme">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://blog.oscloud.cz/" title="🇨🇿">
<span>🇨🇿</span>
</a>
</li>
<li>
<a href="https://blog.oscloud.cz/archives/" title="Archiv">
<span>Archiv</span>
</a>
</li>
<li>
<a href="https://blog.oscloud.cz/search/" title="Vyhledávání">
<span>Vyhledávání</span>
</a>
</li>
<li>
<a href="https://blog.oscloud.cz/tags/" title="Tagy">
<span>Tagy</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<article class="post-single">
<header class="post-header">
<div class="breadcrumbs"><a href="https://blog.oscloud.cz/">Home</a>&nbsp;»&nbsp;<a href="https://blog.oscloud.cz/posts/">Posts</a></div>
<h1 class="post-title entry-hint-parent">
Šťastný nový rok 2026
</h1>
<div class="post-meta"><span title='2026-01-01 11:20:00 +0100 CET'>1. ledna 2026</span>&nbsp;·&nbsp;<span>1 min</span>&nbsp;·&nbsp;<span>oscloud</span>
</div>
</header>
<div class="post-content"><p>Děkujeme všem, kteří byli součástí OSCloud v roce 2025 — uživatelům, podporovatelům, přispěvatelům i celé komunitě kolem.</p>
<p>Do roku 2026 přejeme hlavně zdraví, klid, stabilní systémy, funkční zálohy a komunitu, která drží při sobě.</p>
<p>Díky, že společně dáváme smysl otevřenému, bezpečnému a komunitnímu cloudu. Těšíme se na další společný rok.</p>
<p>Tým OSCloud</p>
</div>
<footer class="post-footer">
<ul class="post-tags">
<li><a href="https://blog.oscloud.cz/tags/oscloud/">Oscloud</a></li>
<li><a href="https://blog.oscloud.cz/tags/komunita/">Komunita</a></li>
</ul>
<nav class="paginav">
<a class="prev" href="https://blog.oscloud.cz/posts/oscloud-2026/">
<span class="title">« Prev</span>
<br>
<span>OSCloud 2026: Tvoje data, tvoje pravidla</span>
</a>
<a class="next" href="https://blog.oscloud.cz/posts/vhsky-2025/">
<span class="title">Next »</span>
<br>
<span>VHSky.cz ohlédnutí za rokem 2025 🎬</span>
</a>
</nav>
</footer>
</article>
</main>
<footer class="footer">
<span>&copy; 2026 <a href="https://blog.oscloud.cz/">Oscloud News</a></span> ·
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu');
if (menu) {
const scrollPosition = localStorage.getItem("menu-scroll-position");
if (scrollPosition) {
menu.scrollLeft = parseInt(scrollPosition, 10);
}
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
const html = document.querySelector("html");
if (html.dataset.theme === "dark") {
html.dataset.theme = 'light';
localStorage.setItem("pref-theme", 'light');
} else {
html.dataset.theme = 'dark';
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
<script>
document.querySelectorAll('pre > code').forEach((codeblock) => {
const container = codeblock.parentNode.parentNode;
const copybutton = document.createElement('button');
copybutton.classList.add('copy-code');
copybutton.innerHTML = 'copy';
function copyingDone() {
copybutton.innerHTML = 'copied!';
setTimeout(() => {
copybutton.innerHTML = 'copy';
}, 2000);
}
copybutton.addEventListener('click', (cb) => {
if ('clipboard' in navigator) {
navigator.clipboard.writeText(codeblock.textContent);
copyingDone();
return;
}
const range = document.createRange();
range.selectNodeContents(codeblock);
const selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
try {
document.execCommand('copy');
copyingDone();
} catch (e) { };
selection.removeRange(range);
});
if (container.classList.contains("highlight")) {
container.appendChild(copybutton);
} else if (container.parentNode.firstChild == container) {
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
} else {
codeblock.parentNode.appendChild(copybutton);
}
});
</script>
</body>
</html>