diff --git a/config.toml b/config.toml index 4092d3641..be03294fa 100644 --- a/config.toml +++ b/config.toml @@ -9,6 +9,8 @@ default_language = "en" paginate_by = 10 +generate_feed = true + [markdown] highlight_code = true highlight_theme = "OneHalfLight" diff --git a/content/_index.md b/content/_index.md index 39c32cf09..b123fc40e 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,33 +1,41 @@ +++ +title = "Home" +template = "index.html" +++ -
- -

uutils

-
+
+ +
uutils
+
The uutils project reimplements ubiquitous command line utilities in Rust. Our goal is to modernize the utils, while retaining full compatibility with the existing utilities. -## Projects +# Projects
- - coreutils +

coreutils

+

+ The commands you use everyday: ls, cp, etc. +

- - findutils +

findutils

+

+ Finding what you need: find, locate, updatedb & xargs. +

- - diffutils +

diffutils

+

+ Comparing text and files: diff, cmp, diff3, sdiff. +

-## Crates +# Crates We maintain a variety of public crates to support our projects, which are published on [crates.io](https://crates.io/). @@ -36,7 +44,7 @@ which are published on [crates.io](https://crates.io/). - [`parse_datetime`](https://github.com/uutils/parse_datetime) - [`uutils-term-grid`](https://github.com/uutils/uutils-term-grid) -## Contributing +# Contributing You can help us out by: @@ -48,7 +56,7 @@ You can help us out by: You can join our [Discord server](https://discord.gg/wQVJbvJ) to discuss or ask anything concerning uutils. We're happy to help you get started with contributing! -## Friends of uutils +# Friends of uutils We collaborate with and build upon many other projects in the Rust community, either by using or providing crates. We highly recommend diff --git a/content/blog/_index.md b/content/blog/_index.md new file mode 100644 index 000000000..f784a32f4 --- /dev/null +++ b/content/blog/_index.md @@ -0,0 +1,8 @@ ++++ +template = "section.html" +sort_by = "date" +page_template = "post.html" +title = "Blog" ++++ + +You can subscribe to this blog with this [atom feed](/atom.xml). \ No newline at end of file diff --git a/content/blog/test.md b/content/blog/test.md new file mode 100644 index 000000000..b145f4217 --- /dev/null +++ b/content/blog/test.md @@ -0,0 +1,10 @@ ++++ +title = "Test post" +draft = true +date = 2024-01-31 +authors = ["Terts Diepraam"] ++++ + +This is a test post + +# Heading 1 \ No newline at end of file diff --git a/content/gsoc.md b/content/gsoc.md index 94314ccd7..2c3ee050c 100644 --- a/content/gsoc.md +++ b/content/gsoc.md @@ -1,9 +1,7 @@ +++ -title = "GSOC" +title = "Uutils at GSOC" +++ -# Uutils at GSOC - Google summer of code is: > Google Summer of Code is a global, online program focused on bringing diff --git a/static/style.css b/static/style.css index 9347d654e..53d5b442d 100644 --- a/static/style.css +++ b/static/style.css @@ -1,5 +1,3 @@ -/* All these styles are adapted from oranda to match their look */ -@import url("https://fonts.googleapis.com/css2?family=Fira+Sans:wght@400;700;900&display=swap"); :root { --dark-fg-color: #fff; --light-fg-color: #141414; @@ -68,6 +66,8 @@ body { body { line-height: inherit; margin: 0; + display: flex; + flex-direction: column; } .container { @@ -80,45 +80,119 @@ body { flex-grow: 1; } -/* REPO BANNER */ -.repo_banner { - background-color: var(--fg-color); - color: var(--bg-color); - padding-bottom: 0.375rem; - padding-top: 0.375rem; -} - -.repo_banner > a { - align-items: flex-start; - display: flex; - gap: 0.5rem; - height: 20px; - justify-content: center; -} -.repo_banner > a, -.repo_banner > a:hover { - color: rgb(248 250 252); -} -.repo_banner > a:hover { - text-decoration-color: #f8fafc; - text-decoration-line: underline; - text-underline-offset: 1px; -} - /* HEADER */ -.logo { +header { + display: grid; + grid-template-columns: repeat(2, max-content) max-content 1fr max-content; + column-gap: 1em; + align-items: center; + justify-items: center; + padding: 0.5rem 2rem; + width: 100%; + border-bottom: 1px solid #ddd; + font-size: 1.2rem; +} + +header .home { + color: black; + font-size: 2rem; + font-weight: bold; +} + +header .home:first-child { + display: flex; + align-items: center; + vertical-align: center; +} + +header .home svg { + height: 3rem; + width: 3rem; +} + +header a { + color: black; + border-bottom: 2px solid transparent; +} + +header a:hover:not(.home) { + color: black; + border-bottom: 2px solid #c04828; +} + +.navigation-block { + display: flex; + flex-direction: row; + gap: 1rem; +} + +header .icon { + display: flex; + align-items: center; +} + +#mobile-open-navigation button { + display: none; +} + +#mobile-open-navigation { + justify-self: right; +} + +@media (max-width: 640px) { + #mobile-open-navigation button { + display: block; + flex-direction: column; + background-color: transparent; + } + + #mobile-open-navigation button div { + margin: 0.5em 0; + width: 2em; + border-bottom: 0.25em solid black; + } + + header { + grid-template-columns: max-content 1fr; + } + + .spacer { + display: none; + } + + .navigation-block { + margin-top: 0.5em; + grid-column: auto / span 2; + justify-self: left; + } + + header:not(.open) .spacer, + header:not(.open) .navigation-block { + display: none; + } +} + +/* HERO */ +.hero { + margin: 2rem 0; +} + +.hero img { display: block; - height: 170px; + height: 14em; margin: auto; } -.title { + +.hero div { font-size: 3.75rem; line-height: 1; text-align: center; padding-bottom: 0.5rem; + font-weight: bold; } + @media (min-width: 640px) { - .title { + .hero div { font-size: 6rem; line-height: 1; } @@ -126,8 +200,9 @@ body { /* MAIN */ main { - margin: 6rem auto; - max-width: 80%; + margin: 1rem auto; + width: 80%; + flex: 1; } @media (min-width: 1024px) { @@ -137,7 +212,7 @@ main { } h1 { - font-size: 1.875rem; + font-size: 1.5rem; font-weight: 900; line-height: 2.25rem; line-height: 1.25; @@ -153,7 +228,7 @@ p { @media (min-width: 640px) { h1 { - font-size: 3.75rem; + font-size: 3rem; line-height: 1; } @@ -216,35 +291,91 @@ footer { width: 1.25rem; } +.github-icon-black { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='000' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E"); + height: 1em; + width: 1em; +} + .projects { display: flex; - flex-direction: row; + flex-direction: column; flex-wrap: wrap; justify-content: space-between; width: 100%; - gap: 1rem; + gap: 2rem; + margin-bottom: 1.5rem; } .project { - flex-basis: 20rem; - flex-grow: 1; - border: 3px solid #888; - border-radius: 6px; - padding: 2rem; + border-left: 0.3em solid gray; + padding: 1rem; text-decoration: none; color: var(--fg-color); - font-size: 2rem; - font-weight: 700; transition: text-decoration 0.3s; transition: border-color 0.3s; } -.project > span { + +.project h2 { + margin-top: 0; + font-family: monospace; +} + +.project p { + margin-bottom: 0; +} + +.project>span { color: transparent; transition: color 0.3s; } -.project:hover > span { + +.project:hover>span { color: black; } + .project:hover { - border-color: black; + border-color: #c04828; } + +.title { + font-size: 3em; + font-weight: bold; + margin-bottom: 0.5em; +} + +@media (min-width: 640px) { + .title { + font-size: 4rem; + line-height: 1; + } +} + +.details { + margin-bottom: 1.5em; + color: #333; +} + +.post-thingy { + display: block; + padding: 1em; + color: black; + background: #e5e5e5; + border-radius: 0.3em; + border: 0.2em solid #e5e5e5; + margin-bottom: 0.5em; +} + +.post-thingy:hover { + border-color: #c04828; + background: transparent; +} + +.post-thingy h1 { + margin-bottom: 0.2em; +} + +blockquote { + border-left: 0.2em solid gray; + padding-left: 1em; +} \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index b4aa0ad6e..aa4ecfbc9 100644 --- a/templates/base.html +++ b/templates/base.html @@ -1,35 +1,55 @@ - - - {%- block title -%} - {{ config.title }} - {%- endblock title -%} - - - - - - -
-
- -
- {%- block main -%} - {%- endblock main -%} -
-
- + + + + {%- block title -%} + {{ config.title }} + {%- endblock title -%} + + + + + + + +
+ {% include "logo.html" %} +
+
- - + +
+ +
+
+ {%- block main -%} + {%- endblock main -%} +
+ + + + \ No newline at end of file diff --git a/templates/logo.html b/templates/logo.html new file mode 100644 index 000000000..99b59fcbc --- /dev/null +++ b/templates/logo.html @@ -0,0 +1,61 @@ + \ No newline at end of file diff --git a/templates/page.html b/templates/page.html index c4a25dd6c..f3794a12a 100644 --- a/templates/page.html +++ b/templates/page.html @@ -5,5 +5,6 @@ {%- endblock title -%} {%- block main -%} +
{{ page.title }}
{{ page.content | safe }} {%- endblock main -%} diff --git a/templates/post.html b/templates/post.html new file mode 100644 index 000000000..ef86087ae --- /dev/null +++ b/templates/post.html @@ -0,0 +1,14 @@ +{%- extends "base.html" -%} + +{%- block title -%} + {{ page.title }} | uutils +{%- endblock title -%} + +{%- block main -%} +
{{ page.title }}
+
+
{{ page.date | date(format="%b %e, %Y") }}
+
{{ page.authors | join(sep=", ") }}
+
+ {{ page.content | safe }} +{%- endblock main -%} diff --git a/templates/section.html b/templates/section.html new file mode 100644 index 000000000..465981bd0 --- /dev/null +++ b/templates/section.html @@ -0,0 +1,15 @@ +{%- extends "base.html" -%} + +{%- block main -%} +
{{ section.title }}
+ {{ section.content | safe }} + + {% for post in section.pages %} + +

{{ post.title }}

+
{{ post.date | date(format="%b %e, %Y") }}
+
+ {% else %} + No posts yet. + {% endfor %} +{%- endblock main -%}