diff options
author | Ngô Ngọc Đức Huy <huyngo@disroot.org> | 2024-04-23 01:19:27 +0700 |
---|---|---|
committer | Ngô Ngọc Đức Huy <huyngo@disroot.org> | 2024-04-23 01:19:27 +0700 |
commit | 40f57ed72a601d8489a180f3bd9acd5e6c20d323 (patch) | |
tree | 6dd84fffd42e809f5123333deb8bb1a366a97cfc | |
parent | 2cff39c15ffb512f87ed5f8a2f71603e9ff2d4c7 (diff) | |
download | blog-40f57ed72a601d8489a180f3bd9acd5e6c20d323.tar.gz |
Update theme
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> |