website

#astro#js#html#css

git clone https://git.pyrossh.dev/website

木 Personal website of pyrossh. Built with astrojs, shiki, vite.


src/_includes/layout.njk
3c79a68 1
<!DOCTYPE html>
3c79a68 2
<html lang="en">
3c79a68 3
  <head>
3c79a68 4
    <meta charset="utf-8" />
3c79a68 5
    <script>
3c79a68 6
      var theme = localStorage.getItem("theme");
3c79a68 7
      if (theme === "dark" || theme === "light") {
3c79a68 8
        document.documentElement.setAttribute("data-theme", theme);
3c79a68 9
      }
3c79a68 10
    </script>
3c79a68 11
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
3c79a68 12
    <meta name="theme-color" content="#131618" />
3c79a68 13
    <link rel="icon" type="image/svg+xml" href="/assets/icons/icon.svg" />
3c79a68 14
    <link rel="alternate" type="application/rss+xml" title="{{ title or site.title }}" href="/rss.xml" />
3c79a68 15
    <link rel="canonical" href="{{ site.url }}{{ page.url }}" />
44991dd 16
    <link rel="stylesheet" href="/assets/css/bundle.css" />
3c79a68 17
    <title>{{ title or site.title }}</title>
3c79a68 18
    <meta name="title" content="{{ title or site.title }}" />
3c79a68 19
    <meta name="description" content="{{ description or site.description }}" />
3c79a68 20
    <meta property="og:title" content="{{ title or site.title }}" />
3c79a68 21
    <meta property="og:description" content="{{ description or site.description }}" />
3c79a68 22
    <meta property="og:image" content="/assets/icons/icon.svg" />
3c79a68 23
    <meta name="twitter:card" content="summary_large_image" />
60e980e 24
    <script defer src="/assets/client.js"></script>
3c79a68 25
    <script src="/assets/vendor/htmx.min.js"></script>
3c79a68 26
  </head>
3c79a68 27
  <body>
44991dd 28
    {% include "site-header.njk" %}
3c79a68 29
    <div class="wrapper">
3c79a68 30
      <main>{{ content | safe }}</main>
3c79a68 31
    </div>
44991dd 32
    {% include "site-footer.njk" %}
3c79a68 33
  </body>
3c79a68 34
</html>