about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNgô Ngọc Đức Huy <huyngo@disroot.org>2024-04-23 01:19:27 +0700
committerNgô Ngọc Đức Huy <huyngo@disroot.org>2024-04-23 01:19:27 +0700
commit40f57ed72a601d8489a180f3bd9acd5e6c20d323 (patch)
tree6dd84fffd42e809f5123333deb8bb1a366a97cfc
parent2cff39c15ffb512f87ed5f8a2f71603e9ff2d4c7 (diff)
downloadblog-40f57ed72a601d8489a180f3bd9acd5e6c20d323.tar.gz
Update theme
-rw-r--r--archetypes/free-guide.md10
-rw-r--r--assets/css/custom.css26
-rw-r--r--assets/css/custom.scss47
-rw-r--r--assets/css/dark.css29
-rw-r--r--assets/css/highdark.css174
-rw-r--r--assets/css/highlight.css88
-rw-r--r--assets/css/light.css37
-rw-r--r--assets/css/main.css575
-rw-r--r--assets/css/syntax-dark.css85
-rw-r--r--assets/css/syntax-light.css87
-rw-r--r--assets/images/android-chrome-192x192.pngbin1510 -> 0 bytes
-rw-r--r--assets/images/android-chrome-512x512.pngbin3768 -> 0 bytes
-rw-r--r--assets/images/apple-touch-icon.pngbin1350 -> 0 bytes
-rw-r--r--assets/images/favicon-16x16.pngbin217 -> 0 bytes
-rw-r--r--assets/images/favicon-32x32.pngbin296 -> 0 bytes
-rw-r--r--assets/images/favicon.icobin15406 -> 0 bytes
-rw-r--r--assets/images/site.webmanifest1
-rw-r--r--config.yaml68
-rw-r--r--content/_index.md12
-rw-r--r--content/about/_index.md31
-rw-r--r--content/about/duck.pngbin0 -> 205491 bytes
-rw-r--r--content/about/rss.md4
-rw-r--r--content/about/rubber-duck.pngbin44518 -> 0 bytes
-rw-r--r--content/book-reviews/ellana.fr.md2
-rw-r--r--content/book-reviews/rise-of-kyoshi.md2
-rw-r--r--content/book-reviews/shadow-of-kyoshi.md2
-rw-r--r--content/book-reviews/xkcd-what-if.md2
-rw-r--r--content/ipwhl.md3925
-rw-r--r--content/misc/_index.md91
-rw-r--r--content/misc/books.md49
-rw-r--r--content/misc/comics.md21
-rw-r--r--content/misc/conlangs.md22
-rw-r--r--content/misc/projects.md20
-rw-r--r--content/posts/2024-01-05-mayim-sqlite.md5
-rw-r--r--content/posts/_index.fr.md1
-rw-r--r--content/posts/_index.md2
-rw-r--r--content/til/_index.fr.md1
-rw-r--r--content/til/_index.md1
-rw-r--r--dark.css47
-rw-r--r--feeds1
-rw-r--r--i18n/de.yaml37
-rw-r--r--i18n/en.yaml43
-rw-r--r--i18n/fr.yaml37
-rw-r--r--i18n/vi.yaml28
-rw-r--r--layouts/_default/_markup/render-heading.html7
-rw-r--r--layouts/_default/baseof.html24
-rw-r--r--layouts/_default/books.html7
-rw-r--r--layouts/_default/comic.html45
-rw-r--r--layouts/_default/list.html22
-rw-r--r--layouts/_default/list.old.html20
-rw-r--r--layouts/_default/project.html68
-rw-r--r--layouts/_default/rss.xml34
-rw-r--r--layouts/_default/single.html22
-rw-r--r--layouts/_default/taxonomy.html12
-rw-r--r--layouts/_default/terms.html19
-rw-r--r--layouts/_default/wiki.html32
-rw-r--r--layouts/index.html14
-rw-r--r--layouts/index.old.html19
-rw-r--r--layouts/partials/custom-webring.html21
-rw-r--r--layouts/partials/fa-icons/email.svg1
-rw-r--r--layouts/partials/fa-icons/github.svg1
-rw-r--r--layouts/partials/fa-icons/liberapay.svg3
-rw-r--r--layouts/partials/fa-icons/mastodon.svg1
-rw-r--r--layouts/partials/fa-icons/matrix.svg12
-rw-r--r--layouts/partials/fa-icons/patreon.svg1
-rw-r--r--layouts/partials/fa-icons/pleroma.svg3
-rw-r--r--layouts/partials/fa-icons/sourcehut.svg1
-rw-r--r--layouts/partials/font-awesome.html9
-rw-r--r--layouts/partials/footer.html17
-rw-r--r--layouts/partials/head-extra.html8
-rw-r--r--layouts/partials/head.html31
-rw-r--r--layouts/partials/header.html13
-rw-r--r--layouts/partials/language-switcher.html5
-rw-r--r--layouts/partials/left-sidebar.html14
-rw-r--r--layouts/partials/pagination.html16
-rw-r--r--layouts/partials/post-info.html28
-rw-r--r--layouts/partials/post-language-switcher.html16
-rw-r--r--layouts/partials/post-pagination.html16
-rw-r--r--layouts/partials/post-summary.html6
-rw-r--r--layouts/partials/right-sidebar.html (renamed from layouts/partials/single-extra.html)0
-rw-r--r--layouts/partials/social.html17
-rw-r--r--static/android-chrome-192x192.pngbin1510 -> 3966 bytes
-rw-r--r--static/android-chrome-512x512.pngbin3768 -> 13180 bytes
-rw-r--r--static/apple-touch-icon.pngbin1350 -> 3592 bytes
-rw-r--r--static/favico_license.txt6
-rw-r--r--static/favicon-16x16.pngbin217 -> 252 bytes
-rw-r--r--static/favicon-32x32.pngbin296 -> 536 bytes
-rw-r--r--static/favicon.icobin15406 -> 15406 bytes
m---------themes/anibus0
m---------themes/victor0
-rw-r--r--webring.template4
91 files changed, 1490 insertions, 4718 deletions
diff --git a/archetypes/free-guide.md b/archetypes/free-guide.md
deleted file mode 100644
index acf06a2..0000000
--- a/archetypes/free-guide.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: "{{ replace .Name "-" " " | title }}"
-layout: wiki
-wiki: freeguide
-draft: true
-lang: en
-tags: []
-translationKey: "{{ .Name | title }}"
----
-
diff --git a/assets/css/custom.css b/assets/css/custom.css
deleted file mode 100644
index 9388906..0000000
--- a/assets/css/custom.css
+++ /dev/null
@@ -1,26 +0,0 @@
-.no-prefix::before {
-    content: "";
-}
-
-.webring article {
-    border: 1px solid var(--color);
-    margin: 0.5rem 0;
-    padding: 0.5rem;
-}
-
-.webring article h3 {
-    margin-top: 0;
-    padding-top: 0;
-}
-
-pre, code {
-    font-family: monospace, monospace;
-}
-
-.homepage::after {
-    content: " 🏠";
-}
-
-.feed ol {
-    list-style-type: none;
-}
diff --git a/assets/css/custom.scss b/assets/css/custom.scss
deleted file mode 100644
index 3fd60cb..0000000
--- a/assets/css/custom.scss
+++ /dev/null
@@ -1,47 +0,0 @@
----
----
-
-body {
-  font-family: serif;
-}
-
-.post-content {
-  h1 {
-    font-size: 2rem;
-  }
-  h2 {
-    font-size: 1.5rem;
-  }
-}
-
-.webring {
-  max-width: 1000px;
-  margin-left: auto;
-  margin-right: auto;
-  margin-bottom: 1rem;
-  padding: 1rem;
-  .attribution {
-    float: right;
-    font-size: .8rem;
-    line-height: 3;
-  }
-
-  .footer-col.article {
-    padding: 0.5rem;
-
-    margin: 0 0.5rem;
-    border: 0.01rem solid #333;
-    @media(max-width: 640px) {
-      margin: 0.5rem 0;
-    }
-  }
-}
-
-dl {
-  dt {
-    font-weight: bold;
-  }
-  dd {
-    text-indent: 1em;
-  }
-}
diff --git a/assets/css/dark.css b/assets/css/dark.css
new file mode 100644
index 0000000..d1b6446
--- /dev/null
+++ b/assets/css/dark.css
@@ -0,0 +1,29 @@
+:root {
+    /* dark.css */ 
+    --font-color: #eee;
+    --bg-color: black;
+
+    --link-color: #2f2;
+    --link-state-color:#ff5858;
+    --link-state-border-color: rgba(238, 54, 54, 0.5);
+
+    --thead-bg-color: #343a40;
+    --table-border-color: lightgrey;
+
+    --nav-link-color: green;
+
+    --pre-color: #f1f1f1;
+    --pre-bg-color: #111111;
+
+    --bq-color: #ccc;
+    --hr-color: #333;
+
+    --post-info-color: lightgreen;
+
+    --visited-color: violet;
+    --visited-post-color: #999;
+    --inline-code-color: yellow;
+
+    --red: #FF6666;
+    --green: #66B266;
+}
diff --git a/assets/css/highdark.css b/assets/css/highdark.css
deleted file mode 100644
index b1108bb..0000000
--- a/assets/css/highdark.css
+++ /dev/null
@@ -1,174 +0,0 @@
-@media(prefers-color-scheme:dark) {
-    /* Background */ .bg { background-color: #ffffff; }
-    /* PreWrapper */ .chroma { background-color: #ffffff; }
-    /* Other */ .chroma .x {  }
-    /* Error */ .chroma .err { color: #ff0000; background-color: #ffaaaa }
-    /* CodeLine */ .chroma .cl {  }
-    /* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
-    /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
-    /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
-    /* LineHighlight */ .chroma .hl { background-color: #ffffcc }
-    /* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
-    /* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
-    /* Line */ .chroma .line { display: flex; }
-    /* Keyword */ .chroma .k { color: #008800; font-weight: bold }
-    /* KeywordConstant */ .chroma .kc { color: #008800; font-weight: bold }
-    /* KeywordDeclaration */ .chroma .kd { color: #008800; font-weight: bold }
-    /* KeywordNamespace */ .chroma .kn { color: #008800; font-weight: bold }
-    /* KeywordPseudo */ .chroma .kp { color: #003388; font-weight: bold }
-    /* KeywordReserved */ .chroma .kr { color: #008800; font-weight: bold }
-    /* KeywordType */ .chroma .kt { color: #333399; font-weight: bold }
-    /* Name */ .chroma .n {  }
-    /* NameAttribute */ .chroma .na { color: #0000cc }
-    /* NameBuiltin */ .chroma .nb { color: #007020 }
-    /* NameBuiltinPseudo */ .chroma .bp {  }
-    /* NameClass */ .chroma .nc { color: #bb0066; font-weight: bold }
-    /* NameConstant */ .chroma .no { color: #003366; font-weight: bold }
-    /* NameDecorator */ .chroma .nd { color: #555555; font-weight: bold }
-    /* NameEntity */ .chroma .ni { color: #880000; font-weight: bold }
-    /* NameException */ .chroma .ne { color: #ff0000; font-weight: bold }
-    /* NameFunction */ .chroma .nf { color: #0066bb; font-weight: bold }
-    /* NameFunctionMagic */ .chroma .fm {  }
-    /* NameLabel */ .chroma .nl { color: #997700; font-weight: bold }
-    /* NameNamespace */ .chroma .nn { color: #0e84b5; font-weight: bold }
-    /* NameOther */ .chroma .nx {  }
-    /* NameProperty */ .chroma .py {  }
-    /* NameTag */ .chroma .nt { color: #007700 }
-    /* NameVariable */ .chroma .nv { color: #996633 }
-    /* NameVariableClass */ .chroma .vc { color: #336699 }
-    /* NameVariableGlobal */ .chroma .vg { color: #dd7700; font-weight: bold }
-    /* NameVariableInstance */ .chroma .vi { color: #3333bb }
-    /* NameVariableMagic */ .chroma .vm {  }
-    /* Literal */ .chroma .l {  }
-    /* LiteralDate */ .chroma .ld {  }
-    /* LiteralString */ .chroma .s { background-color: #111010 }
-    /* LiteralStringA11ix */ .chroma .sa { background-color: #111010 }
-    /* LiteralStringBacktick */ .chroma .sb { background-color: #111010 }
-    /* LiteralStringChar */ .chroma .sc { color: #0044dd; background-color: #111010 }
-    /* LiteralStringDelimiter */ .chroma .dl { background-color: #111010 }
-    /* LiteralStringDoc */ .chroma .sd { color: #dd4422; background-color: #111010 }
-    /* LiteralStringDouble */ .chroma .s2 { background-color: #111010 }
-    /* LiteralStringEscape */ .chroma .se { color: #666666; background-color: #111010; font-weight: bold }
-    /* LiteralStringHeredoc */ .chroma .sh { background-color: #111010 }
-    /* LiteralStringInterpol */ .chroma .si { background-color: #eeeeee }
-    /* LiteralStringOther */ .chroma .sx { color: #dd2200; background-color: #111010 }
-    /* LiteralStringRegex */ .chroma .sr { color: #000000; background-color: #111011 }
-    /* LiteralStringSingle */ .chroma .s1 { background-color: #111010 }
-    /* LiteralStringSymbol */ .chroma .ss { color: #aa6600; background-color: #111010 }
-    /* LiteralNumber */ .chroma .m { color: #6600ee; font-weight: bold }
-    /* LiteralNumberBin */ .chroma .mb { color: #6600ee; font-weight: bold }
-    /* LiteralNumberFloat */ .chroma .mf { color: #6600ee; font-weight: bold }
-    /* LiteralNumberHex */ .chroma .mh { color: #005588; font-weight: bold }
-    /* LiteralNumberInteger */ .chroma .mi { color: #0000dd; font-weight: bold }
-    /* LiteralNumberIntegerLong */ .chroma .il { color: #6600ee; font-weight: bold }
-    /* LiteralNumberOct */ .chroma .mo { color: #4400ee; font-weight: bold }
-    /* Operator */ .chroma .o { color: #333333 }
-    /* OperatorWord */ .chroma .ow { color: #000000; font-weight: bold }
-    /* Punctuation */ .chroma .p {  }
-    /* Comment */ .chroma .c { color: #888888 }
-    /* CommentHashbang */ .chroma .ch { color: #888888 }
-    /* CommentMultiline */ .chroma .cm { color: #888888 }
-    /* CommentSingle */ .chroma .c1 { color: #888888 }
-    /* CommentSpecial */ .chroma .cs { color: #cc0000; font-weight: bold }
-    /* CommentPreproc */ .chroma .cp { color: #557799 }
-    /* CommentPreprocFile */ .chroma .cpf { color: #557799 }
-    /* Generic */ .chroma .g {  }
-    /* GenericDeleted */ .chroma .gd { color: #a00000 }
-    /* GenericEmph */ .chroma .ge { font-style: italic }
-    /* GenericError */ .chroma .gr { color: #ff0000 }
-    /* GenericHeading */ .chroma .gh { color: #000080; font-weight: bold }
-    /* GenericInserted */ .chroma .gi { color: #00a000 }
-    /* GenericOutput */ .chroma .go { color: #888888 }
-    /* GenericPrompt */ .chroma .gp { color: #c65d09; font-weight: bold }
-    /* GenericStrong */ .chroma .gs { font-weight: bold }
-    /* GenericSubheading */ .chroma .gu { color: #800080; font-weight: bold }
-    /* GenericTraceback */ .chroma .gt { color: #0044dd }
-    /* GenericUnderline */ .chroma .gl { text-decoration: underline }
-    /* TextWhitespace */ .chroma .w { color: #bbbbbb }
-    /* Background */ .bg { color: #d0d0d0; background-color: #202020; }
-    /* PreWrapper */ .chroma { color: #d0d0d0; background-color: #202020; }
-    /* Other */ .chroma .x {  }
-    /* Error */ .chroma .err { color: #a61717; background-color: #e3d2d2 }
-    /* CodeLine */ .chroma .cl {  }
-    /* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
-    /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
-    /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
-    /* LineHighlight */ .chroma .hl { background-color: #ffffcc }
-    /* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #686868 }
-    /* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #686868 }
-    /* Line */ .chroma .line { display: flex; }
-    /* Keyword */ .chroma .k { color: #6ab825; font-weight: bold }
-    /* KeywordConstant */ .chroma .kc { color: #6ab825; font-weight: bold }
-    /* KeywordDeclaration */ .chroma .kd { color: #6ab825; font-weight: bold }
-    /* KeywordNamespace */ .chroma .kn { color: #6ab825; font-weight: bold }
-    /* KeywordPseudo */ .chroma .kp { color: #6ab825 }
-    /* KeywordReserved */ .chroma .kr { color: #6ab825; font-weight: bold }
-    /* KeywordType */ .chroma .kt { color: #6ab825; font-weight: bold }
-    /* Name */ .chroma .n {  }
-    /* NameAttribute */ .chroma .na { color: #bbbbbb }
-    /* NameBuiltin */ .chroma .nb { color: #24909d }
-    /* NameBuiltinPseudo */ .chroma .bp {  }
-    /* NameClass */ .chroma .nc { color: #558fdf; text-decoration: underline }
-    /* NameConstant */ .chroma .no { color: #40ffff }
-    /* NameDecorator */ .chroma .nd { color: #ffa500 }
-    /* NameEntity */ .chroma .ni {  }
-    /* NameException */ .chroma .ne { color: #bbbbbb }
-    /* NameFunction */ .chroma .nf { color: #447fcf }
-    /* NameFunctionMagic */ .chroma .fm {  }
-    /* NameLabel */ .chroma .nl {  }
-    /* NameNamespace */ .chroma .nn { color: #447fcf; text-decoration: underline }
-    /* NameOther */ .chroma .nx {  }
-    /* NameProperty */ .chroma .py {  }
-    /* NameTag */ .chroma .nt { color: #6ab825; font-weight: bold }
-    /* NameVariable */ .chroma .nv { color: #40ffff }
-    /* NameVariableClass */ .chroma .vc {  }
-    /* NameVariableGlobal */ .chroma .vg {  }
-    /* NameVariableInstance */ .chroma .vi {  }
-    /* NameVariableMagic */ .chroma .vm {  }
-    /* Literal */ .chroma .l {  }
-    /* LiteralDate */ .chroma .ld {  }
-    /* LiteralString */ .chroma .s { color: #ed9d13 }
-    /* LiteralStringAffix */ .chroma .sa { color: #ed9d13 }
-    /* LiteralStringBacktick */ .chroma .sb { color: #ed9d13 }
-    /* LiteralStringChar */ .chroma .sc { color: #ed9d13 }
-    /* LiteralStringDelimiter */ .chroma .dl { color: #ed9d13 }
-    /* LiteralStringDoc */ .chroma .sd { color: #ed9d13 }
-    /* LiteralStringDouble */ .chroma .s2 { color: #ed9d13 }
-    /* LiteralStringEscape */ .chroma .se { color: #ed9d13 }
-    /* LiteralStringHeredoc */ .chroma .sh { color: #ed9d13 }
-    /* LiteralStringInterpol */ .chroma .si { color: #ed9d13 }
-    /* LiteralStringOther */ .chroma .sx { color: #ffa500 }
-    /* LiteralStringRegex */ .chroma .sr { color: #ed9d13 }
-    /* LiteralStringSingle */ .chroma .s1 { color: #ed9d13 }
-    /* LiteralStringSymbol */ .chroma .ss { color: #ed9d13 }
-    /* LiteralNumber */ .chroma .m { color: #3677a9 }
-    /* LiteralNumberBin */ .chroma .mb { color: #3677a9 }
-    /* LiteralNumberFloat */ .chroma .mf { color: #3677a9 }
-    /* LiteralNumberHex */ .chroma .mh { color: #3677a9 }
-    /* LiteralNumberInteger */ .chroma .mi { color: #3677a9 }
-    /* LiteralNumberIntegerLong */ .chroma .il { color: #3677a9 }
-    /* LiteralNumberOct */ .chroma .mo { color: #3677a9 }
-    /* Operator */ .chroma .o { color: #fa8a8a }
-    /* OperatorWord */ .chroma .ow { color: #6ab825; font-weight: bold }
-    /* Punctuation */ .chroma .p {  }
-    /* Comment */ .chroma .c { color: #999999; font-style: italic }
-    /* CommentHashbang */ .chroma .ch { color: #999999; font-style: italic }
-    /* CommentMultiline */ .chroma .cm { color: #999999; font-style: italic }
-    /* CommentSingle */ .chroma .c1 { color: #999999; font-style: italic }
-    /* CommentSpecial */ .chroma .cs { color: #e50808; background-color: #520000; font-weight: bold }
-    /* CommentPreproc */ .chroma .cp { color: #cd2828; font-weight: bold }
-    /* CommentPreprocFile */ .chroma .cpf { color: #cd2828; font-weight: bold }
-    /* Generic */ .chroma .g {  }
-    /* GenericDeleted */ .chroma .gd { color: #d22323 }
-    /* GenericEmph */ .chroma .ge { font-style: italic }
-    /* GenericError */ .chroma .gr { color: #d22323 }
-    /* GenericHeading */ .chroma .gh { color: #ffffff; font-weight: bold }
-    /* GenericInserted */ .chroma .gi { color: #589819 }
-    /* GenericOutput */ .chroma .go { color: #cccccc }
-    /* GenericPrompt */ .chroma .gp { color: #aaaaaa }
-    /* GenericStrong */ .chroma .gs { font-weight: bold }
-    /* GenericSubheading */ .chroma .gu { color: #ffffff; text-decoration: underline }
-    /* GenericTraceback */ .chroma .gt { color: #d22323 }
-    /* GenericUnderline */ .chroma .gl { text-decoration: underline }
-    /* TextWhitespace */ .chroma .w { color: #666666 }
-}
diff --git a/assets/css/highlight.css b/assets/css/highlight.css
deleted file mode 100644
index 79bea26..0000000
--- a/assets/css/highlight.css
+++ /dev/null
@@ -1,88 +0,0 @@
-@media(prefers-color-scheme:light) {
-    /* Background */ .bg { background-color: #ffffff; }
-    /* PreWrapper */ .chroma { background-color: #ffffff; }
-    /* Other */ .chroma .x {  }
-    /* Error */ .chroma .err { color: #ff0000; background-color: #ffaaaa }
-    /* CodeLine */ .chroma .cl {  }
-    /* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
-    /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
-    /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
-    /* LineHighlight */ .chroma .hl { background-color: #ffffcc }
-    /* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
-    /* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
-    /* Line */ .chroma .line { display: flex; }
-    /* Keyword */ .chroma .k { color: #008800; font-weight: bold }
-    /* KeywordConstant */ .chroma .kc { color: #008800; font-weight: bold }
-    /* KeywordDeclaration */ .chroma .kd { color: #008800; font-weight: bold }
-    /* KeywordNamespace */ .chroma .kn { color: #008800; font-weight: bold }
-    /* KeywordPseudo */ .chroma .kp { color: #003388; font-weight: bold }
-    /* KeywordReserved */ .chroma .kr { color: #008800; font-weight: bold }
-    /* KeywordType */ .chroma .kt { color: #333399; font-weight: bold }
-    /* Name */ .chroma .n {  }
-    /* NameAttribute */ .chroma .na { color: #0000cc }
-    /* NameBuiltin */ .chroma .nb { color: #007020 }
-    /* NameBuiltinPseudo */ .chroma .bp {  }
-    /* NameClass */ .chroma .nc { color: #bb0066; font-weight: bold }
-    /* NameConstant */ .chroma .no { color: #003366; font-weight: bold }
-    /* NameDecorator */ .chroma .nd { color: #555555; font-weight: bold }
-    /* NameEntity */ .chroma .ni { color: #880000; font-weight: bold }
-    /* NameException */ .chroma .ne { color: #ff0000; font-weight: bold }
-    /* NameFunction */ .chroma .nf { color: #0066bb; font-weight: bold }
-    /* NameFunctionMagic */ .chroma .fm {  }
-    /* NameLabel */ .chroma .nl { color: #997700; font-weight: bold }
-    /* NameNamespace */ .chroma .nn { color: #0e84b5; font-weight: bold }
-    /* NameOther */ .chroma .nx {  }
-    /* NameProperty */ .chroma .py {  }
-    /* NameTag */ .chroma .nt { color: #007700 }
-    /* NameVariable */ .chroma .nv { color: #996633 }
-    /* NameVariableClass */ .chroma .vc { color: #336699 }
-    /* NameVariableGlobal */ .chroma .vg { color: #dd7700; font-weight: bold }
-    /* NameVariableInstance */ .chroma .vi { color: #3333bb }
-    /* NameVariableMagic */ .chroma .vm {  }
-    /* Literal */ .chroma .l {  }
-    /* LiteralDate */ .chroma .ld {  }
-    /* LiteralString */ .chroma .s { background-color: #fff0f0 }
-    /* LiteralStringAffix */ .chroma .sa { background-color: #fff0f0 }
-    /* LiteralStringBacktick */ .chroma .sb { background-color: #fff0f0 }
-    /* LiteralStringChar */ .chroma .sc { color: #0044dd; background-color: #fff0f0 }
-    /* LiteralStringDelimiter */ .chroma .dl { background-color: #fff0f0 }
-    /* LiteralStringDoc */ .chroma .sd { color: #dd4422; background-color: #fff0f0 }
-    /* LiteralStringDouble */ .chroma .s2 { background-color: #fff0f0 }
-    /* LiteralStringEscape */ .chroma .se { color: #666666; background-color: #fff0f0; font-weight: bold }
-    /* LiteralStringHeredoc */ .chroma .sh { background-color: #fff0f0 }
-    /* LiteralStringInterpol */ .chroma .si { background-color: #eeeeee }
-    /* LiteralStringOther */ .chroma .sx { color: #dd2200; background-color: #fff0f0 }
-    /* LiteralStringRegex */ .chroma .sr { color: #000000; background-color: #fff0ff }
-    /* LiteralStringSingle */ .chroma .s1 { background-color: #fff0f0 }
-    /* LiteralStringSymbol */ .chroma .ss { color: #774400; background-color: #fff0f0 }
-    /* LiteralNumber */ .chroma .m { color: #6600ee; font-weight: bold }
-    /* LiteralNumberBin */ .chroma .mb { color: #6600ee; font-weight: bold }
-    /* LiteralNumberFloat */ .chroma .mf { color: #6600ee; font-weight: bold }
-    /* LiteralNumberHex */ .chroma .mh { color: #005588; font-weight: bold }
-    /* LiteralNumberInteger */ .chroma .mi { color: #0000dd; font-weight: bold }
-    /* LiteralNumberIntegerLong */ .chroma .il { color: #6600ee; font-weight: bold }
-    /* LiteralNumberOct */ .chroma .mo { color: #4400ee; font-weight: bold }
-    /* Operator */ .chroma .o { color: #333333 }
-    /* OperatorWord */ .chroma .ow { color: #000000; font-weight: bold }
-    /* Punctuation */ .chroma .p {  }
-    /* Comment */ .chroma .c { color: #666666; font-style: italic; }
-    /* CommentHashbang */ .chroma .ch { color: #666666; font-style: italic; }
-    /* CommentMultiline */ .chroma .cm { color: #666666; font-style: italic; }
-    /* CommentSingle */ .chroma .c1 { color: #666666; font-style: italic; }
-    /* CommentSpecial */ .chroma .cs { color: #cc0000; font-style: italic; font-weight: bold }
-    /* CommentPreproc */ .chroma .cp { color: #557799; font-style: italic; }
-    /* CommentPreprocFile */ .chroma .cpf { color: #557799; font-style: italic; }
-    /* Generic */ .chroma .g {  }
-    /* GenericDeleted */ .chroma .gd { color: #a00000 }
-    /* GenericEmph */ .chroma .ge { font-style: italic }
-    /* GenericError */ .chroma .gr { color: #ff0000 }
-    /* GenericHeading */ .chroma .gh { color: #000080; font-weight: bold }
-    /* GenericInserted */ .chroma .gi { color: #00a000 }
-    /* GenericOutput */ .chroma .go { color: #888888 }
-    /* GenericPrompt */ .chroma .gp { color: #c65d09; font-weight: bold }
-    /* GenericStrong */ .chroma .gs { font-weight: bold }
-    /* GenericSubheading */ .chroma .gu { color: #800080; font-weight: bold }
-    /* GenericTraceback */ .chroma .gt { color: #0044dd }
-    /* GenericUnderline */ .chroma .gl { text-decoration: underline }
-    /* TextWhitespace */ .chroma .w { color: #bbbbbb }
-}
diff --git a/assets/css/light.css b/assets/css/light.css
new file mode 100644
index 0000000..b234ae7
--- /dev/null
+++ b/assets/css/light.css
@@ -0,0 +1,37 @@
+@media (prefers-color-scheme: light) {
+    :root {
+        /* light.css */ 
+        --font-color: #333;
+        --bg-color: #fff;
+
+        --link-color:#1d60a3;
+        --link-state-color:#a31d1d;
+        --link-state-border-color: rgba(163, 29, 29, .5);
+
+        --thead-bg-color: lightgrey;
+        --table-border-color: lightgrey;
+
+        --nav-link-color: #696969;
+
+        --pre-color: #333;
+        --pre-bg-color: #f1f1f1;
+
+        --bq-color: #ccc;
+        --hr-color: #ccc;
+
+        --pagination-bg-color: #fafafa;
+        --pagination-link-color: #696969;
+
+        --post-info-color: navy;
+
+        --switcher-color: #fff;
+        --switcher-bg-color: #333; 
+
+        --visited-color: purple;
+        --visited-post-color: #666;
+        --inline-code-color: blue;
+
+        --red: red;
+        --green: green;
+    }
+}
diff --git a/assets/css/main.css b/assets/css/main.css
new file mode 100644
index 0000000..55167ef
--- /dev/null
+++ b/assets/css/main.css
@@ -0,0 +1,575 @@
+/* Basic */
+html {
+    /* 1 */
+    -ms-text-size-adjust: 100%;
+    /* 2 */
+    -webkit-text-size-adjust: 100%;
+    /* 2 */
+}
+
+.container {
+    margin: 1rem;
+}
+
+.sr-only {
+  position: absolute;
+  white-space: nowrap;
+  width: 1px;
+  height: 1px;
+  overflow: hidden;
+  border: 0;
+  padding: 0;
+  clip: rect(0 0 0 0);
+  clip-path: inset(50%);
+  margin: -1px;
+}
+
+body {
+    margin: 0;
+    font-size: 1.2em;
+    line-height: 1.5;
+    -webkit-font-smoothing: antialiased;
+    color: var(--font-color);
+    background: var(--bg-color);
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+menu,
+nav,
+section {
+    display: block;
+}
+
+
+/* Links */
+
+a {
+    color: var(--link-color);
+}
+
+a:hover,
+a:focus,
+a:active {
+    color: var(--link-state-color);
+    text-decoration-style: dashed;
+}
+
+a:active,
+a:hover {
+    outline: 1px;
+}
+
+a:active {
+    opacity: 0.9;
+}
+a:visited {
+    color: var(--visited-color);
+}
+footer a:visited, nav a:visited:not(.site-title) {
+    color: var(--link-color);
+}
+
+a.skip-main {
+    left:-999px;
+    position:absolute;
+    top:auto;
+    width:1px;
+    height:1px;
+    overflow:hidden;
+    z-index:-999;
+}
+
+a.skip-main:focus, 
+a.skip-main:active {
+    left: auto;
+    top: 0px;
+    width: auto;
+    height: auto;
+    overflow:auto;
+    z-index:999;
+    padding: 4px 6px 4px 6px;
+}
+
+/* Table */
+thead {
+    background: var(--thead-bg-color);
+}
+
+table {
+    display: block;
+    max-width: 100%;
+    border-collapse: collapse;
+    overflow: auto;
+}
+
+
+th, td {
+    padding: 0.5em 1em;
+    border: 1px double var(--table-border-color);
+}
+
+/* Code */
+pre {
+    padding: 1em;
+    max-width: 100%;
+    overflow: auto;
+    border: 1px dashed red;
+    color: var(--pre-color);
+    background-color: var(--pre-bg-color);
+}
+
+code,
+pre {
+    font-family: monospace, monospace;
+    font-size: 1rem;
+}
+
+kbd {
+    border: 1px solid var(--font-color);
+    border-bottom: 2px solid var(--font-color);
+    border-radius: 5px;
+    padding: 0.1rem;
+}
+
+p code {
+    color: var(--inline-code-color);
+}
+
+/* Styles */
+
+blockquote {
+    border-left: 2px solid var(--bq-color);
+    padding: 0.1em 1em;
+    margin-left: 0.75em;
+}
+
+p {
+    margin-top: 0.5em;
+    margin-bottom: 0.5em;
+}
+
+hr {
+    color: var(--hr-color);
+    background-color: var(--hr-color);
+    border: none;
+    height: 1px;
+    border-bottom: thin solid var(--hr-color);
+}
+
+/* Header */
+
+.common-header {
+    marg
+}
+
+header {
+    margin-top: 1em;
+}
+
+header .site-title {
+    color: var(--font-color);
+    font-size: 1em;
+    margin-bottom: 0;
+    font-weight: normal;
+}
+
+header nav:not(:empty){
+    margin-top: 1em;
+    max-width: 100%;
+    padding: 0.5em 0;
+}
+
+header nav a {
+    display: inline-block;
+    margin: 0 1rem;
+}
+
+/* Social icons */
+table.social-icons {
+    float: right
+}
+table.social-icons th {
+    text-align: right;
+}
+table.social-icons th, td {
+    border: none;
+    padding: 0.5rem;
+}
+
+.inline-svg {
+    display: inline-block;
+    height: 1.15rem;
+    width: 1.15rem;
+    top: 0.15rem;
+    position: relative;
+}
+
+/* Pages */
+main h1 {
+    margin-top: 1em;
+    font-weight: normal;
+    line-height: 1.1em;
+    margin-bottom: 0.5em;
+    font-weight: 600;
+}
+
+/* Articles */
+
+a:hover, a:focus, a:active {
+    color: var(--link-state-color);
+}
+
+.post-title.draft::after {
+    content: "✎";
+    display: inline-block;
+    margin-left: 0.2em;
+}
+
+article.embedded {
+    border: 1px dashed red;
+    padding: 1rem;
+}
+
+article:not(:last-of-type) {
+    padding-bottom: 2em;
+}
+header h1, header .post-translations {
+    margin-left: 2.5rem;
+}
+
+h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
+h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited{
+    color: var(--font-color);
+}
+
+.post-info {
+    color: var(--post-info-color);
+    font-size: 0.75em;
+    margin-top: 1em;
+}
+
+.post-info a {
+    color: var(--post-info-color);
+}
+
+.post-info a:hover {
+    color: var(--link-state-color);
+}
+
+.post-taxonomies {
+    display: inline;
+}
+
+.post-categories {
+    display: inline;
+    list-style-type: none;
+    padding: 0;
+}
+
+.post-categories li {
+    display: inline;
+    margin-left: 1em;
+}
+
+.post-tags {
+    display: inline;
+    list-style-type: none;
+    padding: 0;
+}
+
+.post-tags li {
+    display: inline;
+    margin-left: 1em;
+}
+
+article img {
+    max-width: 100%;
+    display: block;
+    height: auto;
+    margin: 0 auto .5em;
+}
+
+article figcaption {
+    color: grey;
+    text-align: center;
+    font-size: 0.85em;
+    margin-bottom: 2em;
+}
+
+.read-more {
+    margin: 1em 0;
+}
+
+.post-translations {
+    margin-left: 0.5em;
+    list-style: none;
+    padding: 0;
+    display: inline;
+    font-size: 14px;
+}
+
+.post-translations > li {
+    display: inline;
+}
+
+.post-translations > li:not(:last-child)::after {
+    content: "|";
+    display: inline-block;
+}
+
+.post-translations > li a {
+    color: var(--link-color);
+}
+
+.post-translations > li a:hover, 
+.post-translations > li a:focus {
+    color: var(--link-state-color);
+}
+
+/* Other pages */
+.terms {
+    list-style-type: none;
+    padding: 0;
+    line-height: 2em;
+}
+
+/* Footer */
+
+#footer {
+    max-width: 80rem;
+    margin: 0 auto;
+    border-top: thin solid var(--hr-color);
+    padding-top: 1.5em;
+    margin-top: 3em;
+}
+
+.common-footer-bottom {
+    align-items: center;
+    justify-content: space-between;
+}
+
+ul.language-select, ul.footer-menu {
+    padding-left: 0;
+    list-style: none;
+    display: flex;
+}
+
+ul.language-select > li, ul.footer-menu > li {
+    margin-right: 1em;
+}
+
+/* Media Queries */
+
+@media screen, print {
+    h2 .decorative::before {
+        content: '# ';
+    }
+
+    h3 .decorative::before {
+        content: '## ';
+    }
+
+    h4 .decorative::before {
+        content: '### ';
+    }
+    .decorative::before {
+        color: gray;
+    }
+}
+
+@media speech {
+    .decorative::before {
+        display: none;
+    }
+}
+
+@media print {
+    aside, .language-select, .post-translations {
+        display: None;
+    }
+    article .content a:not(.heading-anchor):visited, article header a:visited {
+        color: var(--link-color);
+    }
+    .webring {
+        display: none;
+    }
+}
+@media (min-width: 780px) {
+
+    #toc {
+        position: sticky;
+        top: 10px;
+    }
+    .container {
+        display: grid;
+        grid-template-columns: 1fr 4fr 1fr;
+        grid-gap: 2rem;
+    }
+    .common-footer-bottom {
+        display: grid;
+        grid-template-columns: 1fr 1fr;
+    }
+}
+
+@media (max-width: 500px) {
+    table.social-icons .inline-svg {
+        display: none;
+    }
+}
+
+@media (max-width: 840px) {
+    .main-wrapper {
+        margin: 0;
+        max-width: none;
+        overflow-x: hidden;
+        padding-left: 25px;
+        padding-right: 25px;
+    }
+
+    .post-navigation {
+        text-align: center;
+        padding: 0.5em 0;
+    }
+
+    .post-navigation a {
+        margin-left: 0.5em;
+    }
+}
+
+/* Webring---doesn't make sense if you don't use openring */
+
+.webring {
+  margin-top: 2rem;
+}
+
+.webring h2 {
+  font-size: 1.2rem;
+}
+
+.webring .articles {
+  width: 95%;
+}
+
+.webring .title {
+  margin: 0;
+}
+
+.webring .article {
+  width: 100%;
+  padding: 0.5rem;
+  border: 1px solid #333;
+  margin: 0.5rem 0;
+}
+
+@media (max-width: 640px) {
+  .webring .article {
+    margin: 0.5rem 0;
+  }
+}
+
+.webring .article:first-child {
+  margin-left: 0;
+}
+
+.webring .article:last-child {
+  margin-right: 0;
+}
+
+.webring .summary {
+  font-size: 1rem;
+  flex: 1 1 0;
+}
+
+.webring .attribution {
+  float: right;
+  font-size: 0.8rem;
+  color: #555;
+  line-height: 3;
+}
+
+dl dt {
+  font-weight: bold;
+}
+dl dd {
+  text-indent: 1em;
+}
+
+/* Book data format */
+
+dl.data {
+  border: 3px double #ccc;
+  padding: 0.5em;
+}
+dl.data dt {
+  float: left;
+  clear: left;
+  max-width: 40%;
+  text-align: right;
+  font-weight: bold;
+}
+dl.data dd {
+  margin: 0 0 0 110px;
+  padding: 0 0 0.5em 0;
+}
+
+.text-red {
+  color: var(--red);
+}
+
+.text-green {
+  color: var(--green);
+}
+
+details {
+  margin-top: 1em;
+  margin-bottom: 1em;
+  border: 1px solid #aaa;
+  border-radius: 4px;
+  padding: .5em .5em 0;
+}
+
+summary {
+  font-weight: bold;
+  margin: -.5em -.5em 0;
+  padding: .5em;
+}
+
+details[open] {
+  padding: .5em;
+}
+
+details[open] summary {
+  border-bottom: 1px solid #aaa;
+  margin-bottom: .5em;
+}
+
+a.site-title::before {
+  content: "[";
+}
+
+a.site-title::after {
+  content: "]";
+}
+
+a.prev-link::before {
+  content: "← ";
+}
+
+a.next-link.float {
+  float: right;
+}
+
+a.random-link::before {
+    content: "🎲 ";
+}
+
+a.next-link::after {
+  content: " →";
+}
diff --git a/assets/css/syntax-dark.css b/assets/css/syntax-dark.css
new file mode 100644
index 0000000..d172503
--- /dev/null
+++ b/assets/css/syntax-dark.css
@@ -0,0 +1,85 @@
+/* Background */ .bg { color: #ffffff; background-color: #1f1f24; }
+/* PreWrapper */ .chroma { color: #ffffff; background-color: #1f1f24; }
+/* Other */ .chroma .x {  }
+/* Error */ .chroma .err { color: #960050 }
+/* CodeLine */ .chroma .cl {  }
+/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
+/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
+/* LineHighlight */ .chroma .hl { background-color: #ffffcc }
+/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
+/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
+/* Line */ .chroma .line { display: flex; }
+/* Keyword */ .chroma .k { color: #fc5fa3 }
+/* KeywordConstant */ .chroma .kc { color: #fc5fa3 }
+/* KeywordDeclaration */ .chroma .kd { color: #fc5fa3 }
+/* KeywordNamespace */ .chroma .kn { color: #fc5fa3 }
+/* KeywordPseudo */ .chroma .kp { color: #fc5fa3 }
+/* KeywordReserved */ .chroma .kr { color: #fc5fa3 }
+/* KeywordType */ .chroma .kt { color: #fc5fa3 }
+/* Name */ .chroma .n {  }
+/* NameAttribute */ .chroma .na {  }
+/* NameBuiltin */ .chroma .nb { color: #d0a8ff }
+/* NameBuiltinPseudo */ .chroma .bp { color: #a167e6 }
+/* NameClass */ .chroma .nc { color: #5dd8ff }
+/* NameConstant */ .chroma .no {  }
+/* NameDecorator */ .chroma .nd {  }
+/* NameEntity */ .chroma .ni {  }
+/* NameException */ .chroma .ne {  }
+/* NameFunction */ .chroma .nf { color: #41a1c0 }
+/* NameFunctionMagic */ .chroma .fm {  }
+/* NameLabel */ .chroma .nl {  }
+/* NameNamespace */ .chroma .nn {  }
+/* NameOther */ .chroma .nx {  }
+/* NameProperty */ .chroma .py {  }
+/* NameTag */ .chroma .nt {  }
+/* NameVariable */ .chroma .nv { color: #41a1c0 }
+/* NameVariableClass */ .chroma .vc {  }
+/* NameVariableGlobal */ .chroma .vg {  }
+/* NameVariableInstance */ .chroma .vi {  }
+/* NameVariableMagic */ .chroma .vm {  }
+/* Literal */ .chroma .l {  }
+/* LiteralDate */ .chroma .ld {  }
+/* LiteralString */ .chroma .s { color: #fc6a5d }
+/* LiteralStringAffix */ .chroma .sa { color: #fc6a5d }
+/* LiteralStringBacktick */ .chroma .sb { color: #fc6a5d }
+/* LiteralStringChar */ .chroma .sc { color: #fc6a5d }
+/* LiteralStringDelimiter */ .chroma .dl { color: #fc6a5d }
+/* LiteralStringDoc */ .chroma .sd { color: #fc6a5d }
+/* LiteralStringDouble */ .chroma .s2 { color: #fc6a5d }
+/* LiteralStringEscape */ .chroma .se { color: #fc6a5d }
+/* LiteralStringHeredoc */ .chroma .sh { color: #fc6a5d }
+/* LiteralStringInterpol */ .chroma .si {  }
+/* LiteralStringOther */ .chroma .sx { color: #fc6a5d }
+/* LiteralStringRegex */ .chroma .sr { color: #fc6a5d }
+/* LiteralStringSingle */ .chroma .s1 { color: #fc6a5d }
+/* LiteralStringSymbol */ .chroma .ss { color: #fc6a5d }
+/* LiteralNumber */ .chroma .m { color: #d0bf69 }
+/* LiteralNumberBin */ .chroma .mb { color: #d0bf69 }
+/* LiteralNumberFloat */ .chroma .mf { color: #d0bf69 }
+/* LiteralNumberHex */ .chroma .mh { color: #d0bf69 }
+/* LiteralNumberInteger */ .chroma .mi { color: #d0bf69 }
+/* LiteralNumberIntegerLong */ .chroma .il { color: #d0bf69 }
+/* LiteralNumberOct */ .chroma .mo { color: #d0bf69 }
+/* Operator */ .chroma .o {  }
+/* OperatorWord */ .chroma .ow {  }
+/* Punctuation */ .chroma .p {  }
+/* Comment */ .chroma .c { color: #6c7986 }
+/* CommentHashbang */ .chroma .ch { color: #6c7986 }
+/* CommentMultiline */ .chroma .cm { color: #6c7986 }
+/* CommentSingle */ .chroma .c1 { color: #6c7986 }
+/* CommentSpecial */ .chroma .cs { color: #6c7986; font-style: italic }
+/* CommentPreproc */ .chroma .cp { color: #fd8f3f }
+/* CommentPreprocFile */ .chroma .cpf { color: #fd8f3f }
+/* Generic */ .chroma .g {  }
+/* GenericDeleted */ .chroma .gd {  }
+/* GenericEmph */ .chroma .ge {  }
+/* GenericError */ .chroma .gr {  }
+/* GenericHeading */ .chroma .gh {  }
+/* GenericInserted */ .chroma .gi {  }
+/* GenericOutput */ .chroma .go {  }
+/* GenericPrompt */ .chroma .gp {  }
+/* GenericStrong */ .chroma .gs {  }
+/* GenericSubheading */ .chroma .gu {  }
+/* GenericTraceback */ .chroma .gt {  }
+/* GenericUnderline */ .chroma .gl {  }
+/* TextWhitespace */ .chroma .w {  }
diff --git a/assets/css/syntax-light.css b/assets/css/syntax-light.css
new file mode 100644
index 0000000..3e3c47c
--- /dev/null
+++ b/assets/css/syntax-light.css
@@ -0,0 +1,87 @@
+@media (prefers-color-scheme: light) {
+    /* Background */ .bg { background-color: #ffffff; }
+    /* PreWrapper */ .chroma { background-color: #ffffff; }
+    /* Other */ .chroma .x {  }
+    /* Error */ .chroma .err { color: #000000 }
+    /* CodeLine */ .chroma .cl {  }
+    /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
+    /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
+    /* LineHighlight */ .chroma .hl { background-color: #ffffcc }
+    /* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
+    /* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
+    /* Line */ .chroma .line { display: flex; }
+    /* Keyword */ .chroma .k { color: #a90d91 }
+    /* KeywordConstant */ .chroma .kc { color: #a90d91 }
+    /* KeywordDeclaration */ .chroma .kd { color: #a90d91 }
+    /* KeywordNamespace */ .chroma .kn { color: #a90d91 }
+    /* KeywordPseudo */ .chroma .kp { color: #a90d91 }
+    /* KeywordReserved */ .chroma .kr { color: #a90d91 }
+    /* KeywordType */ .chroma .kt { color: #a90d91 }
+    /* Name */ .chroma .n { color: #000000 }
+    /* NameAttribute */ .chroma .na { color: #836c28 }
+    /* NameBuiltin */ .chroma .nb { color: #a90d91 }
+    /* NameBuiltinPseudo */ .chroma .bp { color: #5b269a }
+    /* NameClass */ .chroma .nc { color: #3f6e75 }
+    /* NameConstant */ .chroma .no { color: #000000 }
+    /* NameDecorator */ .chroma .nd { color: #000000 }
+    /* NameEntity */ .chroma .ni { color: #000000 }
+    /* NameException */ .chroma .ne { color: #000000 }
+    /* NameFunction */ .chroma .nf { color: #000000 }
+    /* NameFunctionMagic */ .chroma .fm { color: #000000 }
+    /* NameLabel */ .chroma .nl { color: #000000 }
+    /* NameNamespace */ .chroma .nn { color: #000000 }
+    /* NameOther */ .chroma .nx { color: #000000 }
+    /* NameProperty */ .chroma .py { color: #000000 }
+    /* NameTag */ .chroma .nt { color: #000000 }
+    /* NameVariable */ .chroma .nv { color: #000000 }
+    /* NameVariableClass */ .chroma .vc { color: #000000 }
+    /* NameVariableGlobal */ .chroma .vg { color: #000000 }
+    /* NameVariableInstance */ .chroma .vi { color: #000000 }
+    /* NameVariableMagic */ .chroma .vm { color: #000000 }
+    /* Literal */ .chroma .l { color: #1c01ce }
+    /* LiteralDate */ .chroma .ld { color: #1c01ce }
+    /* LiteralString */ .chroma .s { color: #c41a16 }
+    /* LiteralStringAffix */ .chroma .sa { color: #c41a16 }
+    /* LiteralStringBacktick */ .chroma .sb { color: #c41a16 }
+    /* LiteralStringChar */ .chroma .sc { color: #2300ce }
+    /* LiteralStringDelimiter */ .chroma .dl { color: #c41a16 }
+    /* LiteralStringDoc */ .chroma .sd { color: #c41a16 }
+    /* LiteralStringDouble */ .chroma .s2 { color: #c41a16 }
+    /* LiteralStringEscape */ .chroma .se { color: #c41a16 }
+    /* LiteralStringHeredoc */ .chroma .sh { color: #c41a16 }
+    /* LiteralStringInterpol */ .chroma .si { color: #c41a16 }
+    /* LiteralStringOther */ .chroma .sx { color: #c41a16 }
+    /* LiteralStringRegex */ .chroma .sr { color: #c41a16 }
+    /* LiteralStringSingle */ .chroma .s1 { color: #c41a16 }
+    /* LiteralStringSymbol */ .chroma .ss { color: #c41a16 }
+    /* LiteralNumber */ .chroma .m { color: #1c01ce }
+    /* LiteralNumberBin */ .chroma .mb { color: #1c01ce }
+    /* LiteralNumberFloat */ .chroma .mf { color: #1c01ce }
+    /* LiteralNumberHex */ .chroma .mh { color: #1c01ce }
+    /* LiteralNumberInteger */ .chroma .mi { color: #1c01ce }
+    /* LiteralNumberIntegerLong */ .chroma .il { color: #1c01ce }
+    /* LiteralNumberOct */ .chroma .mo { color: #1c01ce }
+    /* Operator */ .chroma .o { color: #000000 }
+    /* OperatorWord */ .chroma .ow { color: #000000 }
+    /* Punctuation */ .chroma .p {  }
+    /* Comment */ .chroma .c { color: #177500 }
+    /* CommentHashbang */ .chroma .ch { color: #177500 }
+    /* CommentMultiline */ .chroma .cm { color: #177500 }
+    /* CommentSingle */ .chroma .c1 { color: #177500 }
+    /* CommentSpecial */ .chroma .cs { color: #177500 }
+    /* CommentPreproc */ .chroma .cp { color: #633820 }
+    /* CommentPreprocFile */ .chroma .cpf { color: #633820 }
+    /* Generic */ .chroma .g {  }
+    /* GenericDeleted */ .chroma .gd {  }
+    /* GenericEmph */ .chroma .ge {  }
+    /* GenericError */ .chroma .gr {  }
+    /* GenericHeading */ .chroma .gh {  }
+    /* GenericInserted */ .chroma .gi {  }
+    /* GenericOutput */ .chroma .go {  }
+    /* GenericPrompt */ .chroma .gp {  }
+    /* GenericStrong */ .chroma .gs {  }
+    /* GenericSubheading */ .chroma .gu {  }
+    /* GenericTraceback */ .chroma .gt {  }
+    /* GenericUnderline */ .chroma .gl {  }
+    /* TextWhitespace */ .chroma .w {  }
+}
diff --git a/assets/images/android-chrome-192x192.png b/assets/images/android-chrome-192x192.png
deleted file mode 100644
index 334222b..0000000
--- a/assets/images/android-chrome-192x192.png
+++ /dev/null
Binary files differdiff --git a/assets/images/android-chrome-512x512.png b/assets/images/android-chrome-512x512.png
deleted file mode 100644
index d935e97..0000000
--- a/assets/images/android-chrome-512x512.png
+++ /dev/null
Binary files differdiff --git a/assets/images/apple-touch-icon.png b/assets/images/apple-touch-icon.png
deleted file mode 100644
index 3dcf481..0000000
--- a/assets/images/apple-touch-icon.png
+++ /dev/null
Binary files differdiff --git a/assets/images/favicon-16x16.png b/assets/images/favicon-16x16.png
deleted file mode 100644
index 4e2eee7..0000000
--- a/assets/images/favicon-16x16.png
+++ /dev/null
Binary files differdiff --git a/assets/images/favicon-32x32.png b/assets/images/favicon-32x32.png
deleted file mode 100644
index 9ad0725..0000000
--- a/assets/images/favicon-32x32.png
+++ /dev/null
Binary files differdiff --git a/assets/images/favicon.ico b/assets/images/favicon.ico
deleted file mode 100644
index d9ff90e..0000000
--- a/assets/images/favicon.ico
+++ /dev/null
Binary files differdiff --git a/assets/images/site.webmanifest b/assets/images/site.webmanifest
deleted file mode 100644
index 45dc8a2..0000000
--- a/assets/images/site.webmanifest
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
\ No newline at end of file
diff --git a/config.yaml b/config.yaml
index a3aebf4..22b7174 100644
--- a/config.yaml
+++ b/config.yaml
@@ -2,17 +2,60 @@ baseURL: https://xrvs.net/
 copyright: CC-BY-SA 4.0
 defaultContentLanguage: en
 defaultContentLanguageInSubdir: true
-sectionPagesMenu: main
 languageCode: en-us
 languages:
   de:
     languageName: Deutsch
+    menus:
+      main:
+        - name: Über
+          pageRef: /about
+          weight: 10
+        - name: Artikeln
+          pageRef: /posts
+          weight: 20
+        - name: RSS
+          pageRef: /about/rss
+          weight: 90
   en:
     languageName: English
+    menus:
+      main:
+        - name: About
+          pageRef: /about
+          weight: 10
+        - name: Articles
+          pageRef: /posts
+          weight: 20
+        - name: RSS
+          pageRef: /about/rss
+          weight: 90
   fr:
     languageName: Français
+    menus:
+      main:
+        - name: À propos
+          pageRef: /about
+          weight: 10
+        - name: Publications
+          pageRef: /posts
+          weight: 20
+        - name: RSS
+          pageRef: /about/rss
+          weight: 90
   vi:
     languageName: Tiếng Việt
+    menus:
+      main:
+        - name: Giới thiệu
+          pageRef: /about
+          weight: 10
+        - name: Bài viết
+          pageRef: /posts
+          weight: 20
+        - name: RSS
+          pageRef: /about/rss
+          weight: 90
 markup:
   goldmark:
     renderer:
@@ -23,14 +66,23 @@ params:
   author: Ngô Ngọc Đức Huy
   disableSummary: true
   email: huyngo@disroot.org
-  relMe:
-    - https://outerheaven.club/xarvos
-    - https://social.treehouse.systems/@xarvos
-    - https://fedi.criminallycute.fi/xarvos
-    - https://nixnet.social/xarvos
-    - https://git.sr.ht/~huyngo/
+  social:
+    - id: pleroma
+      name: "@xarvos@outerheaven.club"
+      url: https://outerheaven.club/xarvos
+    - id: mastodon
+      name: "@xarvos@treehouse.systems"
+      url: "https://social.treehouse.systems/@xarvos"
+    - id: sourcehut
+      name: "~huyngo"
+      url: "https://sr.ht/~huyngo"
+    - id: matrix
+      name: "@huyngo:envs.net"
+      url: matrix:u/huyngo:envs.net
+    - id: email
+      name: huyngo@disroot.org
+      url: mailto:huyngo@disroot.org
   mainSections:
     - posts
 summaryLength: 0
-theme: victor
 title: xarvos
diff --git a/content/_index.md b/content/_index.md
index 28c2129..4302ae2 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -2,11 +2,11 @@
 title: Home page
 ---
 
-Check out the [previous site][prev] in the [fediring][fedi] as well as the [next
-site][next] as well.
+Hi, this is xarvos's little corner on the Wired.  More introduction can be seen
+in the [about page](/en/about/).
 
-Take a look at other sections of my site:
+To the left are my site sections.
 
-[prev]: https://fediring.net/previous?host=xrvs.net
-[fedi]: https://fediring.net/
-[next]: https://fediring.net/next?host=xrvs.net
+To the right are external links to web rings and feeds from people I follow.
+
+Below is my latest post.
diff --git a/content/about/_index.md b/content/about/_index.md
index a880e48..42715d7 100644
--- a/content/about/_index.md
+++ b/content/about/_index.md
@@ -5,18 +5,39 @@ ref: about
 disable_feed: true
 ---
 
-## Me
+I suppose I should introduce my selves in third person to distinguish my
+internet persona and "meatsona", even though I find it weird to write in third
+person.  The distinction is there, albeit somewhat blur.  I might have some
+other personae, but I don't feel comfortable disclosing them in public.
 
-![I literally used this duck image for debugging](rubber-duck.png)
+## xarvos
+
+the internet persona known as <i>xarvos</i> is a blob of energy without a
+shape.  ze chose to use this debugging rubber duck to represent zemself.
+
+![a yellow rubber duck](duck.png)
+
+no, that is not an "x" that starts zer name; it's a [velar fricative][x], and
+zer name's pronunciation in IPA is /xarvos/.  ze prefers to write in lowercase,
+except for acronyms and as-is quotes.
+
+xarvos is a creative creature.  ze loves writing (fiction, software), drawing.
+
+## Huy
+
+Huy is a struggling youth
+
+## common
+
+I speak Vietnamese, English, French, German, with proficiency and fluency
+decrementally sorted.  Please [contact][contact] if you want language exchange.
 
-Hi, this is <i>xarvos</i>, also known in meatspace as <i lang="vi">Huy</i>.
 I write about all kinds of stuff; expect tech discussion, shitposts, language
 stuff, fictions, blah blah.  I [work][work] as a software developer, and that
 means I [hate software][relevant-xkcd] more than others.
 
-I speak Vietnamese, English, French, German, with proficiency and fluency
-decrementally sorted.  Please [contact][contact] if you want language exchange.
 
+[x]: https://en.wikipedia.org/wiki/Voiceless_velar_fricative
 [contact]: /en/about/contact/
 [work]: /en/about/works/
 [relevant-xkcd]: https://xkcd.com/2030/
diff --git a/content/about/duck.png b/content/about/duck.png
new file mode 100644
index 0000000..f423c00
--- /dev/null
+++ b/content/about/duck.png
Binary files differdiff --git a/content/about/rss.md b/content/about/rss.md
index fea42e1..7633059 100644
--- a/content/about/rss.md
+++ b/content/about/rss.md
@@ -35,7 +35,3 @@ feeds here:
 - [French](/fr/book-reviews/index.xml)
 - [German](/de/book-reviews/index.xml)
 - [Vietnamese](/vi/book-reviews/index.xml)
-
-## Comics
-
-- [English](/en/comics/index.xml)
diff --git a/content/about/rubber-duck.png b/content/about/rubber-duck.png
deleted file mode 100644
index e354034..0000000
--- a/content/about/rubber-duck.png
+++ /dev/null
Binary files differdiff --git a/content/book-reviews/ellana.fr.md b/content/book-reviews/ellana.fr.md
index 9383ae4..2ede93c 100644
--- a/content/book-reviews/ellana.fr.md
+++ b/content/book-reviews/ellana.fr.md
@@ -1,5 +1,5 @@
 ---
-categories: [blog, "book review"]
+categories: ["book review"]
 title: "Ellana"
 date: 2022-02-17
 tags: [ellana]
diff --git a/content/book-reviews/rise-of-kyoshi.md b/content/book-reviews/rise-of-kyoshi.md
index a19af90..e07c4a6 100644
--- a/content/book-reviews/rise-of-kyoshi.md
+++ b/content/book-reviews/rise-of-kyoshi.md
@@ -1,5 +1,5 @@
 ---
-categories: [blog, "book review"]
+categories: ["book review"]
 title: "Rise of Kyoshi"
 date: 2021-10-14
 tags: [avatar, kyoshi, fantasy, fiction]
diff --git a/content/book-reviews/shadow-of-kyoshi.md b/content/book-reviews/shadow-of-kyoshi.md
index 3ea0f9b..4650a61 100644
--- a/content/book-reviews/shadow-of-kyoshi.md
+++ b/content/book-reviews/shadow-of-kyoshi.md
@@ -1,5 +1,5 @@
 ---
-categories: [blog, "book review"]
+categories: ["book review"]
 title: "Shadow of Kyoshi"
 date: 2021-10-20
 tags: [avatar, kyoshi, fantasy, fiction]
diff --git a/content/book-reviews/xkcd-what-if.md b/content/book-reviews/xkcd-what-if.md
index 5d24d02..17100c5 100644
--- a/content/book-reviews/xkcd-what-if.md
+++ b/content/book-reviews/xkcd-what-if.md
@@ -1,5 +1,5 @@
 ---
-categories: [blog, "book review"]
+categories: ["book review"]
 title: "XKCD: What If?"
 date: 2021-05-07T16:35:08+07:00
 tags: [book, review, science, hypothetical, xkcd, whatif]
diff --git a/content/ipwhl.md b/content/ipwhl.md
deleted file mode 100644
index 6bd627c..0000000
--- a/content/ipwhl.md
+++ /dev/null
@@ -1,3925 +0,0 @@
----
-title: IPWHL version tracker
-date: 2022-05-15
-lang: en
-disable_feed: true
----
-
-<p>Updated at
-<time datetime="2022-06-24T02:27:44+00:00">
-02:27:44, Friday, 24 June 2022 UTC
-</time>
-</p>
-<p>IPWHL release 2022W24
-<ul>
-<li>    Base58 CIDv0: QmQESYddXAEFiLUofuiNqFs7KdmNWY67NJwmme51y4pmux</li>
-<li>    Base32 CIDv1: bafybeia4earmozedviyibpkybhkei4d3qxwmrelflzt7lhzb64mjpsfuw4</li>
-</ul></p>
-<table>
-	<tr>
-		<th>Package name</th>
-		<th>PyPI</th>
-		<th>IPWHL</th>
-		<th>Status</th>
-	</tr>
-<tr>
-<td><a href="https://pypi.org/project/absl-py">absl-py</a></td>
-<td>1.1.0</td>
-<td>1.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/adal">adal</a></td>
-<td>1.2.7</td>
-<td>1.2.7</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/aiodns">aiodns</a></td>
-<td>3.0.0</td>
-<td>3.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/aiofiles">aiofiles</a></td>
-<td>0.8.0</td>
-<td>0.8.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/aiohttp">aiohttp</a></td>
-<td>3.8.1</td>
-<td>3.8.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/aiohttp-cors">aiohttp-cors</a></td>
-<td>0.7.0</td>
-<td>0.7.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/aioitertools">aioitertools</a></td>
-<td>0.10.0</td>
-<td>0.10.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/aioquic">aioquic</a></td>
-<td>0.9.20</td>
-<td>0.9.20</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/aiosignal">aiosignal</a></td>
-<td>1.2.0</td>
-<td>1.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/aiosmtpd">aiosmtpd</a></td>
-<td>1.4.2</td>
-<td>1.4.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/aiosqlite">aiosqlite</a></td>
-<td>0.17.0</td>
-<td>0.17.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/alabaster">alabaster</a></td>
-<td>0.7.12</td>
-<td>0.7.12</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/anyio">anyio</a></td>
-<td>3.6.1</td>
-<td>3.6.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/appdirs">appdirs</a></td>
-<td>1.4.4</td>
-<td>1.4.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/appnope">appnope</a></td>
-<td>0.1.3</td>
-<td>0.1.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/argcomplete">argcomplete</a></td>
-<td>2.0.0</td>
-<td>1.12.3</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/argh">argh</a></td>
-<td>0.26.2</td>
-<td>0.26.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/argon2-cffi">argon2-cffi</a></td>
-<td>21.3.0</td>
-<td>21.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/argon2-cffi-bindings">argon2-cffi-bindings</a></td>
-<td>21.2.0</td>
-<td>21.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/argparse">argparse</a></td>
-<td>1.4.0</td>
-<td>1.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Arpeggio">Arpeggio</a></td>
-<td>2.0.0</td>
-<td>1.10.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/arrow">arrow</a></td>
-<td>1.2.2</td>
-<td>1.2.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/asaman">asaman</a></td>
-<td>0.1.6</td>
-<td>0.1.6</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/asdf">asdf</a></td>
-<td>2.12.0</td>
-<td>2.12.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/asdf-standard">asdf-standard</a></td>
-<td>1.0.2</td>
-<td>1.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/asdf-transform-schemas">asdf-transform-schemas</a></td>
-<td>0.2.2</td>
-<td>0.2.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/asgiref">asgiref</a></td>
-<td>3.5.2</td>
-<td>3.5.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/asn1crypto">asn1crypto</a></td>
-<td>1.5.1</td>
-<td>1.5.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/aspectlib">aspectlib</a></td>
-<td>1.5.2</td>
-<td>1.5.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/aspy.yaml">aspy.yaml</a></td>
-<td>1.3.0</td>
-<td>1.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/astor">astor</a></td>
-<td>0.8.1</td>
-<td>0.8.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/astroid">astroid</a></td>
-<td>2.11.6</td>
-<td>2.11.6</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/astropy-sphinx-theme">astropy-sphinx-theme</a></td>
-<td>1.1</td>
-<td>1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/asttokens">asttokens</a></td>
-<td>2.0.5</td>
-<td>2.0.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/async_generator">async_generator</a></td>
-<td>1.10</td>
-<td>1.10</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/asyncpg">asyncpg</a></td>
-<td>0.25.0</td>
-<td>0.25.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/asynctest">asynctest</a></td>
-<td>0.13.0</td>
-<td>0.13.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/async-timeout">async-timeout</a></td>
-<td>4.0.2</td>
-<td>4.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/atomicwrites">atomicwrites</a></td>
-<td>1.4.0</td>
-<td>1.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/atpublic">atpublic</a></td>
-<td>3.0.1</td>
-<td>3.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/attrs">attrs</a></td>
-<td>21.4.0</td>
-<td>21.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/autocommand">autocommand</a></td>
-<td>2.2.1</td>
-<td>2.2.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/autopage">autopage</a></td>
-<td>0.5.1</td>
-<td>0.5.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/awscrt">awscrt</a></td>
-<td>0.13.13</td>
-<td>0.13.8</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/azure-common">azure-common</a></td>
-<td>1.1.28</td>
-<td>1.1.28</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/azure-core">azure-core</a></td>
-<td>1.24.1</td>
-<td>1.24.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/azure-datalake-store">azure-datalake-store</a></td>
-<td>0.0.52</td>
-<td>0.0.52</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/azure-identity">azure-identity</a></td>
-<td>1.10.0</td>
-<td>1.10.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/azure-storage-blob">azure-storage-blob</a></td>
-<td>12.12.0</td>
-<td>12.12.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Babel">Babel</a></td>
-<td>2.10.3</td>
-<td>2.10.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/backcall">backcall</a></td>
-<td>0.2.0</td>
-<td>0.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/backports.entry-points-selectable">backports.entry-points-selectable</a></td>
-<td>1.1.1</td>
-<td>1.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/backports.zoneinfo">backports.zoneinfo</a></td>
-<td>0.2.1</td>
-<td>0.2.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/bcrypt">bcrypt</a></td>
-<td>3.2.2</td>
-<td>3.2.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/beautifulsoup4">beautifulsoup4</a></td>
-<td>4.11.1</td>
-<td>4.11.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/binaryornot">binaryornot</a></td>
-<td>0.4.4</td>
-<td>0.4.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/bleach">bleach</a></td>
-<td>5.0.0</td>
-<td>5.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/blinker">blinker</a></td>
-<td>1.4</td>
-<td>1.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/blurb">blurb</a></td>
-<td>1.1.0</td>
-<td>1.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/bokeh">bokeh</a></td>
-<td>2.4.3</td>
-<td>2.4.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/boolean.py">boolean.py</a></td>
-<td>4.0</td>
-<td>4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/boto3">boto3</a></td>
-<td>1.24.16</td>
-<td>1.24.10</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/botocore">botocore</a></td>
-<td>1.27.16</td>
-<td>1.27.10</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/branca">branca</a></td>
-<td>0.5.0</td>
-<td>0.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Brotli">Brotli</a></td>
-<td>1.0.9</td>
-<td>1.0.9</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/brotlipy">brotlipy</a></td>
-<td>0.7.0</td>
-<td>0.7.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/build">build</a></td>
-<td>0.8.0</td>
-<td>0.8.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/bump2version">bump2version</a></td>
-<td>1.0.1</td>
-<td>1.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/bumpversion">bumpversion</a></td>
-<td>0.6.0</td>
-<td>0.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/CacheControl">CacheControl</a></td>
-<td>0.12.11</td>
-<td>0.12.11</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cached-property">cached-property</a></td>
-<td>1.5.2</td>
-<td>1.5.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cachetools">cachetools</a></td>
-<td>5.2.0</td>
-<td>5.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cchardet">cchardet</a></td>
-<td>2.1.7</td>
-<td>2.1.7</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Cerberus">Cerberus</a></td>
-<td>1.3.4</td>
-<td>1.3.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/certifi">certifi</a></td>
-<td>2022.6.15</td>
-<td>2022.6.15</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cffi">cffi</a></td>
-<td>1.15.0</td>
-<td>1.15.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cfgv">cfgv</a></td>
-<td>3.3.1</td>
-<td>3.3.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Chameleon">Chameleon</a></td>
-<td>3.10.1</td>
-<td>3.9.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/chardet">chardet</a></td>
-<td>4.0.0</td>
-<td>4.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/charset-normalizer">charset-normalizer</a></td>
-<td>2.1.0</td>
-<td>2.0.12</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/check-manifest">check-manifest</a></td>
-<td>0.48</td>
-<td>0.48</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/click">click</a></td>
-<td>8.1.3</td>
-<td>8.1.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/click-default-group">click-default-group</a></td>
-<td>1.2.2</td>
-<td>1.2.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/click-log">click-log</a></td>
-<td>0.4.0</td>
-<td>0.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cliff">cliff</a></td>
-<td>3.10.1</td>
-<td>3.10.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cloudpickle">cloudpickle</a></td>
-<td>2.1.0</td>
-<td>2.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cmarkgfm">cmarkgfm</a></td>
-<td>0.8.0</td>
-<td>0.8.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cmd2">cmd2</a></td>
-<td>2.4.1</td>
-<td>2.4.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/codecov">codecov</a></td>
-<td>2.1.12</td>
-<td>2.1.12</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cogapp">cogapp</a></td>
-<td>3.3.0</td>
-<td>3.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/colorama">colorama</a></td>
-<td>0.4.5</td>
-<td>0.4.4</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/colorlog">colorlog</a></td>
-<td>6.6.0</td>
-<td>6.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/commentjson">commentjson</a></td>
-<td>0.9.0</td>
-<td>0.9.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/commonmark">commonmark</a></td>
-<td>0.9.1</td>
-<td>0.9.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/configparser">configparser</a></td>
-<td>5.2.0</td>
-<td>5.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/constantly">constantly</a></td>
-<td>15.1.0</td>
-<td>15.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/contextlib2">contextlib2</a></td>
-<td>21.6.0</td>
-<td>21.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/contextvars">contextvars</a></td>
-<td>2.4</td>
-<td>2.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/covdefaults">covdefaults</a></td>
-<td>2.2.0</td>
-<td>2.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/coverage">coverage</a></td>
-<td>6.4.1</td>
-<td>6.4.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/coverage_enable_subprocess">coverage_enable_subprocess</a></td>
-<td>1.0</td>
-<td>1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/coveralls">coveralls</a></td>
-<td>3.3.1</td>
-<td>3.3.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cryptography">cryptography</a></td>
-<td>37.0.2</td>
-<td>37.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/csscompressor">csscompressor</a></td>
-<td>0.9.5</td>
-<td>0.9.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cssselect">cssselect</a></td>
-<td>1.1.0</td>
-<td>1.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cssselect2">cssselect2</a></td>
-<td>0.6.0</td>
-<td>0.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/curio">curio</a></td>
-<td>1.5</td>
-<td>1.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cx-Oracle">cx-Oracle</a></td>
-<td>8.3.0</td>
-<td>8.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Cycler">Cycler</a></td>
-<td>0.11.0</td>
-<td>0.11.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Cython">Cython</a></td>
-<td>0.29.30</td>
-<td>0.29.30</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/cython-test-exception-raiser">cython-test-exception-raiser</a></td>
-<td>1.0.2</td>
-<td>1.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/dataclasses">dataclasses</a></td>
-<td>0.8</td>
-<td>0.8</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ddt">ddt</a></td>
-<td>1.5.0</td>
-<td>1.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/debugpy">debugpy</a></td>
-<td>1.6.0</td>
-<td>1.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/decorator">decorator</a></td>
-<td>5.1.1</td>
-<td>5.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/defusedxml">defusedxml</a></td>
-<td>0.7.1</td>
-<td>0.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Deprecated">Deprecated</a></td>
-<td>1.2.13</td>
-<td>1.2.13</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/dill">dill</a></td>
-<td>0.3.5.1</td>
-<td>0.3.5.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/distlib">distlib</a></td>
-<td>0.3.4</td>
-<td>0.3.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/distro">distro</a></td>
-<td>1.7.0</td>
-<td>1.7.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Django">Django</a></td>
-<td>4.0.5</td>
-<td>4.0.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/dnspython">dnspython</a></td>
-<td>2.2.1</td>
-<td>2.1.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/doc8">doc8</a></td>
-<td>0.11.2</td>
-<td>0.11.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/docopt">docopt</a></td>
-<td>0.6.2</td>
-<td>0.6.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/docstring-parser">docstring-parser</a></td>
-<td>0.14.1</td>
-<td>0.7.3</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/docutils">docutils</a></td>
-<td>0.18.1</td>
-<td>0.15.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/docutils-stubs">docutils-stubs</a></td>
-<td>0.0.22</td>
-<td>0.0.22</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/dpcontracts">dpcontracts</a></td>
-<td>0.6.0</td>
-<td>0.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/dropbox">dropbox</a></td>
-<td>11.32.0</td>
-<td>11.32.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/editdistance-s">editdistance-s</a></td>
-<td>1.0.0</td>
-<td>1.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/elasticsearch">elasticsearch</a></td>
-<td>8.2.3</td>
-<td>8.2.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/elastic-transport">elastic-transport</a></td>
-<td>8.1.2</td>
-<td>8.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/email-validator">email-validator</a></td>
-<td>1.2.1</td>
-<td>1.2.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/entrypoints">entrypoints</a></td>
-<td>0.4</td>
-<td>0.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/execnet">execnet</a></td>
-<td>1.9.0</td>
-<td>1.9.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/executing">executing</a></td>
-<td>0.8.3</td>
-<td>0.8.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/extras">extras</a></td>
-<td>1.0.0</td>
-<td>1.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/falcon">falcon</a></td>
-<td>3.1.0</td>
-<td>2.0.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/fastapi">fastapi</a></td>
-<td>0.78.0</td>
-<td>0.78.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/fastimport">fastimport</a></td>
-<td>0.9.14</td>
-<td>0.9.14</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/fastjsonschema">fastjsonschema</a></td>
-<td>2.15.3</td>
-<td>2.15.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/feedparser">feedparser</a></td>
-<td>6.0.10</td>
-<td>6.0.10</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/fields">fields</a></td>
-<td>5.0.0</td>
-<td>5.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/filelock">filelock</a></td>
-<td>3.7.1</td>
-<td>3.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/findimports">findimports</a></td>
-<td>2.2.0</td>
-<td>2.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/fissix">fissix</a></td>
-<td>21.11.13</td>
-<td>21.11.13</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/fixtures">fixtures</a></td>
-<td>4.0.0</td>
-<td>4.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/flake8">flake8</a></td>
-<td>4.0.1</td>
-<td>3.9.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/flake8-annotations">flake8-annotations</a></td>
-<td>2.9.0</td>
-<td>2.9.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/flake8-bugbear">flake8-bugbear</a></td>
-<td>22.6.22</td>
-<td>22.4.25</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/flake8-builtins">flake8-builtins</a></td>
-<td>1.5.3</td>
-<td>1.5.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/flake8-docstrings">flake8-docstrings</a></td>
-<td>1.6.0</td>
-<td>1.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/flake8-import-order">flake8-import-order</a></td>
-<td>0.18.1</td>
-<td>0.18.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/flake8-polyfill">flake8-polyfill</a></td>
-<td>1.0.2</td>
-<td>1.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/flaky">flaky</a></td>
-<td>3.7.0</td>
-<td>3.7.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Flask">Flask</a></td>
-<td>2.1.2</td>
-<td>2.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/flit">flit</a></td>
-<td>3.7.1</td>
-<td>3.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/flit_core">flit_core</a></td>
-<td>3.7.1</td>
-<td>3.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/flufl.flake8">flufl.flake8</a></td>
-<td>0.10</td>
-<td>0.10</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/fonttools">fonttools</a></td>
-<td>4.33.3</td>
-<td>4.33.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/formbox">formbox</a></td>
-<td>0.4.1</td>
-<td>0.4.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/fqdn">fqdn</a></td>
-<td>1.5.1</td>
-<td>1.5.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/freezegun">freezegun</a></td>
-<td>1.2.1</td>
-<td>1.2.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/frozenlist">frozenlist</a></td>
-<td>1.3.0</td>
-<td>1.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/fs">fs</a></td>
-<td>2.4.16</td>
-<td>2.4.16</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/func-timeout">func-timeout</a></td>
-<td>4.3.5</td>
-<td>4.3.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/furo">furo</a></td>
-<td>2022.6.21</td>
-<td>2022.4.7</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/fusepy">fusepy</a></td>
-<td>3.0.1</td>
-<td>3.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/future">future</a></td>
-<td>0.18.2</td>
-<td>0.18.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/fuzzywuzzy">fuzzywuzzy</a></td>
-<td>0.18.0</td>
-<td>0.18.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Genshi">Genshi</a></td>
-<td>0.7.7</td>
-<td>0.7.7</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ghp-import">ghp-import</a></td>
-<td>2.1.0</td>
-<td>2.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/gitdb">gitdb</a></td>
-<td>4.0.9</td>
-<td>4.0.9</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/GitPython">GitPython</a></td>
-<td>3.1.27</td>
-<td>3.1.27</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/gnureadline">gnureadline</a></td>
-<td>8.1.2</td>
-<td>8.0.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/google-api-core">google-api-core</a></td>
-<td>2.8.2</td>
-<td>2.8.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/google-api-python-client">google-api-python-client</a></td>
-<td>2.51.0</td>
-<td>2.51.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/googleapis-common-protos">googleapis-common-protos</a></td>
-<td>1.56.3</td>
-<td>1.56.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/google-auth">google-auth</a></td>
-<td>2.8.0</td>
-<td>2.6.6</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/google-auth-httplib2">google-auth-httplib2</a></td>
-<td>0.1.0</td>
-<td>0.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/google-auth-oauthlib">google-auth-oauthlib</a></td>
-<td>0.5.2</td>
-<td>0.5.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/google-cloud-core">google-cloud-core</a></td>
-<td>2.3.1</td>
-<td>2.3.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/google-cloud-dlp">google-cloud-dlp</a></td>
-<td>3.7.1</td>
-<td>3.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/google-cloud-storage">google-cloud-storage</a></td>
-<td>2.4.0</td>
-<td>2.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/google-crc32c">google-crc32c</a></td>
-<td>1.3.0</td>
-<td>1.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/google-resumable-media">google-resumable-media</a></td>
-<td>2.3.3</td>
-<td>2.3.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/graphviz">graphviz</a></td>
-<td>0.20</td>
-<td>0.20</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/greenlet">greenlet</a></td>
-<td>1.1.2</td>
-<td>1.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/grpcio">grpcio</a></td>
-<td>1.47.0</td>
-<td>1.46.3</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/grpcio-gcp">grpcio-gcp</a></td>
-<td>0.2.2</td>
-<td>0.2.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/grpcio-status">grpcio-status</a></td>
-<td>1.47.0</td>
-<td>1.46.3</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/grpcio-tools">grpcio-tools</a></td>
-<td>1.47.0</td>
-<td>1.46.3</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/gssapi">gssapi</a></td>
-<td>1.7.3</td>
-<td>1.7.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/h11">h11</a></td>
-<td>0.13.0</td>
-<td>0.12.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/h2">h2</a></td>
-<td>4.1.0</td>
-<td>4.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/h5py">h5py</a></td>
-<td>3.7.0</td>
-<td>3.7.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/HeapDict">HeapDict</a></td>
-<td>1.0.1</td>
-<td>1.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/hiredis">hiredis</a></td>
-<td>2.0.0</td>
-<td>2.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/hpack">hpack</a></td>
-<td>4.0.0</td>
-<td>4.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/html5lib">html5lib</a></td>
-<td>1.1</td>
-<td>1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/httpcore">httpcore</a></td>
-<td>0.15.0</td>
-<td>0.13.7</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/httplib2">httplib2</a></td>
-<td>0.20.4</td>
-<td>0.20.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/httpx">httpx</a></td>
-<td>0.23.0</td>
-<td>0.19.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/hug">hug</a></td>
-<td>2.6.1</td>
-<td>2.6.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/humanize">humanize</a></td>
-<td>4.2.1</td>
-<td>4.1.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/hunter">hunter</a></td>
-<td>3.4.3</td>
-<td>3.4.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Hypercorn">Hypercorn</a></td>
-<td>0.13.2</td>
-<td>0.13.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/hyperframe">hyperframe</a></td>
-<td>6.0.1</td>
-<td>6.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/hyperlink">hyperlink</a></td>
-<td>21.0.0</td>
-<td>21.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/identify">identify</a></td>
-<td>2.5.1</td>
-<td>2.5.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/idna">idna</a></td>
-<td>3.3</td>
-<td>3.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/idna-ssl">idna-ssl</a></td>
-<td>1.1.0</td>
-<td>1.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/imagecodecs">imagecodecs</a></td>
-<td>2022.2.22</td>
-<td>2021.11.20</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/imageio-ffmpeg">imageio-ffmpeg</a></td>
-<td>0.4.7</td>
-<td>0.4.7</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/imagesize">imagesize</a></td>
-<td>1.3.0</td>
-<td>1.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/immutables">immutables</a></td>
-<td>0.18</td>
-<td>0.18</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/importlib-metadata">importlib-metadata</a></td>
-<td>4.11.4</td>
-<td>4.11.3</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/importlib-resources">importlib-resources</a></td>
-<td>5.8.0</td>
-<td>5.8.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/iniconfig">iniconfig</a></td>
-<td>1.1.1</td>
-<td>1.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/invoke">invoke</a></td>
-<td>1.7.1</td>
-<td>1.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ipwhl">ipwhl</a></td>
-<td>1.1.0</td>
-<td>1.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ipython-genutils">ipython-genutils</a></td>
-<td>0.2.0</td>
-<td>0.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/iso8601">iso8601</a></td>
-<td>1.0.2</td>
-<td>1.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/isodate">isodate</a></td>
-<td>0.6.1</td>
-<td>0.6.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/isoduration">isoduration</a></td>
-<td>20.11.0</td>
-<td>20.11.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/isort">isort</a></td>
-<td>5.10.1</td>
-<td>5.10.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/itsdangerous">itsdangerous</a></td>
-<td>2.1.2</td>
-<td>2.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jaraco.classes">jaraco.classes</a></td>
-<td>3.2.1</td>
-<td>3.2.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jaraco.context">jaraco.context</a></td>
-<td>4.1.1</td>
-<td>4.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jaraco.functools">jaraco.functools</a></td>
-<td>3.5.0</td>
-<td>3.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jaraco.packaging">jaraco.packaging</a></td>
-<td>9.0.0</td>
-<td>9.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jaraco.tidelift">jaraco.tidelift</a></td>
-<td>1.5.0</td>
-<td>1.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jedi">jedi</a></td>
-<td>0.18.1</td>
-<td>0.18.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jeepney">jeepney</a></td>
-<td>0.8.0</td>
-<td>0.8.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Jinja2">Jinja2</a></td>
-<td>3.1.2</td>
-<td>3.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jinja2-humanize-extension">jinja2-humanize-extension</a></td>
-<td>0.2.1</td>
-<td>0.2.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jmespath">jmespath</a></td>
-<td>1.0.1</td>
-<td>1.0.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/joblib">joblib</a></td>
-<td>1.1.0</td>
-<td>1.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jplephem">jplephem</a></td>
-<td>2.17</td>
-<td>2.17</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Js2Py">Js2Py</a></td>
-<td>0.71</td>
-<td>0.71</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/json5">json5</a></td>
-<td>0.9.8</td>
-<td>0.9.6</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jsondiff">jsondiff</a></td>
-<td>2.0.0</td>
-<td>2.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/json-logging">json-logging</a></td>
-<td>1.3.0</td>
-<td>1.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jsonpatch">jsonpatch</a></td>
-<td>1.32</td>
-<td>1.32</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jsonpointer">jsonpointer</a></td>
-<td>2.3</td>
-<td>2.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jsonschema">jsonschema</a></td>
-<td>4.6.0</td>
-<td>4.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/json-spec">json-spec</a></td>
-<td>0.10.1</td>
-<td>0.10.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/junit-xml">junit-xml</a></td>
-<td>1.9</td>
-<td>1.9</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jupyter-client">jupyter-client</a></td>
-<td>7.3.4</td>
-<td>7.2.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jupyter-core">jupyter-core</a></td>
-<td>4.10.0</td>
-<td>4.10.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jupyterlab-pygments">jupyterlab-pygments</a></td>
-<td>0.2.2</td>
-<td>0.2.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/jupyterlab-widgets">jupyterlab-widgets</a></td>
-<td>1.1.1</td>
-<td>1.1.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/keyring">keyring</a></td>
-<td>23.6.0</td>
-<td>23.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/kiwisolver">kiwisolver</a></td>
-<td>1.4.3</td>
-<td>1.4.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/lark-parser">lark-parser</a></td>
-<td>0.12.0</td>
-<td>0.7.8</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/latexcodec">latexcodec</a></td>
-<td>2.0.1</td>
-<td>2.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/lazy-object-proxy">lazy-object-proxy</a></td>
-<td>1.7.1</td>
-<td>1.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/libcst">libcst</a></td>
-<td>0.4.5</td>
-<td>0.4.4</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/libsass">libsass</a></td>
-<td>0.21.0</td>
-<td>0.21.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/lingua">lingua</a></td>
-<td>4.15.0</td>
-<td>4.15.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/linkify-it-py">linkify-it-py</a></td>
-<td>2.0.0</td>
-<td>2.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/livereload">livereload</a></td>
-<td>2.6.3</td>
-<td>2.6.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/loca">loca</a></td>
-<td>2.0.1</td>
-<td>2.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/locket">locket</a></td>
-<td>1.0.0</td>
-<td>1.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/lockfile">lockfile</a></td>
-<td>0.12.2</td>
-<td>0.12.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/lotide_luna">lotide_luna</a></td>
-<td>0.7.1</td>
-<td>0.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/lxml">lxml</a></td>
-<td>4.9.0</td>
-<td>4.9.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/lz4">lz4</a></td>
-<td>4.0.1</td>
-<td>4.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Mako">Mako</a></td>
-<td>1.2.0</td>
-<td>1.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/manhole">manhole</a></td>
-<td>1.8.0</td>
-<td>1.8.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mariadb">mariadb</a></td>
-<td>1.0.11</td>
-<td>1.0.11</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Markdown">Markdown</a></td>
-<td>3.3.7</td>
-<td>3.3.7</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/markdownify">markdownify</a></td>
-<td>0.11.2</td>
-<td>0.11.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/MarkupSafe">MarkupSafe</a></td>
-<td>2.1.1</td>
-<td>2.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/matplotlib">matplotlib</a></td>
-<td>3.5.2</td>
-<td>3.5.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/matplotlib-inline">matplotlib-inline</a></td>
-<td>0.1.3</td>
-<td>0.1.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mccabe">mccabe</a></td>
-<td>0.7.0</td>
-<td>0.6.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mdurl">mdurl</a></td>
-<td>0.1.1</td>
-<td>0.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mergedeep">mergedeep</a></td>
-<td>1.3.4</td>
-<td>1.3.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mike">mike</a></td>
-<td>1.1.2</td>
-<td>1.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mistune">mistune</a></td>
-<td>2.0.2</td>
-<td>2.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mkdocs">mkdocs</a></td>
-<td>1.3.0</td>
-<td>1.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mkdocs-material">mkdocs-material</a></td>
-<td>8.3.7</td>
-<td>8.3.5</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mkdocs-material-extensions">mkdocs-material-extensions</a></td>
-<td>1.0.3</td>
-<td>1.0.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mock">mock</a></td>
-<td>4.0.3</td>
-<td>4.0.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/MonkeyType">MonkeyType</a></td>
-<td>22.2.0</td>
-<td>22.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/more-itertools">more-itertools</a></td>
-<td>8.13.0</td>
-<td>8.13.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mpmath">mpmath</a></td>
-<td>1.2.1</td>
-<td>1.2.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/msal">msal</a></td>
-<td>1.18.0</td>
-<td>1.18.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/msal-extensions">msal-extensions</a></td>
-<td>1.0.0</td>
-<td>1.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/msgpack">msgpack</a></td>
-<td>1.0.4</td>
-<td>1.0.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/msrest">msrest</a></td>
-<td>0.7.1</td>
-<td>0.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/multidict">multidict</a></td>
-<td>6.0.2</td>
-<td>6.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mutagen">mutagen</a></td>
-<td>1.45.1</td>
-<td>1.45.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mypy">mypy</a></td>
-<td>0.961</td>
-<td>0.950</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mypy-extensions">mypy-extensions</a></td>
-<td>0.4.3</td>
-<td>0.4.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mypytools">mypytools</a></td>
-<td>0.1.15</td>
-<td>0.1.15</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/mysqlclient">mysqlclient</a></td>
-<td>2.1.1</td>
-<td>2.1.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/nbclient">nbclient</a></td>
-<td>0.6.4</td>
-<td>0.5.9</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/nbformat">nbformat</a></td>
-<td>5.4.0</td>
-<td>5.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/nest-asyncio">nest-asyncio</a></td>
-<td>1.5.5</td>
-<td>1.5.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/nodeenv">nodeenv</a></td>
-<td>1.6.0</td>
-<td>1.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/nose">nose</a></td>
-<td>1.3.7</td>
-<td>1.3.7</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/nox">nox</a></td>
-<td>2022.1.7</td>
-<td>2022.1.7</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/numcodecs">numcodecs</a></td>
-<td>0.10.0</td>
-<td>0.9.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/numpy">numpy</a></td>
-<td>1.23.0</td>
-<td>1.21.6</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/oauthlib">oauthlib</a></td>
-<td>3.2.0</td>
-<td>3.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/objgraph">objgraph</a></td>
-<td>3.5.0</td>
-<td>3.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/orderedmultidict">orderedmultidict</a></td>
-<td>1.0.1</td>
-<td>1.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/outcome">outcome</a></td>
-<td>1.2.0</td>
-<td>1.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/packaging">packaging</a></td>
-<td>21.3</td>
-<td>21.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pandas">pandas</a></td>
-<td>1.4.3</td>
-<td>1.3.5</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pandocfilters">pandocfilters</a></td>
-<td>1.5.0</td>
-<td>1.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/panflute">panflute</a></td>
-<td>2.1.3</td>
-<td>2.1.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/paramiko">paramiko</a></td>
-<td>2.11.0</td>
-<td>2.11.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/parso">parso</a></td>
-<td>0.8.3</td>
-<td>0.8.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/parver">parver</a></td>
-<td>0.3.1</td>
-<td>0.3.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/path">path</a></td>
-<td>16.4.0</td>
-<td>16.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pathspec">pathspec</a></td>
-<td>0.9.0</td>
-<td>0.9.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Paver">Paver</a></td>
-<td>1.3.4</td>
-<td>1.3.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pbr">pbr</a></td>
-<td>5.9.0</td>
-<td>5.9.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pdocs">pdocs</a></td>
-<td>1.1.1</td>
-<td>1.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pep517">pep517</a></td>
-<td>0.12.0</td>
-<td>0.12.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pep8">pep8</a></td>
-<td>1.7.1</td>
-<td>1.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pep8-naming">pep8-naming</a></td>
-<td>0.13.0</td>
-<td>0.13.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pexpect">pexpect</a></td>
-<td>4.8.0</td>
-<td>4.8.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pg8000">pg8000</a></td>
-<td>1.29.1</td>
-<td>1.29.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pickleshare">pickleshare</a></td>
-<td>0.7.5</td>
-<td>0.7.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Pillow">Pillow</a></td>
-<td>9.1.1</td>
-<td>9.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pip">pip</a></td>
-<td>22.1.2</td>
-<td>22.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pip-api">pip-api</a></td>
-<td>0.0.29</td>
-<td>0.0.29</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pipreqs">pipreqs</a></td>
-<td>0.4.11</td>
-<td>0.4.11</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pip-shims">pip-shims</a></td>
-<td>0.7.0</td>
-<td>0.7.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pkginfo">pkginfo</a></td>
-<td>1.8.3</td>
-<td>1.8.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/platformdirs">platformdirs</a></td>
-<td>2.5.2</td>
-<td>2.5.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/plette">plette</a></td>
-<td>0.2.3</td>
-<td>0.2.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pluggy">pluggy</a></td>
-<td>1.0.0</td>
-<td>1.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ply">ply</a></td>
-<td>3.11</td>
-<td>3.11</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/polib">polib</a></td>
-<td>1.1.1</td>
-<td>1.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pooch">pooch</a></td>
-<td>1.6.0</td>
-<td>1.5.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/portalocker">portalocker</a></td>
-<td>2.4.0</td>
-<td>2.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pre-commit">pre-commit</a></td>
-<td>2.19.0</td>
-<td>2.19.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pretend">pretend</a></td>
-<td>1.0.9</td>
-<td>1.0.9</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/prettytable">prettytable</a></td>
-<td>3.3.0</td>
-<td>3.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/priority">priority</a></td>
-<td>2.0.0</td>
-<td>2.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/process-tests">process-tests</a></td>
-<td>2.1.2</td>
-<td>2.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/progress">progress</a></td>
-<td>1.6</td>
-<td>1.6</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/prometheus-client">prometheus-client</a></td>
-<td>0.14.1</td>
-<td>0.14.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/prompt-toolkit">prompt-toolkit</a></td>
-<td>3.0.29</td>
-<td>3.0.29</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/proselint">proselint</a></td>
-<td>0.13.0</td>
-<td>0.13.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/protobuf">protobuf</a></td>
-<td>4.21.1</td>
-<td>3.20.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/proto-plus">proto-plus</a></td>
-<td>1.20.6</td>
-<td>1.20.6</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/psutil">psutil</a></td>
-<td>5.9.1</td>
-<td>5.9.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/psycopg2">psycopg2</a></td>
-<td>2.9.3</td>
-<td>2.9.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/psycopg2-binary">psycopg2-binary</a></td>
-<td>2.9.3</td>
-<td>2.9.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ptyprocess">ptyprocess</a></td>
-<td>0.7.0</td>
-<td>0.7.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pure-eval">pure-eval</a></td>
-<td>0.2.2</td>
-<td>0.2.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/py">py</a></td>
-<td>1.11.0</td>
-<td>1.11.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/py4j">py4j</a></td>
-<td>0.10.9.5</td>
-<td>0.10.9.3</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyarrow">pyarrow</a></td>
-<td>8.0.0</td>
-<td>8.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyasn1">pyasn1</a></td>
-<td>0.4.8</td>
-<td>0.4.8</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyasn1-modules">pyasn1-modules</a></td>
-<td>0.2.8</td>
-<td>0.2.8</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pybtex">pybtex</a></td>
-<td>0.24.0</td>
-<td>0.24.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pybtex-docutils">pybtex-docutils</a></td>
-<td>1.0.2</td>
-<td>1.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pycares">pycares</a></td>
-<td>4.2.0</td>
-<td>4.1.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pycodestyle">pycodestyle</a></td>
-<td>2.8.0</td>
-<td>2.7.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pycparser">pycparser</a></td>
-<td>2.21</td>
-<td>2.21</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pycryptodome">pycryptodome</a></td>
-<td>3.15.0</td>
-<td>3.14.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pydantic">pydantic</a></td>
-<td>1.9.1</td>
-<td>1.9.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pydocstyle">pydocstyle</a></td>
-<td>6.1.1</td>
-<td>6.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pydot">pydot</a></td>
-<td>1.4.2</td>
-<td>1.4.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyee">pyee</a></td>
-<td>9.0.4</td>
-<td>9.0.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyenchant">pyenchant</a></td>
-<td>3.2.2</td>
-<td>3.2.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyerfa">pyerfa</a></td>
-<td>2.0.0.1</td>
-<td>2.0.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyfakefs">pyfakefs</a></td>
-<td>4.5.6</td>
-<td>4.5.6</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyflakes">pyflakes</a></td>
-<td>2.4.0</td>
-<td>2.3.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pygaljs">pygaljs</a></td>
-<td>1.0.2</td>
-<td>1.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pygame">pygame</a></td>
-<td>2.1.2</td>
-<td>2.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyglet">pyglet</a></td>
-<td>1.5.26</td>
-<td>1.5.26</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Pygments">Pygments</a></td>
-<td>2.12.0</td>
-<td>2.12.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pygments-github-lexers">pygments-github-lexers</a></td>
-<td>0.0.5</td>
-<td>0.0.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/PyHamcrest">PyHamcrest</a></td>
-<td>2.0.3</td>
-<td>2.0.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyinotify">pyinotify</a></td>
-<td>0.9.6</td>
-<td>0.9.6</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyjsparser">pyjsparser</a></td>
-<td>2.7.1</td>
-<td>2.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/PyJWT">PyJWT</a></td>
-<td>2.4.0</td>
-<td>2.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pylint">pylint</a></td>
-<td>2.14.3</td>
-<td>2.14.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pylsqpack">pylsqpack</a></td>
-<td>0.3.16</td>
-<td>0.3.16</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/py-make">py-make</a></td>
-<td>0.1.1</td>
-<td>0.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pymdown-extensions">pymdown-extensions</a></td>
-<td>9.5</td>
-<td>9.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Pympler">Pympler</a></td>
-<td>1.0.1</td>
-<td>1.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pymssql">pymssql</a></td>
-<td>2.2.5</td>
-<td>2.2.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/PyMySQL">PyMySQL</a></td>
-<td>1.0.2</td>
-<td>1.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/PyNaCl">PyNaCl</a></td>
-<td>1.5.0</td>
-<td>1.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyobjc-core">pyobjc-core</a></td>
-<td>8.5</td>
-<td>8.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyobjc-framework-Cocoa">pyobjc-framework-Cocoa</a></td>
-<td>8.5</td>
-<td>8.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyodbc">pyodbc</a></td>
-<td>4.0.32</td>
-<td>4.0.32</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyOpenSSL">pyOpenSSL</a></td>
-<td>22.0.0</td>
-<td>22.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyparsing">pyparsing</a></td>
-<td>3.0.9</td>
-<td>3.0.9</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyperclip">pyperclip</a></td>
-<td>1.8.2</td>
-<td>1.8.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyquery">pyquery</a></td>
-<td>1.4.3</td>
-<td>1.4.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyreadline">pyreadline</a></td>
-<td>2.1</td>
-<td>2.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyreadline3">pyreadline3</a></td>
-<td>3.4.1</td>
-<td>3.4.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyre-extensions">pyre-extensions</a></td>
-<td>0.0.29</td>
-<td>0.0.28</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyroma">pyroma</a></td>
-<td>4.0</td>
-<td>4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyrsistent">pyrsistent</a></td>
-<td>0.18.1</td>
-<td>0.18.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/PySide6">PySide6</a></td>
-<td>6.3.1</td>
-<td>6.3.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/PySide6-Addons">PySide6-Addons</a></td>
-<td>6.3.1</td>
-<td>6.3.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/PySide6-Essentials">PySide6-Essentials</a></td>
-<td>6.3.1</td>
-<td>6.3.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/PySocks">PySocks</a></td>
-<td>1.7.1</td>
-<td>1.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyspark">pyspark</a></td>
-<td>3.3.0</td>
-<td>3.2.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pystache">pystache</a></td>
-<td>0.6.0</td>
-<td>0.5.4</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest">pytest</a></td>
-<td>7.1.2</td>
-<td>7.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-arraydiff">pytest-arraydiff</a></td>
-<td>0.5.0</td>
-<td>0.3</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-astropy-header">pytest-astropy-header</a></td>
-<td>0.2.1</td>
-<td>0.1.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-asyncio">pytest-asyncio</a></td>
-<td>0.18.3</td>
-<td>0.18.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-checkdocs">pytest-checkdocs</a></td>
-<td>2.7.1</td>
-<td>2.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-console-scripts">pytest-console-scripts</a></td>
-<td>1.3.1</td>
-<td>1.3.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-cov">pytest-cov</a></td>
-<td>3.0.0</td>
-<td>3.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-datadir">pytest-datadir</a></td>
-<td>1.3.1</td>
-<td>1.3.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-dependency">pytest-dependency</a></td>
-<td>0.5.1</td>
-<td>0.5.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-doctestplus">pytest-doctestplus</a></td>
-<td>0.12.0</td>
-<td>0.12.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-enabler">pytest-enabler</a></td>
-<td>1.3.0</td>
-<td>1.2.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-env">pytest-env</a></td>
-<td>0.6.2</td>
-<td>0.6.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-filter-subpackage">pytest-filter-subpackage</a></td>
-<td>0.1.1</td>
-<td>0.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-flake8">pytest-flake8</a></td>
-<td>1.1.1</td>
-<td>1.1.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-forked">pytest-forked</a></td>
-<td>1.4.0</td>
-<td>1.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-freezegun">pytest-freezegun</a></td>
-<td>0.4.2</td>
-<td>0.4.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-httpserver">pytest-httpserver</a></td>
-<td>1.0.4</td>
-<td>1.0.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-isort">pytest-isort</a></td>
-<td>3.0.0</td>
-<td>3.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-lazy-fixture">pytest-lazy-fixture</a></td>
-<td>0.6.3</td>
-<td>0.6.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-localserver">pytest-localserver</a></td>
-<td>0.6.0</td>
-<td>0.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-mock">pytest-mock</a></td>
-<td>3.7.0</td>
-<td>3.7.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-mypy">pytest-mypy</a></td>
-<td>0.9.1</td>
-<td>0.9.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-openfiles">pytest-openfiles</a></td>
-<td>0.5.0</td>
-<td>0.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-qt">pytest-qt</a></td>
-<td>4.1.0</td>
-<td>4.0.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-randomly">pytest-randomly</a></td>
-<td>3.12.0</td>
-<td>3.12.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-regressions">pytest-regressions</a></td>
-<td>2.3.1</td>
-<td>2.3.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-remotedata">pytest-remotedata</a></td>
-<td>0.3.3</td>
-<td>0.3.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-rerunfailures">pytest-rerunfailures</a></td>
-<td>10.2</td>
-<td>10.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-subtests">pytest-subtests</a></td>
-<td>0.8.0</td>
-<td>0.8.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-timeout">pytest-timeout</a></td>
-<td>2.1.0</td>
-<td>2.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-tornado">pytest-tornado</a></td>
-<td>0.8.1</td>
-<td>0.8.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-tornasync">pytest-tornasync</a></td>
-<td>0.6.0.post2</td>
-<td>0.6.0.post2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-trio">pytest-trio</a></td>
-<td>0.7.0</td>
-<td>0.7.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytest-xdist">pytest-xdist</a></td>
-<td>2.5.0</td>
-<td>2.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/python-dateutil">python-dateutil</a></td>
-<td>2.8.2</td>
-<td>2.8.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/python-debian">python-debian</a></td>
-<td>0.1.44</td>
-<td>0.1.44</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/python-dotenv">python-dotenv</a></td>
-<td>0.20.0</td>
-<td>0.20.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/python-editor">python-editor</a></td>
-<td>1.0.4</td>
-<td>1.0.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/python-Levenshtein">python-Levenshtein</a></td>
-<td>0.12.2</td>
-<td>0.12.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/python-multipart">python-multipart</a></td>
-<td>0.0.5</td>
-<td>0.0.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/python-slugify">python-slugify</a></td>
-<td>6.1.2</td>
-<td>6.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/python-socks">python-socks</a></td>
-<td>2.0.3</td>
-<td>2.0.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/python-subunit">python-subunit</a></td>
-<td>1.4.0</td>
-<td>1.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytz">pytz</a></td>
-<td>2022.1</td>
-<td>2022.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pytz-deprecation-shim">pytz-deprecation-shim</a></td>
-<td>0.1.0.post0</td>
-<td>0.1.0.post0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyu2f">pyu2f</a></td>
-<td>0.1.5</td>
-<td>0.1.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/PyWavelets">PyWavelets</a></td>
-<td>1.3.0</td>
-<td>1.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pywin32">pywin32</a></td>
-<td>304</td>
-<td>303</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pywin32-ctypes">pywin32-ctypes</a></td>
-<td>0.2.0</td>
-<td>0.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pywinpty">pywinpty</a></td>
-<td>2.0.5</td>
-<td>2.0.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyxel">pyxel</a></td>
-<td>1.7.1</td>
-<td>1.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/PyYAML">PyYAML</a></td>
-<td>6.0</td>
-<td>6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyyaml-env-tag">pyyaml-env-tag</a></td>
-<td>0.1</td>
-<td>0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyyaml_env_tag">pyyaml_env_tag</a></td>
-<td>0.1</td>
-<td>0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/pyzmq">pyzmq</a></td>
-<td>23.2.0</td>
-<td>22.3.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/QtPy">QtPy</a></td>
-<td>2.1.0</td>
-<td>2.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Quart">Quart</a></td>
-<td>0.17.0</td>
-<td>0.17.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/quart-trio">quart-trio</a></td>
-<td>0.9.1</td>
-<td>0.9.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/railroad-diagrams">railroad-diagrams</a></td>
-<td>2.0.3</td>
-<td>1.1.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/readme-renderer">readme-renderer</a></td>
-<td>35.0</td>
-<td>35.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/redis">redis</a></td>
-<td>4.3.3</td>
-<td>3.5.3</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/regex">regex</a></td>
-<td>2022.6.2</td>
-<td>2022.6.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/repoze.sphinx.autointerface">repoze.sphinx.autointerface</a></td>
-<td>1.0.0</td>
-<td>1.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/requests">requests</a></td>
-<td>2.28.0</td>
-<td>2.28.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/requests-oauthlib">requests-oauthlib</a></td>
-<td>1.3.1</td>
-<td>1.3.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/requests-toolbelt">requests-toolbelt</a></td>
-<td>0.9.1</td>
-<td>0.9.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/requests-unixsocket">requests-unixsocket</a></td>
-<td>0.3.0</td>
-<td>0.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/requirementslib">requirementslib</a></td>
-<td>1.6.4</td>
-<td>1.6.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/resolvelib">resolvelib</a></td>
-<td>0.8.1</td>
-<td>0.8.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/responses">responses</a></td>
-<td>0.21.0</td>
-<td>0.21.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/restructuredtext-lint">restructuredtext-lint</a></td>
-<td>1.4.0</td>
-<td>1.3.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/rethinkdb">rethinkdb</a></td>
-<td>2.4.9</td>
-<td>2.4.9</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/rfc3339-validator">rfc3339-validator</a></td>
-<td>0.1.4</td>
-<td>0.1.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/rfc3986">rfc3986</a></td>
-<td>2.0.0</td>
-<td>1.5.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/rfc3986-validator">rfc3986-validator</a></td>
-<td>0.1.1</td>
-<td>0.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/rfc3987">rfc3987</a></td>
-<td>1.3.8</td>
-<td>1.3.8</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/rope">rope</a></td>
-<td>1.2.0</td>
-<td>1.1.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/rsa">rsa</a></td>
-<td>4.8</td>
-<td>4.8</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/rsskey">rsskey</a></td>
-<td>0.1.0</td>
-<td>0.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/rst.linker">rst.linker</a></td>
-<td>2.3.0</td>
-<td>2.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ruamel.appconfig">ruamel.appconfig</a></td>
-<td>0.5.5</td>
-<td>0.5.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ruamel.std.argparse">ruamel.std.argparse</a></td>
-<td>0.8.3</td>
-<td>0.8.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ruamel.std.pathlib">ruamel.std.pathlib</a></td>
-<td>0.9.2</td>
-<td>0.9.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ruamel.yaml">ruamel.yaml</a></td>
-<td>0.17.21</td>
-<td>0.17.21</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ruamel.yaml.clib">ruamel.yaml.clib</a></td>
-<td>0.2.6</td>
-<td>0.2.6</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ruamel.yaml.jinja2">ruamel.yaml.jinja2</a></td>
-<td>0.2.7</td>
-<td>0.2.7</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ryd">ryd</a></td>
-<td>0.7.1</td>
-<td>0.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/s3transfer">s3transfer</a></td>
-<td>0.6.0</td>
-<td>0.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/scipy">scipy</a></td>
-<td>1.8.1</td>
-<td>1.7.3</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/scramp">scramp</a></td>
-<td>1.4.1</td>
-<td>1.4.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/seaborn">seaborn</a></td>
-<td>0.11.2</td>
-<td>0.11.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/SecretStorage">SecretStorage</a></td>
-<td>3.3.2</td>
-<td>3.3.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/semantic-version">semantic-version</a></td>
-<td>2.10.0</td>
-<td>2.10.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Send2Trash">Send2Trash</a></td>
-<td>1.8.0</td>
-<td>1.8.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/setproctitle">setproctitle</a></td>
-<td>1.2.3</td>
-<td>1.2.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/setuptools">setuptools</a></td>
-<td>62.6.0</td>
-<td>62.4.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/setuptools-rust">setuptools-rust</a></td>
-<td>1.3.0</td>
-<td>1.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sgmllib3k">sgmllib3k</a></td>
-<td>1.0.0</td>
-<td>1.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sgp4">sgp4</a></td>
-<td>2.21</td>
-<td>2.21</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/shiboken6">shiboken6</a></td>
-<td>6.3.1</td>
-<td>6.3.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/shtab">shtab</a></td>
-<td>1.5.5</td>
-<td>1.5.4</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/simplejson">simplejson</a></td>
-<td>3.17.6</td>
-<td>3.17.6</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/six">six</a></td>
-<td>1.16.0</td>
-<td>1.16.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/skia-pathops">skia-pathops</a></td>
-<td>0.7.2</td>
-<td>0.7.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/skyfield">skyfield</a></td>
-<td>1.42</td>
-<td>1.42</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/smmap">smmap</a></td>
-<td>5.0.0</td>
-<td>5.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sniffio">sniffio</a></td>
-<td>1.2.0</td>
-<td>1.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/snowballstemmer">snowballstemmer</a></td>
-<td>2.2.0</td>
-<td>2.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sortedcontainers">sortedcontainers</a></td>
-<td>2.4.0</td>
-<td>2.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/soupsieve">soupsieve</a></td>
-<td>2.3.2.post1</td>
-<td>2.3.2.post1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Sphinx">Sphinx</a></td>
-<td>5.0.2</td>
-<td>4.5.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinx-argparse">sphinx-argparse</a></td>
-<td>0.3.1</td>
-<td>0.3.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinx-argparse-cli">sphinx-argparse-cli</a></td>
-<td>1.8.3</td>
-<td>1.8.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinx-autobuild">sphinx-autobuild</a></td>
-<td>2021.3.14</td>
-<td>2021.3.14</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinx-autodoc-typehints">sphinx-autodoc-typehints</a></td>
-<td>1.18.3</td>
-<td>1.12.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinx-automodapi">sphinx-automodapi</a></td>
-<td>0.14.1</td>
-<td>0.14.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinx-bootstrap-theme">sphinx-bootstrap-theme</a></td>
-<td>0.8.1</td>
-<td>0.8.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-applehelp">sphinxcontrib-applehelp</a></td>
-<td>1.0.2</td>
-<td>1.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-asyncio">sphinxcontrib-asyncio</a></td>
-<td>0.3.0</td>
-<td>0.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-autoprogram">sphinxcontrib-autoprogram</a></td>
-<td>0.1.7</td>
-<td>0.1.7</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-bibtex">sphinxcontrib-bibtex</a></td>
-<td>2.4.2</td>
-<td>2.4.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-devhelp">sphinxcontrib-devhelp</a></td>
-<td>1.0.2</td>
-<td>1.0.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib_github_alt">sphinxcontrib_github_alt</a></td>
-<td>1.2</td>
-<td>1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-htmlhelp">sphinxcontrib-htmlhelp</a></td>
-<td>2.0.0</td>
-<td>2.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-httpdomain">sphinxcontrib-httpdomain</a></td>
-<td>1.8.0</td>
-<td>1.8.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-jsmath">sphinxcontrib-jsmath</a></td>
-<td>1.0.1</td>
-<td>1.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-mermaid">sphinxcontrib-mermaid</a></td>
-<td>0.7.1</td>
-<td>0.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib.mermaid">sphinxcontrib.mermaid</a></td>
-<td>0.7.1</td>
-<td>0.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-programoutput">sphinxcontrib-programoutput</a></td>
-<td>0.17</td>
-<td>0.17</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-qthelp">sphinxcontrib-qthelp</a></td>
-<td>1.0.3</td>
-<td>1.0.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-serializinghtml">sphinxcontrib-serializinghtml</a></td>
-<td>1.1.5</td>
-<td>1.1.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-spelling">sphinxcontrib-spelling</a></td>
-<td>7.5.1</td>
-<td>7.5.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxcontrib-websupport">sphinxcontrib-websupport</a></td>
-<td>1.2.4</td>
-<td>1.2.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxext-opengraph">sphinxext-opengraph</a></td>
-<td>0.6.3</td>
-<td>0.6.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinxext-rediraffe">sphinxext-rediraffe</a></td>
-<td>0.2.7</td>
-<td>0.2.7</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinx-gallery">sphinx-gallery</a></td>
-<td>0.10.1</td>
-<td>0.10.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinx-inline-tabs">sphinx-inline-tabs</a></td>
-<td>2022.1.2b11</td>
-<td>2022.1.2b11</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinx-notfound-page">sphinx-notfound-page</a></td>
-<td>0.8</td>
-<td>0.8</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphinx-rtd-theme">sphinx-rtd-theme</a></td>
-<td>1.0.0</td>
-<td>1.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sphobjinv">sphobjinv</a></td>
-<td>2.2.2</td>
-<td>2.2.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sqlalchemy2-stubs">sqlalchemy2-stubs</a></td>
-<td>0.0.2a24</td>
-<td>0.0.2a24</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sqlcipher3-binary">sqlcipher3-binary</a></td>
-<td>0.4.5</td>
-<td>0.4.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sqlparse">sqlparse</a></td>
-<td>0.4.2</td>
-<td>0.4.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/stack-data">stack-data</a></td>
-<td>0.3.0</td>
-<td>0.2.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/starlette">starlette</a></td>
-<td>0.20.3</td>
-<td>0.19.1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/stevedore">stevedore</a></td>
-<td>3.5.0</td>
-<td>3.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/stone">stone</a></td>
-<td>3.3.1</td>
-<td>3.3.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/strict-rfc3339">strict-rfc3339</a></td>
-<td>0.7</td>
-<td>0.7</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/sympy">sympy</a></td>
-<td>1.10.1</td>
-<td>1.10.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tabulate">tabulate</a></td>
-<td>0.8.10</td>
-<td>0.8.9</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tblib">tblib</a></td>
-<td>1.7.0</td>
-<td>1.7.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tenacity">tenacity</a></td>
-<td>8.0.1</td>
-<td>8.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/termcolor">termcolor</a></td>
-<td>1.1.0</td>
-<td>1.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/terminado">terminado</a></td>
-<td>0.15.0</td>
-<td>0.15.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/testpath">testpath</a></td>
-<td>0.6.0</td>
-<td>0.6.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/testresources">testresources</a></td>
-<td>2.0.1</td>
-<td>2.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/testscenarios">testscenarios</a></td>
-<td>0.5.0</td>
-<td>0.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/testtools">testtools</a></td>
-<td>2.5.0</td>
-<td>2.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/text-unidecode">text-unidecode</a></td>
-<td>1.3</td>
-<td>1.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/threadpoolctl">threadpoolctl</a></td>
-<td>3.1.0</td>
-<td>3.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tifffile">tifffile</a></td>
-<td>2022.5.4</td>
-<td>2022.5.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tinycss2">tinycss2</a></td>
-<td>1.1.1</td>
-<td>1.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tokenize-rt">tokenize-rt</a></td>
-<td>4.2.1</td>
-<td>4.2.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/toml">toml</a></td>
-<td>0.10.2</td>
-<td>0.10.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tomli">tomli</a></td>
-<td>2.0.1</td>
-<td>2.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tomli-w">tomli-w</a></td>
-<td>1.0.0</td>
-<td>1.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tomlkit">tomlkit</a></td>
-<td>0.11.0</td>
-<td>0.11.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/toolz">toolz</a></td>
-<td>0.11.2</td>
-<td>0.11.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tornado">tornado</a></td>
-<td>6.1</td>
-<td>6.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tox">tox</a></td>
-<td>3.25.0</td>
-<td>3.25.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/traitlets">traitlets</a></td>
-<td>5.3.0</td>
-<td>5.2.2.post1</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/trio">trio</a></td>
-<td>0.21.0</td>
-<td>0.21.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/trustme">trustme</a></td>
-<td>0.9.0</td>
-<td>0.9.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/typed-ast">typed-ast</a></td>
-<td>1.5.4</td>
-<td>1.5.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/typeguard">typeguard</a></td>
-<td>2.13.3</td>
-<td>2.13.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/types-colorama">types-colorama</a></td>
-<td>0.4.14</td>
-<td>0.4.14</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/types-docutils">types-docutils</a></td>
-<td>0.18.3</td>
-<td>0.18.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/types-freezegun">types-freezegun</a></td>
-<td>1.1.10</td>
-<td>1.1.10</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/types-mock">types-mock</a></td>
-<td>4.0.15</td>
-<td>4.0.15</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/types-pkg-resources">types-pkg-resources</a></td>
-<td>0.1.3</td>
-<td>0.1.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/types-pytz">types-pytz</a></td>
-<td>2022.1.0</td>
-<td>2021.3.8</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/types-requests">types-requests</a></td>
-<td>2.27.31</td>
-<td>2.27.30</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/types-six">types-six</a></td>
-<td>1.16.16</td>
-<td>1.16.16</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/types-typed-ast">types-typed-ast</a></td>
-<td>1.5.6</td>
-<td>1.5.6</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/types-urllib3">types-urllib3</a></td>
-<td>1.26.15</td>
-<td>1.26.15</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/typing">typing</a></td>
-<td>3.10.0.0</td>
-<td>3.10.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/typing-extensions">typing-extensions</a></td>
-<td>4.2.0</td>
-<td>4.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/typing-inspect">typing-inspect</a></td>
-<td>0.7.1</td>
-<td>0.7.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tzdata">tzdata</a></td>
-<td>2022.1</td>
-<td>2022.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/tzlocal">tzlocal</a></td>
-<td>4.2</td>
-<td>4.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/uc-micro-py">uc-micro-py</a></td>
-<td>1.0.1</td>
-<td>1.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/uharfbuzz">uharfbuzz</a></td>
-<td>0.26.0</td>
-<td>0.26.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ujson">ujson</a></td>
-<td>5.3.0</td>
-<td>5.3.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/ukkonen">ukkonen</a></td>
-<td>1.0.1</td>
-<td>1.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/unicodedata2">unicodedata2</a></td>
-<td>14.0.0</td>
-<td>14.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Unidecode">Unidecode</a></td>
-<td>1.3.4</td>
-<td>1.3.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/uri-template">uri-template</a></td>
-<td>1.2.0</td>
-<td>1.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/uritemplate">uritemplate</a></td>
-<td>4.1.1</td>
-<td>4.1.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/urllib3">urllib3</a></td>
-<td>1.26.9</td>
-<td>1.26.9</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/uvloop">uvloop</a></td>
-<td>0.16.0</td>
-<td>0.16.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/validictory">validictory</a></td>
-<td>1.1.2</td>
-<td>1.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/verspec">verspec</a></td>
-<td>0.1.0</td>
-<td>0.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/virtualenv">virtualenv</a></td>
-<td>20.14.1</td>
-<td>20.14.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/vistir">vistir</a></td>
-<td>0.5.2</td>
-<td>0.5.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/voluptuous">voluptuous</a></td>
-<td>0.13.1</td>
-<td>0.13.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/vulture">vulture</a></td>
-<td>2.4</td>
-<td>2.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/watchdog">watchdog</a></td>
-<td>2.1.9</td>
-<td>2.1.7</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/wcwidth">wcwidth</a></td>
-<td>0.2.5</td>
-<td>0.2.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/webcolors">webcolors</a></td>
-<td>1.12</td>
-<td>1.12</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/webencodings">webencodings</a></td>
-<td>0.5.1</td>
-<td>0.5.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/websocket-client">websocket-client</a></td>
-<td>1.3.3</td>
-<td>1.3.2</td>
-<td class=text-red>Outdated</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/websockets">websockets</a></td>
-<td>10.3</td>
-<td>10.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Werkzeug">Werkzeug</a></td>
-<td>2.1.2</td>
-<td>2.1.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/wheel">wheel</a></td>
-<td>0.37.1</td>
-<td>0.37.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/Whoosh">Whoosh</a></td>
-<td>2.7.4</td>
-<td>2.7.4</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/win-inet-pton">win-inet-pton</a></td>
-<td>1.1.0</td>
-<td>1.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/wrapt">wrapt</a></td>
-<td>1.14.1</td>
-<td>1.14.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/wsaccel">wsaccel</a></td>
-<td>0.6.3</td>
-<td>0.6.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/wsproto">wsproto</a></td>
-<td>1.1.0</td>
-<td>1.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/xattr">xattr</a></td>
-<td>0.9.9</td>
-<td>0.9.9</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/xmltodict">xmltodict</a></td>
-<td>0.13.0</td>
-<td>0.13.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/xxhash">xxhash</a></td>
-<td>3.0.0</td>
-<td>3.0.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/yaml2xbel">yaml2xbel</a></td>
-<td>0.0.3</td>
-<td>0.0.3</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/yapf">yapf</a></td>
-<td>0.32.0</td>
-<td>0.32.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/yarg">yarg</a></td>
-<td>0.1.9</td>
-<td>0.1.9</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/yarl">yarl</a></td>
-<td>1.7.2</td>
-<td>1.7.2</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/yaspin">yaspin</a></td>
-<td>2.1.0</td>
-<td>2.1.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/youtube_dl">youtube_dl</a></td>
-<td>2021.12.17</td>
-<td>2021.12.17</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/zict">zict</a></td>
-<td>2.2.0</td>
-<td>2.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/zipp">zipp</a></td>
-<td>3.8.0</td>
-<td>3.8.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/zope.event">zope.event</a></td>
-<td>4.5.0</td>
-<td>4.5.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/zope.exceptions">zope.exceptions</a></td>
-<td>4.5</td>
-<td>4.5</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/zope.i18nmessageid">zope.i18nmessageid</a></td>
-<td>5.0.1</td>
-<td>5.0.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/zope.interface">zope.interface</a></td>
-<td>5.4.0</td>
-<td>5.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/zope.schema">zope.schema</a></td>
-<td>6.2.0</td>
-<td>6.2.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/zope.testing">zope.testing</a></td>
-<td>4.10</td>
-<td>4.10</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/zope.testrunner">zope.testrunner</a></td>
-<td>5.4.0</td>
-<td>5.4.0</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/zopfli">zopfli</a></td>
-<td>0.2.1</td>
-<td>0.2.1</td>
-<td class=text-green>Up to date</td>
-</tr>
-<tr>
-<td><a href="https://pypi.org/project/zstandard">zstandard</a></td>
-<td>0.18.0</td>
-<td>0.17.0</td>
-<td class=text-red>Outdated</td>
-</tr>
-</table>
diff --git a/content/misc/_index.md b/content/misc/_index.md
index 940b1d3..799dc06 100644
--- a/content/misc/_index.md
+++ b/content/misc/_index.md
@@ -1,5 +1,5 @@
 ---
-title: Misc
+title: Miscellanea
 language: en
 ref: misc
 translationKey: misc
@@ -10,92 +10,3 @@ disable_feed: true
 
 Here are some miscellanous things I do.
 
-## Conlangs
-
-<dfn>Conlang</dfn> stands for *constructed language*.  Many people created
-conlangs for hobby or as linguistic experiments.
-
-I was inspired by the conlangs in <i>Inheritance Cycle</i> and <i>The Lord of
-the Rings</i>, as well as others like Esperanto, Dothraki, Toki Pona, et al and
-conlang from time to time as a hobby.  None of my conlangs reached its
-maturity, though, mainly due to loss of copies and lack of time.
-
-Some of my conlangs:
-
-- [Hàäsdáïga](/haasdaiga/)
-- [Ravna](/ravna/)
-- [Isanercent](/isanercent/)
-- [Djanzi](/djanzi/)
-
-## Books
-
-I'm not the bookworm I used to be, reading mostly mainstream books. Some books
-I read and liked:
-
-- <i>Dế Mèn phiêu lưu kí</i>, a famous children book in Vietnamese about an
-    arrogant cricket who learned humility and altruism during his journey.
-- <i>The adventures of Valya and Karik</i>, a Russian children book (my copy
-    was a Vietnamese translation) about the adventures of shrunken children in
-    which they learn about small animals around them.
-- <i>Sans famille</i>, a story about a child who had to leave his family for
-    poverty, though now that I think about it, it sounds like children
-    trafficking and child labor.
-- <i>Nineteen Eighty-Four</i>, a dystopian tragedy that is often mistaken as
-    criticism of socialism, while the actual object is authoritanism and mass
-    surveillance.
-- <i>The Hobbit</i> and <i>The Lord of the Rings</i>, the well-known fantasy
-    franchise
-- <i>Inheritance Cycle</i>, often labeled as rip-off <i>Star Wars</i> by haters
-- <i>Gulliver's Travels</i>, a book that's supposed to be satire but I didn't
-    know enough to understand these deep meanings.
-- <i>Le petit prince</i>, a novella with a childish theme but discuss many
-    aspects of life in a lighthearted way.
-- [Ellana][ellana] (<i>Le Pacte des MarchOmbres</i> series) (French)
-
-Books I'm reading:
-
-- [Ellana: L'envol][ellana-2] (<i>Le Pacte des MarchOmbres</i> series) (French)
-- [Tous les hommes sont mortels][hommes-mortels] (French)
-- <i>The Necromancer</i> (<i>The Secrets of the Immortal Nicholas Flamel</i>
-    series)
-
-Dropped:
-
-- [XKCD what if](what-if)
-- <i>A Storm of Swords</i>(<i>A Song of Ice and Fire</i> series)
-
-[what-if]: https://store.xkcd.com/pages/if-you-re-looking-for-the-what-if-book
-[ellana]: https://openlibrary.org/works/OL24210815W/Le_Pacte_des_MarchOmbres_-_Ellana
-[ellana-2]: https://openlibrary.org/works/OL24339191W/Ellana_l%27envol
-[hommes-mortels]: https://openlibrary.org/works/OL13053706W/Tous_les_hommes_sont_mortels
-
-## Project ideas
-
-Here are some project ideas that I have in mind, yet don't have the time to
-implement any of them.  You'll probably find some drafts, but practically no
-work is done:
-
-- a small shop management app
-- a modern text browser with vim keybinding
-- several non-standard libs:
-  - a rewrite for `time` module in Go
-  - internalisation modules
-- universal internalisation package, which contains common phrases like
-    "Settings", "Log in", "Account" pre-translated
-- redesign this blog
-- smaller and more maintainable, more packageable Anki clone
-
-## Comics
-
-Reading comics is my pastime.  I follow several webcomics, some of which you
-may have heard of:
-
-- [Pepper & Carrot](https://www.peppercarrot.com/)
-- [xkcd](https://xkcd.com): nerd stuff
-- [SMBC](https://smbc-comics.com): more nerd stuff, and usually less concise
-- [Oglaf](https://www.oglaf.com/): silly and occasionally NSFW comics
-- [Dinosaur comics](https://qwantz.com/): a 5-panel comics with only dialogues changing
-
-I also enjoy drawing every now and then, not that I want to be an artist or I
-draw well.  I just find scribbling something fun.  I recently decided to post
-[my doodles](/en/doodles/) on this website.
diff --git a/content/misc/books.md b/content/misc/books.md
new file mode 100644
index 0000000..6a2a284
--- /dev/null
+++ b/content/misc/books.md
@@ -0,0 +1,49 @@
+---
+title: Reading
+language: en
+ref: misc-books
+translationKey: misc-books
+disable_feed: true
+---
+
+I'm not the bookworm I used to be, reading mostly mainstream books. Some books
+I read and liked:
+
+- <i>Dế Mèn phiêu lưu kí</i>, a famous children book in Vietnamese about an
+    arrogant cricket who learned humility and altruism during his journey.
+- <i>The adventures of Valya and Karik</i>, a Russian children book (my copy
+    was a Vietnamese translation) about the adventures of shrunken children in
+    which they learn about small animals around them.
+- <i>Sans famille</i>, a story about a child who had to leave his family for
+    poverty, though now that I think about it, it sounds like children
+    trafficking and child labor.
+- <i>Nineteen Eighty-Four</i>, a dystopian tragedy that is often mistaken as
+    criticism of socialism, while the actual object is authoritanism and mass
+    surveillance.
+- <i>The Hobbit</i> and <i>The Lord of the Rings</i>, the well-known fantasy
+    franchise
+- <i>Inheritance Cycle</i>, often labeled as rip-off <i>Star Wars</i> by haters
+- <i>Gulliver's Travels</i>, a book that's supposed to be satire but I didn't
+    know enough to understand these deep meanings.
+- <i>Le petit prince</i>, a novella with a childish theme but discuss many
+    aspects of life in a lighthearted way.
+- [Ellana][ellana] (<i>Le Pacte des MarchOmbres</i> series) (French)
+
+Books I'm reading:
+
+- [Ellana: L'envol][ellana-2] (<i>Le Pacte des MarchOmbres</i> series) (French)
+- [Tous les hommes sont mortels][hommes-mortels] (French)
+- <i>The Necromancer</i> (<i>The Secrets of the Immortal Nicholas Flamel</i>
+    series)
+
+Dropped:
+
+- [XKCD what if](what-if)
+- <i>A Storm of Swords</i>(<i>A Song of Ice and Fire</i> series)
+
+See also: [book reviews](/en/book-reviews) I wrote on this site.
+
+[what-if]: https://store.xkcd.com/pages/if-you-re-looking-for-the-what-if-book
+[ellana]: https://openlibrary.org/works/OL24210815W/Le_Pacte_des_MarchOmbres_-_Ellana
+[ellana-2]: https://openlibrary.org/works/OL24339191W/Ellana_l%27envol
+[hommes-mortels]: https://openlibrary.org/works/OL13053706W/Tous_les_hommes_sont_mortels
diff --git a/content/misc/comics.md b/content/misc/comics.md
new file mode 100644
index 0000000..1b2f610
--- /dev/null
+++ b/content/misc/comics.md
@@ -0,0 +1,21 @@
+---
+title: Comics
+language: en
+ref: misc-comics
+translationKey: misc-comics
+disable_feed: true
+---
+
+Reading comics is my pastime.  I follow several webcomics, some of which you
+may have heard of:
+
+- [Pepper & Carrot](https://www.peppercarrot.com/)
+- [xkcd](https://xkcd.com): nerd stuff
+- [SMBC](https://smbc-comics.com): more nerd stuff, and usually less concise
+- [Oglaf](https://www.oglaf.com/): silly and occasionally NSFW comics
+- [Dinosaur comics](https://qwantz.com/): a 5-panel comics with only dialogues changing
+
+I also enjoy drawing every now and then, not that I want to be an artist or I
+draw well.  I just find scribbling something fun.  ~~I recently decided to post
+[my doodles](/en/doodles/) on this website.~~
+
diff --git a/content/misc/conlangs.md b/content/misc/conlangs.md
new file mode 100644
index 0000000..926c5b0
--- /dev/null
+++ b/content/misc/conlangs.md
@@ -0,0 +1,22 @@
+---
+title: Conlangs
+language: en
+ref: conlangs
+translationKey: conlangs
+disable_feed: true
+---
+
+<dfn>Conlang</dfn> stands for *constructed language*.  Many people created
+conlangs for hobby or as linguistic experiments.
+
+I was inspired by the conlangs in <i>Inheritance Cycle</i> and <i>The Lord of
+the Rings</i>, as well as others like Esperanto, Dothraki, Toki Pona, et al and
+conlang from time to time as a hobby.  None of my conlangs reached its
+maturity, though, mainly due to loss of copies and lack of time.
+
+Some of my conlangs:
+
+- [Hàäsdáïga](/haasdaiga/)
+- [Ravna](/ravna/)
+- [Isanercent](/isanercent/)
+- [Djanzi](/djanzi/)
diff --git a/content/misc/projects.md b/content/misc/projects.md
new file mode 100644
index 0000000..a0abf72
--- /dev/null
+++ b/content/misc/projects.md
@@ -0,0 +1,20 @@
+---
+title: Projects
+language: en
+ref: misc-projects
+translationKey: misc-projects
+disable_feeds: true
+---
+
+Here are some project ideas that I have in mind, yet don't have the time to
+implement any of them.  You'll probably find some drafts, but practically no
+work is done:
+
+- a small shop management app
+- a modern text browser with vim keybinding
+- several non-standard libs:
+  - a rewrite for `time` module in Go
+  - internalisation modules
+- universal internalisation package, which contains common phrases like
+    "Settings", "Log in", "Account" pre-translated
+- smaller and more maintainable, more packageable Anki clone
diff --git a/content/posts/2024-01-05-mayim-sqlite.md b/content/posts/2024-01-05-mayim-sqlite.md
index 3ce666a..a151bfe 100644
--- a/content/posts/2024-01-05-mayim-sqlite.md
+++ b/content/posts/2024-01-05-mayim-sqlite.md
@@ -182,7 +182,10 @@ GROUP BY product.id;
 Running that would result in rows with duplicated categories like:
 
 ```python
-Product(id=1, name='energy drink', prices=[Price(id=1, unit='bottle', price=12000), Price(id=2, unit='packets', price=70000)], categories=['drink', 'drink']),
+Product(id=1, name='energy drink',
+        prices=[Price(id=1, unit='bottle', price=12000),
+                Price(id=2, unit='packets', price=70000)],
+        categories=['drink', 'drink']),
 ```
 
 This is because I joined three tables at once, and the categories are repeated
diff --git a/content/posts/_index.fr.md b/content/posts/_index.fr.md
index 8eab8a9..4e472e7 100644
--- a/content/posts/_index.fr.md
+++ b/content/posts/_index.fr.md
@@ -2,7 +2,6 @@
 title: Blog
 lang: fr
 translationKey: posts
-categories: [blog]
 ---
 
 Voici mon blog
diff --git a/content/posts/_index.md b/content/posts/_index.md
index 7a11ae0..88529cd 100644
--- a/content/posts/_index.md
+++ b/content/posts/_index.md
@@ -2,7 +2,7 @@
 title: Blog
 lang: en
 translationKey: posts
-categories: [blog]
+reversed: true
 ---
 
 Here are my blog posts!
diff --git a/content/til/_index.fr.md b/content/til/_index.fr.md
index 2e98e4c..c331bf2 100644
--- a/content/til/_index.fr.md
+++ b/content/til/_index.fr.md
@@ -1,7 +1,6 @@
 ---
 title: AJA
 translationKey: til
-categories: [blog]
 ---
 
 (*Aujourd'hui J'ai Appris...* -- traduit de *Today I learned* en anglais.
diff --git a/content/til/_index.md b/content/til/_index.md
index f4b57b0..8808ccd 100644
--- a/content/til/_index.md
+++ b/content/til/_index.md
@@ -2,7 +2,6 @@
 title: TIL
 lang: en
 translationKey: til
-categories: [blog]
 ---
 
 These are lists of small tricks or fun trivia I learned.
diff --git a/dark.css b/dark.css
deleted file mode 100644
index 4c439ec..0000000
--- a/dark.css
+++ /dev/null
@@ -1,47 +0,0 @@
-:root {
-    --font-color: #eee;
-    --bg-color: #212121;
-
-    --link-color: #0a9dff;
-    --link-state-color:#ffa724;
-    --link-state-border-color: rgba(238, 54, 54, 0.5);
-
-    --thead-bg-color: #343a40;
-    --table-border-color: lightgrey;
-
-    --nav-bg-color: #242424;
-    --nav-link-color: #b6b6b6;
-
-    --pre-color: #333;
-    --pre-bg-color: #f1f1f1;
-
-    --bq-color: #ccc;
-    --hr-color: #333;
-
-    --pagination-bg-color: #373737;
-    --pagination-link-color: #b6b6b6;
-
-    --post-info-color: #599ada;
-
-    --switcher-color: #333;
-    --switcher-bg-color: #fff;
-}
-
-html {
-    font-family: monospace;
-}
-
-h1, h2, h3 {
-    color: #aeee00;
-}
-
-ul li {
-  list-style: '* '; /* Remove default bullets */
-}
-
-ul li::marker {
-    color: #ffa724;
-    font-weight: bold;
-}
-
-
diff --git a/feeds b/feeds
index c1e43ed..3d3bd47 100644
--- a/feeds
+++ b/feeds
@@ -8,7 +8,6 @@ https://www.matuzo.at/feed.xml
 https://adol.pw/index.xml
 https://shivering-isles.com/feed.xml
 https://blog.libreserver.org/rss.xml
-https://unixsheikh.com/feed.rss
 https://nerdteacher.com/feed/
 https://artemis.sh/feed.xml
 https://labs.tomasino.org/index.xml
diff --git a/i18n/de.yaml b/i18n/de.yaml
index 2ec1532..9662577 100644
--- a/i18n/de.yaml
+++ b/i18n/de.yaml
@@ -1,17 +1,20 @@
-book-reviews:
-  other: "Buchrezension"
-
-comics:
-  other: "Comics"
-
-projects:
-  other: "Projekten"
-
-til:
-  other: "HLI"
-
-translations:
-  other: "Diese Artikel ist verfügbar auf:"
-
-BookShare:
-  other: "Ich habe die Büche deren Rezension ich schreibe.  Wenn du dieses Buch lesen wöllte, schick mir eine E-Mail."
+aboutFediring: Über Fediring
+book-reviews: Buchrezension
+categories: Kategorien
+category: Kategorie
+comics: Bildergeschichte
+conlangs: Kunstsprachen
+feadAttribution: 'mit <a href="https://git.sr.ht/~cnx/fead">fead</a> gemacht'
+next: Nächste
+otherSites: Andere Seiten
+prev: Vorherige
+projects: Projekten
+random: zufällig
+sections: Abschnitte dieser Seite
+skipToContent: Zum Hauptinhalt springen
+tag: Thema
+tags: Themen
+til: HLI
+TOC: Inhaltsverzeichnis
+translations: "Diese Artikel ist verfügbar auf:"
+BookShare: Ich habe die Büche deren Rezension ich schreibe.  Wenn du dieses Buch lesen wöllte, schick mir eine E-Mail.
diff --git a/i18n/en.yaml b/i18n/en.yaml
index 2c89192..859d687 100644
--- a/i18n/en.yaml
+++ b/i18n/en.yaml
@@ -1,23 +1,20 @@
-book-reviews:
-  other: "Book Reviews"
-
-comics:
-  other: "Comics"
-
-conlangs:
-  other: "Conlangs"
-
-projects:
-  other: "Free Software projects directory"
-
-til:
-  other: "TIL"
-
-translations:
-  other: "Available translations"
-
-BookShare:
-  other: "If I write a book review, that means I own a copy of that book. Send me an email if you want me to send you the copy."
-
-WikiContribute:
-  other: "This post is a part of a wiki.  That means, you can contribute to it by sending me an email to"
+aboutFediring: About Fediring
+book-reviews: Book Reviews
+category: category
+categories: categories
+comics: Comics
+conlangs: Conlangs
+feadAttribution: 'Generated by <a href="https://git.sr.ht/~cnx/fead">fead</a>'
+next: next
+otherSites: Other sites
+prev: previous
+projects: Projects
+random: random
+sections: Site sections
+skipToContent: Skip to main content
+tag: tag
+tags: tags
+til: TIL
+TOC: Contents
+translations: Available translations
+BookShare: If I write a book review, that means I own a copy of that book. Send me an email if you want me to send you the copy.
diff --git a/i18n/fr.yaml b/i18n/fr.yaml
index a2cab7c..236fad2 100644
--- a/i18n/fr.yaml
+++ b/i18n/fr.yaml
@@ -1,17 +1,20 @@
-book-reviews:
-  other: "Livres"
-
-comics:
-  other: "Bédés"
-
-projects:
-  other: "Projets"
-
-til:
-  other: "AJA"
-
-translations:
-  other: "Des traductions disponibles"
-
-BookShare:
-  other: "Quand j'écris un critique d'un livre, ça signifie que j'en ai un copie. Si vous le voulez, envoyez-moi un couriel et je vais vous l'envoyer."
+aboutFediring: à propos de Fediring
+book-reviews: livres
+categories: catégories
+category: catégorie
+comics: BDs
+conlangs: langues construites
+feadAttribution: 'créée par <a href="https://git.sr.ht/~cnx/fead">fead</a>'
+next: suivant
+otherSites: autre part
+prev: précédent
+projects: projets
+random: aléatoire
+sections: sections du site
+skipToContent: aller au contenu
+tag: mot clé
+tags: mot clés
+til: AJA
+TOC: Sommaire
+translations: Des traductions disponibles
+BookShare: Quand j'écris un critique d'un livre, ça signifie que j'en ai un copie. Si vous le voulez, envoyez-moi un couriel et je vais vous l'envoyer.
diff --git a/i18n/vi.yaml b/i18n/vi.yaml
index 782ef24..7c92a65 100644
--- a/i18n/vi.yaml
+++ b/i18n/vi.yaml
@@ -1,8 +1,20 @@
-book-reviews:
-  other: "Review sách"
-
-translations:
-  other: "Bài viết này được dịch thành:"
-
-BookShare:
-  other: "Tôi viết review về một cuốn sách có nghĩa là tôi có cuốn sách đó.  Nếu bạn muốn mượn tôi cuốn sách này, bạn có thể hỏi mượn tôi qua email."
+aboutFediring: Fediring là gì
+book-reviews: Review sách
+categories: phân loại
+category: phân loại
+comics: Truyện tranh
+conlangs: Ngôn ngữ nhân tạo
+feadAttribution: 'tạo bởi <a href="https://git.sr.ht/~cnx/fead">fead</a>'
+next: sau
+otherSites: Các trang khác
+prev: trước
+projects: Dự án
+random: ngẫu nhiên
+sections: Các mục trong trang
+skipToContent: đi đến bài viết
+tag: từ khoá
+tags: từ khoá
+til: Hôm nay tôi biết được
+TOC: Mục lục
+translations: "Bài viết này được dịch sang:"
+BookShare: Tôi viết review về một cuốn sách có nghĩa là tôi có cuốn sách đó.  Nếu bạn muốn mượn tôi cuốn sách này, bạn có thể hỏi mượn tôi qua email.
diff --git a/layouts/_default/_markup/render-heading.html b/layouts/_default/_markup/render-heading.html
new file mode 100644
index 0000000..73f5c26
--- /dev/null
+++ b/layouts/_default/_markup/render-heading.html
@@ -0,0 +1,7 @@
+{{ $id := .Anchor | safeURL }}
+<h{{ .Level }} id="{{ $id }}">
+  <span class="decorative" aria-hidden="true"></span>
+  <a class="heading-anchor" href="#{{ $id }}">
+    {{ .Text | safeHTML }}
+  </a>
+</h{{ .Level }}>
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
new file mode 100644
index 0000000..f13b730
--- /dev/null
+++ b/layouts/_default/baseof.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="{{ .Page.Language.Lang }}">
+<head>
+    {{ partial "head.html" . }}
+</head>
+<body>
+    <a class="skip-main" href="#main">{{ i18n "skipToContent" | humanize }}</a>
+    <header class="common-header"> 
+        {{ partial "header.html" . }}
+    </header>
+    <div class="container">
+        <aside id="left">
+            {{ partial "left-sidebar.html" . }}
+        </aside>
+        <main id="main" tabindex="-1"> 
+            {{ block "main" . }}{{ end }}
+        </main>
+        <aside id="right">
+            {{ partial "right-sidebar.html" . }}
+        </aside>
+    </div>
+    {{ partial "footer.html" . }}
+</body>
+</html>
diff --git a/layouts/_default/books.html b/layouts/_default/books.html
index c0a74d0..449b5e0 100644
--- a/layouts/_default/books.html
+++ b/layouts/_default/books.html
@@ -1,11 +1,4 @@
 {{ define "main" }}
-{{ if .Menus }}
-<nav class="post-navigation">
-  {{ range .Menus }}
-  <a href="{{ .URL | absLangURL }}" title="{{ .Title }}">{{ .Name }}</a>
-  {{ end }}
-</nav>
-{{ end }}
 
 <article class="post h-entry">
   <header class="post-header">
diff --git a/layouts/_default/comic.html b/layouts/_default/comic.html
deleted file mode 100644
index 508df3c..0000000
--- a/layouts/_default/comic.html
+++ /dev/null
@@ -1,45 +0,0 @@
-{{ define "main" }}
-{{ if .Menus }}
-<nav class="post-navigation">
-  {{ range .Menus }}
-  <a href="{{ .URL | absLangURL }}" title="{{ .Title }}">{{ .Name }}</a>
-  {{ end }}
-</nav>
-{{ end }}
-
-<article class="post h-entry">
-  <header class="post-header">
-    <center>
-      <h1 class="p-name post-title{{ if .Params.draft }} draft{{end}}">{{ trim .Title  " " }}</h1>
-    {{ if in .Params.categories "comics" }}
-    </center>
-    {{ end}}
-  </header>
-  <section class="content e-content">
-    <center>
-    {{ partial "comicNav.html" . }}
-    <img title="{{ .Params.TitleText }}"
-         alt="Comic panels. See transcription below."
-         src="/comics/{{ .Params.ComicId }}/{{ .Params.ComicTitle }}.png"
-         srcset="/comics/{{ .Params.ComicId }}/{{ .Params.ComicTitle }}_full.png 2x"
-         >
-    {{ partial "comicNav.html" . }}
-    </center>
-    <details>
-      <summary>
-        Transcription and extras
-      </summary>
-      {{ .Content }}
-    </details>
-  </section>
-  {{ partial "post-info.html" . }}
-</article>
-
-{{ if and (.Site.Params.paginationSinglePost) (ne .Type "page") }}
-  {{ partial "paginationPost.html" . }}
-{{ end }}
-
-
-{{ partial "custom-webring.html" }}
-
-{{ end }}
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
new file mode 100644
index 0000000..3079687
--- /dev/null
+++ b/layouts/_default/list.html
@@ -0,0 +1,22 @@
+{{ define "main" }}
+    <div class="index-content">
+        {{ .Content }}
+    </div>
+
+    {{ if .Params.reversed }}
+    <ol class="articles h-feed" reversed>
+    {{ else }}
+    <ul>
+    {{ end }}
+        {{ range .Pages }}
+        <li>
+            {{ partial "post-summary.html" . }}
+        </li>
+        {{ end }}
+    {{ if .Params.reversed }}
+    </ol>
+    {{ else }}
+    </ul>
+    {{ end }}
+
+{{ end }}
diff --git a/layouts/_default/list.old.html b/layouts/_default/list.old.html
deleted file mode 100644
index 33bd8b5..0000000
--- a/layouts/_default/list.old.html
+++ /dev/null
@@ -1,20 +0,0 @@
-{{ define "main" }}
-    <div class="index-content">
-        {{ .Content }}
-    </div>
-
-    <div class="articles h-feed">
-        <h1 class="post-title">{{ i18n .Title }}</h1>
-        {{ if not .Params.no_feed }}
-        {{ range .Page.CurrentSection.Pages }}
-            <div class="post-short-list h-entry">
-                <header class="post-header"> 
-                    <h2 class="p-name post-title{{ if .Params.favorite }} favorite{{end}}{{ if .Params.draft }} draft{{end}}"><a class="u-url" href="{{ .RelPermalink }}">{{ trim .Title " " }}</a></h2>
-                </header>
-                {{ partial "post-info.html" . }}
-            </div>
-        {{ end }}
-        {{ end}}
-    </div>
-
-{{ end }}
diff --git a/layouts/_default/project.html b/layouts/_default/project.html
deleted file mode 100644
index 5bd36e0..0000000
--- a/layouts/_default/project.html
+++ /dev/null
@@ -1,68 +0,0 @@
-{{ define "main" }}
-{{ if .Menus }}
-<nav class="post-navigation">
-  {{ range .Menus }}
-  <a href="{{ .URL | absLangURL }}" title="{{ .Title }}">{{ .Name }}</a>
-  {{ end }}
-</nav>
-{{ end }}
-
-<article class="post h-entry">
-  <header class="post-header">
-    <h1 class="p-name post-title{{ if .Params.favorite }} favorite{{end}}{{ if .Params.draft }} draft{{end}}">{{ trim .Title  " " }}</h1>
-  </header>
-  <div class="content e-content">
-    <h2>Project info</h2>
-    <dl class="data">
-      <dt>Project site</dt>
-      <dd>
-      <a href="{{ .Params.projectUrl }}">
-        {{ .Params.name }}
-      </a>
-      </dd>
-      {{ if isSet .Params "author" }}
-        <dt>Creator</dt>
-        {{ if isSet .Params "authorurl" }}
-          <dd><a href={{.Params.authorURL}}>{{ .Params.author }}</a></dd>
-        {{ else }}
-          <dd>{{ .Params.author }}</dd>
-        {{ end }}
-      {{ end }}
-      {{ if isSet .Params "maintainers" }}
-        <dt>Maintainers</dt>
-        {{ range $maintainer := .Params.maintainers }}
-          {{ if isSet $maintainer "URL" }}
-          <dd><a href={{$maintainer.URL}}>{{ $maintainer.name }}</a></dd>
-          {{ else }}
-          <dd>{{ $maintainer.name }}</dd>
-          {{ end }}
-        {{ end }}
-      {{ end }}
-      <dt>Status</dt>
-      <dd>{{ .Params.projectStatus }}</dd>
-    </dl>
-    {{ .Content }}
-    <hr>
-    {{ if eq .Params.projectStatus "dead" }}
-    <p>
-      The project is currently dead. You can fork it if you find it helpful.
-    </p>
-    {{ else }}
-    <p>
-      The development of project is {{.Params.projectStatus}}.
-      You can help this project by contributing code, finding new issues,
-      suggesting new features, or donation.
-    </p>
-    {{ end }}
-  </div>
-  {{ partial "post-info.html" . }}
-</article>
-
-{{ if and (.Site.Params.paginationSinglePost) (ne .Type "page") }}
-  {{ partial "paginationPost.html" . }}
-{{ end }}
-
-
-{{ partial "custom-webring.html" }}
-
-{{ end }}
diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml
new file mode 100644
index 0000000..cb728d9
--- /dev/null
+++ b/layouts/_default/rss.xml
@@ -0,0 +1,34 @@
+{{- $pctx := . -}}
+{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
+{{- $pages := where $pctx.RegularPages ".Params.disable_feed" "!=" true -}}
+{{- $limit := .Site.Config.Services.RSS.Limit -}}
+{{- if ge $limit 1 -}}
+{{- $pages = $pages | first $limit -}}
+{{- end -}}
+{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>{{ if eq  .Title  .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title>
+    <link>{{ .Permalink }}</link>
+    <description>{{ .Site.Title }}{{ if ne  .Title  .Site.Title }}{{ with .Title }} ({{.}}){{ end }}{{ end }}</description>
+    <generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
+    <language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
+    <managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
+    <webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
+    <copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
+    <lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
+    {{ with .OutputFormats.Get "RSS" }}
+    {{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
+    {{ end }}
+    {{ range $pages }}
+    <item>
+      <title>{{ .Title }}</title>
+      <link>{{ .Permalink }}</link>
+      <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
+      {{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
+      <guid>{{ .Permalink }}</guid>
+      <description>{{ .Content | html }}</description>
+    </item>
+    {{ end }}
+  </channel>
+</rss>
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
new file mode 100644
index 0000000..c94d359
--- /dev/null
+++ b/layouts/_default/single.html
@@ -0,0 +1,22 @@
+{{ define "main" }}
+    <article class="post h-entry">
+        {{ .Content }}
+        {{ partial "post-info.html" . }}
+    </article>
+    <hr>
+    <nav>
+        {{with .Prev}}
+        <a class="prev-link" href="{{.Permalink}}" title="{{ .Title }}">
+            Previous post
+        </a>
+        {{end}}
+        {{with .Next}}
+        <a class="next-link float" href="{{.Permalink}}" title="{{ .Title }}">
+            Next post
+        </a>
+        {{end}}
+    </nav>
+    <hr>
+    Would you like to discuss this post?
+    <a href="mailto:huyngo@disroot.org?subject=Re: {{ trim .Title " "}}">Email me!</a>
+{{ end }}
diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html
new file mode 100644
index 0000000..7b3adb9
--- /dev/null
+++ b/layouts/_default/taxonomy.html
@@ -0,0 +1,12 @@
+{{ define "main" }}
+    <h1>{{ i18n .Data.Singular | humanize }}: {{ .Title }}</h1>
+    <div class="post-info">
+        <a href="{{ (printf "%s/%s" .Site.LanguagePrefix .Data.Plural) | absLangURL }}">{{ i18n (printf "toAll%s" (.Data.Plural | humanize )) | humanize }}</a>
+    </div>
+    <ol reversed>
+        {{ range .Paginator.Pages }}
+        <li>{{ partial "post-summary.html" . }}</li>
+        {{ end }}
+    </ol>
+
+{{ end }}
diff --git a/layouts/_default/terms.html b/layouts/_default/terms.html
new file mode 100644
index 0000000..d4e745e
--- /dev/null
+++ b/layouts/_default/terms.html
@@ -0,0 +1,19 @@
+{{ define "main" }}
+    <div class="index-content">
+        {{ .Content }}
+    </div>
+
+    <h1>{{ i18n .Title }}</h1>
+
+    <ul class="terms">
+        {{ range $key, $value := .Data.Terms }}
+        <li>
+            <a href="{{ (print $.Data.Plural "/" (lower $key)) | absLangURL }}">
+            {{ $key }}
+            </a>
+            ({{ len $value }})
+        </li>
+        {{ end }}
+    </ul>
+
+{{ end }}
\ No newline at end of file
diff --git a/layouts/_default/wiki.html b/layouts/_default/wiki.html
deleted file mode 100644
index 0e933b5..0000000
--- a/layouts/_default/wiki.html
+++ /dev/null
@@ -1,32 +0,0 @@
-{{ define "main" }}
-{{ if .Menus }}
-<nav class="post-navigation">
-	{{ range .Menus }}
-	<a href="{{ .URL | absLangURL }}" title="{{ .Title }}">{{ .Name }}</a>
-	{{ end }}
-</nav>
-{{ end }}
-
-<article class="post h-entry">
-	<header class="post-header">
-		<h1 class="p-name post-title{{ if .Params.favorite }} favorite{{end}}{{ if .Params.draft }} draft{{end}}">{{ trim .Title  " " }}</h1>
-	</header>
-	<div class="content e-content">
-		{{ .Content }}
-		<hr>
-		{{ i18n "WikiContribute" }}
-		<a href="mailto:huyngo+{{ .Params.wiki }}@disroot.org">
-			huyngo+{{ .Params.wiki }}@disroot.org
-		</a>
-	</div>
-	{{ partial "post-info.html" . }}
-</article>
-
-{{ if and (.Site.Params.paginationSinglePost) (ne .Type "page") }}
-	{{ partial "paginationPost.html" . }}
-{{ end }}
-
-
-{{ partial "custom-webring.html" }}
-
-{{ end }}
diff --git a/layouts/index.html b/layouts/index.html
new file mode 100644
index 0000000..c1da783
--- /dev/null
+++ b/layouts/index.html
@@ -0,0 +1,14 @@
+{{ define "main" }}
+    <div class="homepage-content">
+        {{ .Content }}
+    </div>
+    {{ with .Site.GetPage "section" "posts" }}
+    {{ range first 1 .Pages }}
+    <article class="embedded">
+        <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+        {{ .Content | truncate 1000 }}
+    </article>
+    {{ end }}
+    {{ end }}
+
+{{ end }}
diff --git a/layouts/index.old.html b/layouts/index.old.html
deleted file mode 100644
index 8367de4..0000000
--- a/layouts/index.old.html
+++ /dev/null
@@ -1,19 +0,0 @@
-{{ define "main" }}
-    <div class="homepage-content">
-        {{ .Content }}
-        <ul>
-            {{ range .Site.Sections }}
-            <li> <a href="{{ .Permalink }}">{{ i18n .Title }}</a> </li>
-            {{ end }}
-        </ul>
-    </div>
-
-    <div class="articles h-feed">
-        {{ $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
-        {{ range (.Paginate $pages).Pages }}
-            {{ partial "post-summary.html" . }}
-        {{ end }}
-        {{ partial "pagination.html" . }}
-    </div>
-
-{{ end }}
diff --git a/layouts/partials/custom-webring.html b/layouts/partials/custom-webring.html
index 604afc4..3dd9977 100644
--- a/layouts/partials/custom-webring.html
+++ b/layouts/partials/custom-webring.html
@@ -1,17 +1,16 @@
 <section class="webring">
   <h2 class="no-prefix">Fediring</h2>
-  Look at my fedi fellows' sites:
-  <ol>
-    <li style="list-style-type: '← ';"><a href="https://fediring.net/previous?host=xrvs.net">Previous site</a></li>
-    <li style="list-style-type: '? ';"><a href="https://fediring.net/">What is Fediring?</a></li>
-    <li style="list-style-type: '→ ';"><a href="https://fediring.net/next?host=xrvs.net">Next site</a></li>
-  </ol>
-  <h2 class="no-prefix">Articles from blogs I read</h2>
-  <section class="articles">
+  <ul>
+    <li><a href="https://fediring.net/" hreflang="en">{{ i18n "aboutFediring" }}</a></li>
+    <li><a class="prev-link" href="https://fediring.net/previous?host=example.com">{{ i18n "prev" }}</a></li>
+    <li><a class="random-link" href="https://fediring.net/random">{{ i18n "random" }}</a></li>
+    <li><a class="next-link" href="https://fediring.net/next?host=example.com">{{ i18n "next" }}</a></li>
+  </ul>
+  <h2 class="no-prefix">{{ i18n "otherSites" }}</h2>
+  <div class="articles">
     {{ partial "webring-articles.html" }}
-  </section>
+  </div>
   <small class="attribution">
-    Generated by
-    <a href="https://git.sr.ht/~cnx/fead">fead</a>
+    {{ i18n "feadAttribution" | safeHTML }}
   </small>
 </section>
diff --git a/layouts/partials/fa-icons/email.svg b/layouts/partials/fa-icons/email.svg
new file mode 100644
index 0000000..e3d84fe
--- /dev/null
+++ b/layouts/partials/fa-icons/email.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path fill="currentColor" d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"/></svg>
diff --git a/layouts/partials/fa-icons/github.svg b/layouts/partials/fa-icons/github.svg
new file mode 100644
index 0000000..c80fea7
--- /dev/null
+++ b/layouts/partials/fa-icons/github.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
diff --git a/layouts/partials/fa-icons/liberapay.svg b/layouts/partials/fa-icons/liberapay.svg
new file mode 100644
index 0000000..19d90a4
--- /dev/null
+++ b/layouts/partials/fa-icons/liberapay.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1536 1796">
+    <path fill="currentColor" d="M469.093 132l-247.737 38.364L18.4 1018.984C6.639 1069.078.554 1116.24.024 1160.442c-.551 44.224 8.502 83.402 27.147 117.495 18.649 34.116 49.543 60.997 92.707 80.704 43.163 19.706 102.54 29.551 178.208 29.551l47.966-196.585c-27.715-2.118-49.321-6.922-64.769-14.402-15.447-7.439-26.337-17.28-32.736-29.55-6.4-12.247-9.368-26.36-8.816-42.336.53-15.978 2.921-33.592 7.202-52.77l222.16-920.465zm382.159 380.586c-63.93 0-123.348 5.038-178.209 15.145-54.882 10.15-103.666 21.616-146.257 34.394L261.5 1668h236.522l71.93-289.245c36.212 6.4 72.443 9.601 108.679 9.601 74.566 0 143.572-13.108 206.971-39.192 63.379-26.106 117.675-62.573 162.98-109.466 45.154-46.871 80.62-102.513 106.196-166.994 25.576-64.416 38.365-135.6 38.365-213.386h.165c0-47.952-6.663-92.898-19.948-135.002-13.35-42.082-33.847-78.848-61.541-110.294-27.802-31.424-63.199-56.212-106.364-74.33-43.14-18.095-94.554-27.15-154.205-27.15zm-30.294 199.73c50.071 0 85.235 16.012 105.492 47.966 20.216 31.953 30.337 70.875 30.337 116.665 0 46.893-6.643 89.745-19.948 128.629-13.35 38.925-31.989 72.212-55.954 99.907-23.987 27.716-53.024 49.301-87.118 64.728-34.094 15.468-71.927 23.175-113.48 23.175-26.636 0-48.992-2.099-67.087-6.375l111.866-465.095c29.812-6.4 61.776-9.601 95.892-9.601z" fill="#1a171b"/>
+</svg>
diff --git a/layouts/partials/fa-icons/mastodon.svg b/layouts/partials/fa-icons/mastodon.svg
new file mode 100644
index 0000000..d9baf27
--- /dev/null
+++ b/layouts/partials/fa-icons/mastodon.svg
@@ -0,0 +1 @@
+<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="mastodon" class="svg-inline--fa fa-mastodon fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="#6364FF" d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>
diff --git a/layouts/partials/fa-icons/matrix.svg b/layouts/partials/fa-icons/matrix.svg
new file mode 100644
index 0000000..4aefc50
--- /dev/null
+++ b/layouts/partials/fa-icons/matrix.svg
@@ -0,0 +1,12 @@
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"

+	 viewBox="0 0 620 520" style="enable-background:new 0 0 620 520;" xml:space="preserve">

+<path fill="currentColor" d="M13.7,11.9v496.2h35.7V520H0V0h49.4v11.9H13.7z"/>

+<path fill="currentColor" d="M166.3,169.2v25.1h0.7c6.7-9.6,14.8-17,24.2-22.2c9.4-5.3,20.3-7.9,32.5-7.9c11.7,0,22.4,2.3,32.1,6.8

+	c9.7,4.5,17,12.6,22.1,24c5.5-8.1,13-15.3,22.4-21.5c9.4-6.2,20.6-9.3,33.5-9.3c9.8,0,18.9,1.2,27.3,3.6c8.4,2.4,15.5,6.2,21.5,11.5

+	c6,5.3,10.6,12.1,14,20.6c3.3,8.5,5,18.7,5,30.7v124.1h-50.9V249.6c0-6.2-0.2-12.1-0.7-17.6c-0.5-5.5-1.8-10.3-3.9-14.3

+	c-2.2-4.1-5.3-7.3-9.5-9.7c-4.2-2.4-9.9-3.6-17-3.6c-7.2,0-13,1.4-17.4,4.1c-4.4,2.8-7.9,6.3-10.4,10.8c-2.5,4.4-4.2,9.4-5,15.1

+	c-0.8,5.6-1.3,11.3-1.3,17v103.3h-50.9v-104c0-5.5-0.1-10.9-0.4-16.3c-0.2-5.4-1.3-10.3-3.1-14.9c-1.8-4.5-4.8-8.2-9-10.9

+	c-4.2-2.7-10.3-4.1-18.5-4.1c-2.4,0-5.6,0.5-9.5,1.6c-3.9,1.1-7.8,3.1-11.5,6.1c-3.7,3-6.9,7.3-9.5,12.9c-2.6,5.6-3.9,13-3.9,22.1

+	v107.6h-50.9V169.2H166.3z"/>

+<path fill="currentColor" d="M506.3,508.1V11.9h-35.7V0H520v520h-49.4v-11.9H506.3z"/>

+</svg>

diff --git a/layouts/partials/fa-icons/patreon.svg b/layouts/partials/fa-icons/patreon.svg
new file mode 100644
index 0000000..13df44e
--- /dev/null
+++ b/layouts/partials/fa-icons/patreon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path fill="currentColor" d="M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"/></svg>
diff --git a/layouts/partials/fa-icons/pleroma.svg b/layouts/partials/fa-icons/pleroma.svg
new file mode 100644
index 0000000..ba4bc25
--- /dev/null
+++ b/layouts/partials/fa-icons/pleroma.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1536 1792">
+    <path fill="#ffbe82" d="M119.568 128A119.569 119.569 0 0 0 0 247.568V1664h381.701V128H119.568zm455.282 0v768h266.73a119.569 119.569 0 0 0 119.57-119.568V128h-386.3zm0 1154.299V1664h266.73a119.569 119.569 0 0 0 119.57-119.568v-262.133h-386.3z"/>
+</svg>
diff --git a/layouts/partials/fa-icons/sourcehut.svg b/layouts/partials/fa-icons/sourcehut.svg
new file mode 100644
index 0000000..81621fe
--- /dev/null
+++ b/layouts/partials/fa-icons/sourcehut.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"></path></svg>
diff --git a/layouts/partials/font-awesome.html b/layouts/partials/font-awesome.html
new file mode 100644
index 0000000..55bf1b1
--- /dev/null
+++ b/layouts/partials/font-awesome.html
@@ -0,0 +1,9 @@
+<span class="inline-svg" title="{{ .network }}" aria-label="{{ .network }}">
+
+{{ $dict := newScratch }}
+
+{{ $dict.Set "svg" (partial (print "fa-icons/" .iconName ".svg")) }}
+
+{{ $dict.Get "svg" | safeHTML }}
+
+</span>
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
new file mode 100644
index 0000000..a93d3a3
--- /dev/null
+++ b/layouts/partials/footer.html
@@ -0,0 +1,17 @@
+<footer id="footer">
+    {{ $languagesCount := $.Site.Home.AllTranslations }}
+    {{ if gt $languagesCount 1 }}
+        {{ partial "language-switcher.html" . }}
+    {{ end }}
+
+    <div class="common-footer-bottom">
+        <div class="copyright">
+            <p>© 2021-{{ now.Year }} {{ .Site.Params.author }}<br>
+            {{ partial "copyright.html" . }}
+            </p>
+        </div> 
+        <div>
+            {{ partial "social.html" . }}
+        </div>
+    </div>
+</footer>
diff --git a/layouts/partials/head-extra.html b/layouts/partials/head-extra.html
deleted file mode 100644
index e3f256f..0000000
--- a/layouts/partials/head-extra.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<link rel="apple-touch-icon" sizes="180x180" href={{ "/apple-touch-icon.png" }}>
-<link rel="icon" type="image/png" sizes="32x32" href={{ "/favicon-32x32.png" }}>
-<link rel="icon" type="image/png" sizes="16x16" href={{ "/favicon-16x16.png" }}>
-<link rel="manifest" href={{ "/site.webmanifest" }}>
-{{ $light := resources.Get "css/highlight.css" }}
-{{ $dark := resources.Get "css/highdark.css" }}
-{{ $code := slice $light $dark | resources.Concat "css/code.css" | minify | fingerprint }}
-<link rel="stylesheet" type="text/css" href="{{ $code.RelPermalink }}">
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
new file mode 100644
index 0000000..be5ae30
--- /dev/null
+++ b/layouts/partials/head.html
@@ -0,0 +1,31 @@
+<!-- Basic stuff -->
+<meta charset="utf-8">
+<meta name="HandheldFriendly" content="True">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="referrer" content="no-referrer">
+
+<meta name="color-scheme" content="dark light">
+
+<title>{{ .Title }} - {{ .Site.Title }}</title>
+<meta name="description" content="{{ .Site.Params.Description }}">
+
+{{ with .OutputFormats.Get "rss" -}}
+<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}"
+                       href="{{ .Permalink}}" title="$.Site.Title" />
+{{ end -}}
+
+<link rel="icon" type="image/x-icon" href="/favicon.ico">
+<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
+<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
+<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
+<link rel="manifest" href="/site.webmanifest">
+
+{{ $main := resources.Get "css/main.css"}}
+{{ $dark := resources.Get "css/dark.css" }}
+{{ $light := resources.Get "css/light.css" }}
+{{ $syntax_dark := resources.Get "css/syntax-dark.css" }}
+{{ $syntax_light := resources.Get "css/syntax-light.css" }}
+{{ $style := slice $main $dark $light $syntax_dark $syntax_light | resources.Concat "css/style.css" | minify | fingerprint }}
+<link rel="stylesheet" type="text/css" href="{{ $style.RelPermalink }}">
+
+{{ template "_internal/opengraph.html" . }}
diff --git a/layouts/partials/header.html b/layouts/partials/header.html
new file mode 100644
index 0000000..f9a00a9
--- /dev/null
+++ b/layouts/partials/header.html
@@ -0,0 +1,13 @@
+<nav>
+<a class="site-title" href="{{ .Site.BaseURL | relLangURL }}">
+    {{ .Site.Title }}
+</a>
+{{ if .Site.Menus.main }}
+{{ $currentPage := . }}
+{{ range .Site.Menus.main }}
+<a class="{{if or ($currentPage.IsMenuCurrent "main" .) ($currentPage.HasMenuCurrent "main" .) }} active{{end}}" href="{{ .URL | absLangURL }}" title="{{ .Title }}">{{ .Name }}</a>
+{{ end }}
+{{ end }}
+</nav>
+<h1 class="p-name post-title{{ if .Params.draft }} draft{{end}}">{{ trim .Title  " " }}</h1>
+{{ partial "post-language-switcher.html" . }}
diff --git a/layouts/partials/language-switcher.html b/layouts/partials/language-switcher.html
new file mode 100644
index 0000000..7e2e848
--- /dev/null
+++ b/layouts/partials/language-switcher.html
@@ -0,0 +1,5 @@
+<ul class="language-select">
+{{ range $.Site.Home.AllTranslations }}
+<li><a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a></li>
+{{ end }}
+</ul>
\ No newline at end of file
diff --git a/layouts/partials/left-sidebar.html b/layouts/partials/left-sidebar.html
new file mode 100644
index 0000000..403afc7
--- /dev/null
+++ b/layouts/partials/left-sidebar.html
@@ -0,0 +1,14 @@
+<details open>
+  <summary>{{ i18n "sections" }}</summary>
+  <ul>
+    {{ range sort .Site.Sections.ByTitle }}
+    <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
+    {{ end }}
+  </ul>
+</details>
+{{ if gt (len .TableOfContents) 32 }}
+<details open id="toc">
+  <summary>{{ i18n "TOC" }}</summary>
+  {{ .TableOfContents }}
+</details>
+{{ end }}
diff --git a/layouts/partials/pagination.html b/layouts/partials/pagination.html
new file mode 100644
index 0000000..c561c09
--- /dev/null
+++ b/layouts/partials/pagination.html
@@ -0,0 +1,16 @@
+{{ if or ( .Paginator.HasPrev ) ( .Paginator.HasNext ) }}
+    {{ $toNewPostsMessage := i18n "toNewPosts" }}
+    {{ $toOldPostsMessage := i18n "toOldPosts" }}    
+    <div class="pagination">
+        <div class="left pagination-item {{ if not .Paginator.HasPrev }}disabled{{ end }}">
+            {{ if .Paginator.HasPrev }}
+                <a href="{{ .Paginator.Prev.URL | relLangURL }}">{{ $toNewPostsMessage }}</a>
+            {{ end }}
+        </div>
+        <div class="right pagination-item {{ if not .Paginator.HasNext }}disabled{{ end }}">
+            {{ if .Paginator.HasNext }}
+                <a href="{{ .Paginator.Next.URL | relLangURL }}">{{ $toOldPostsMessage }}</a>
+            {{ end }}
+        </div>
+    </div>
+{{ end }}
diff --git a/layouts/partials/post-info.html b/layouts/partials/post-info.html
new file mode 100644
index 0000000..bb6e3c0
--- /dev/null
+++ b/layouts/partials/post-info.html
@@ -0,0 +1,28 @@
+<div class="post-info">
+    {{ with .Params.date }}
+    <div>
+        <time>{{ .Format "2006-01-02" }}</time>
+    </div>
+    {{ end }}
+
+
+    <div class="post-taxonomies">
+        {{ if .Params.categories }}
+        Categories:
+        <ul class="post-categories">
+            {{ range .Params.categories }}
+            <li><a href="{{ "categories/" | urlize | absLangURL }}">{{ . }}</a></li>
+            {{ end }}
+        </ul>
+        {{ end }}
+        <br>
+        {{ if .Params.tags }}
+        Tags:
+        <ul class="post-tags">
+            {{ range .Params.tags }}
+            <li><a href="{{ "tags/" | absLangURL }}{{ . | urlize }}">#{{ . }}</a></li>
+            {{ end }}
+        </ul>
+        {{ end }}
+    </div>
+</div>
diff --git a/layouts/partials/post-language-switcher.html b/layouts/partials/post-language-switcher.html
new file mode 100644
index 0000000..162cdf3
--- /dev/null
+++ b/layouts/partials/post-language-switcher.html
@@ -0,0 +1,16 @@
+{{ if .IsTranslated }}
+    {{ $pageLang := .Page.Lang}}
+    <ul class="post-translations">
+        {{ range .AllTranslations }}
+            {{ if eq .Lang $pageLang }}
+                <li>
+                    {{ upper .Lang }}
+                </li>
+            {{ else }}
+                <li>
+                    <a href="{{ .Permalink }}">{{ upper .Lang }}</a>
+                </li>
+            {{ end }}
+        {{ end }}
+    </ul>
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/post-pagination.html b/layouts/partials/post-pagination.html
new file mode 100644
index 0000000..2130181
--- /dev/null
+++ b/layouts/partials/post-pagination.html
@@ -0,0 +1,16 @@
+{{ if or ( .PrevInSection ) ( .NextInSection ) }}
+    <div class="pagination post-pagination">
+        <div class="left pagination-item {{ if not .NextInSection }}disabled{{ end }}">
+            {{ if .NextInSection }}
+                <a href="{{ .NextInSection.RelPermalink }}">{{ .NextInSection.Title }}</a>
+            {{ end }}
+        </div>
+        <div class="right pagination-item {{ if not .PrevInSection }}disabled{{ end }}">
+            {{ if .PrevInSection }}
+                <a href="{{ .PrevInSection.RelPermalink }}">{{ .PrevInSection.Title }}</a>
+            {{ end }}
+        </div>
+    </div>
+{{ end }}
+
+{{ partial "pagination-extra.html" . }}
diff --git a/layouts/partials/post-summary.html b/layouts/partials/post-summary.html
new file mode 100644
index 0000000..1396d64
--- /dev/null
+++ b/layouts/partials/post-summary.html
@@ -0,0 +1,6 @@
+{{ with .Params.date }}
+<time>{{ .Format "2006-01-02" }}</time>:
+{{ end }}
+<a class="u-url" href="{{ .RelPermalink }}">{{ trim .Title " " }}</a>
+{{ if .Params.draft }}(draft){{end}}
+{{ partial "post-language-switcher.html" . }}
diff --git a/layouts/partials/single-extra.html b/layouts/partials/right-sidebar.html
index 0d3b101..0d3b101 100644
--- a/layouts/partials/single-extra.html
+++ b/layouts/partials/right-sidebar.html
diff --git a/layouts/partials/social.html b/layouts/partials/social.html
new file mode 100644
index 0000000..2a10cb5
--- /dev/null
+++ b/layouts/partials/social.html
@@ -0,0 +1,17 @@
+<table class="social-icons">
+
+  {{ range $.Site.Params.Social }}
+  <tr>
+    <th>
+      {{ $network := humanize .id }}
+      {{ $network | title }}
+      {{ partial "font-awesome.html" (dict "iconName" .id "network" $network) }}
+    </th>
+    <td>
+      <a href="{{ .url }}" rel="me">
+        {{ .name }}
+      </a>
+    </td>
+  </tr>
+  {{ end }}
+</table>
diff --git a/static/android-chrome-192x192.png b/static/android-chrome-192x192.png
index 334222b..927e979 100644
--- a/static/android-chrome-192x192.png
+++ b/static/android-chrome-192x192.png
Binary files differdiff --git a/static/android-chrome-512x512.png b/static/android-chrome-512x512.png
index d935e97..457da20 100644
--- a/static/android-chrome-512x512.png
+++ b/static/android-chrome-512x512.png
Binary files differdiff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png
index 3dcf481..c045efc 100644
--- a/static/apple-touch-icon.png
+++ b/static/apple-touch-icon.png
Binary files differdiff --git a/static/favico_license.txt b/static/favico_license.txt
new file mode 100644
index 0000000..e750a75
--- /dev/null
+++ b/static/favico_license.txt
@@ -0,0 +1,6 @@
+This favicon was generated using the following font:
+
+- Font Title: Roboto Slab
+- Font Author: Copyright 2018 The Roboto Slab Project Authors (https://github.com/googlefonts/robotoslab)
+- Font Source: https://fonts.gstatic.com/s/robotoslab/v34/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjojISWaG5iddG-1A.ttf
+- Font License: Apache License, version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html))
diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png
index 4e2eee7..76c7bb4 100644
--- a/static/favicon-16x16.png
+++ b/static/favicon-16x16.png
Binary files differdiff --git a/static/favicon-32x32.png b/static/favicon-32x32.png
index 9ad0725..cd20132 100644
--- a/static/favicon-32x32.png
+++ b/static/favicon-32x32.png
Binary files differdiff --git a/static/favicon.ico b/static/favicon.ico
index d9ff90e..7875617 100644
--- a/static/favicon.ico
+++ b/static/favicon.ico
Binary files differdiff --git a/themes/anibus b/themes/anibus
deleted file mode 160000
-Subproject 4828ecf70d8e0ce169bbb87d86fc991e881e1dc
diff --git a/themes/victor b/themes/victor
deleted file mode 160000
-Subproject 30064d6bbae43546bd4e6d2672df4d60c74c758
diff --git a/webring.template b/webring.template
index ef4dc19..aeec53e 100644
--- a/webring.template
+++ b/webring.template
@@ -1,12 +1,12 @@
     <article class="footer-col article">
       <h3 class="title no-prefix">
         <small>
-        <a href="{link}" target="_blank" rel="noopener">{title}</a>
+        <a href="{link}" target="_blank" rel="external noopener">{title}</a>
         </small>
       </h3>
       <p class="summary">{summary}</p>
       <small class="source">
-        via <a href="{source_link}">{source_title}</a>
+        via <a rel="external" href="{source_link}">{source_title}</a>
       </small>
       <small class="date">{time:%F}</small>
     </article>