-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move over to Zola. #10
Conversation
Still needs a github action configuring.
3854558
to
6079e65
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great, I'm really looking forward to see this land. I reworked the description of xilem because I don't think vdom is central to the architecture (and might create misleading perception of architecture), and also describing it as medium-grained is intended to distinguish it from fine-grained approaches such as Leptos.
Other than that, minor typos and so on.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Haven't studied content, just a few details which I think need double checking.
<meta property="og:description" content="{{config.description}}"> | ||
<link rel="canonical" href="/"> | ||
<meta property="og:url" content="/"> | ||
<meta property="og:site_name" content=""> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems slightly strange - maybe it's right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've created an issue to track the contents of in base.html (#12)
<meta charset="utf-8"> | ||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1"> | ||
<!-- Begin Jekyll SEO tag v2.8.0 --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're not using Jekyll anymore, right?
<p><a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This website's content is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p> | ||
<p>All code used in this website is available under the Apache-2.0 license.</p> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This feels slightly off to me; in particular, what counts as code? Like, is it content in code blocks - what happens if someone moves some content between code blocks and not in a code block?
I think the simplest solution might be to just dual-license everything as both/either CC-BY and Apache, unless anyone else has a better suggestion. Whatever the final scheme is, we should probably describe it in a README of this repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll add an issue for this so we can resolve it in a subsequent PR.
Co-authored-by: Raph Levien <[email protected]>
typo Co-authored-by: Raph Levien <[email protected]>
typo Co-authored-by: Raph Levien <[email protected]>
I've implemented suggestions in both @raphlinus's and @DJMcNab' s reviews. I've got to go out now, but when I get back I'll get the publish github action working and the PR merged, so that the new site is live. In future it will be much easier to update the site - we just merge some new code to |
content/about.md
Outdated
@@ -0,0 +1,19 @@ | |||
+++ | |||
title = "About" | |||
slug = "about" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need to specify this explicitly, since it's the same as the filename here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please can you add a minimal README that contains instructions on how to build this locally and test changes?
@nicoburns I'll do that before merge. If you want to test in the meantime:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did a quick reading pass on the content. Found some typos, and I also have a few editorial suggestions regarding glazier
/ druid-shell
.
base_url = "https://linebender.org/" | ||
|
||
title = "Linebender" | ||
description = "Homepage for the Linebender organisation" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
description = "Homepage for the Linebender organisation" | |
description = "Homepage for the Linebender organization" |
Given that _index.md
uses the American spelling, might as well be consistent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I'm aiming for american spelling, so these fixes are all valid.
|
||
# Linebender projects | ||
|
||
Below is a list of the main linebender projects, and a short description of each project's purpose, as of 2023-04-22. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Below is a list of the main linebender projects, and a short description of each project's purpose, as of 2023-04-22. | |
Below is a list of the main Linebender projects, and a short description of each project's purpose, as of 2023-04-22. |
|
||
- [`vello`][vello] - An experimental GPU compute-centric 2D renderer. | ||
|
||
This crate contains a set of compute shaders and framework for rasterizing 2D |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This crate contains a set of compute shaders and framework for rasterizing 2D | |
This crate contains a set of compute shaders and a framework for rasterizing 2D |
Alternatively frameworks if there are many.
|
||
- [`glazier`][glazier] - An experimental windowing library. | ||
|
||
This crate provides access to the platform API, in order to create windows and contexts to draw to, and to feed platform events like keypresses and mouse/touch events into an application. It serves a similar purpose to [`winit`][winit], and indeed either `winit` or `glazier` can be used as the windowing layer with `vello`. It exists because we have slightly different goals to `winit`: we want to provide rich desktop integration including things like menus, but there is a chance in the future that we can merge the functionality that we need into `winit` and use that crate instead. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This crate provides access to the platform API, in order to create windows and contexts to draw to, and to feed platform events like keypresses and mouse/touch events into an application. It serves a similar purpose to [`winit`][winit], and indeed either `winit` or `glazier` can be used as the windowing layer with `vello`. It exists because we have slightly different goals to `winit`: we want to provide rich desktop integration including things like menus, but there is a chance in the future that we can merge the functionality that we need into `winit` and use that crate instead. | |
This crate provides access to the platform API, in order to create windows and contexts to draw to, and to feed platform events like keypresses and mouse/touch events into an application. It serves a similar purpose to [`winit`][winit], and indeed either `winit` or `glazier` can be used as the windowing layer with `vello`. It exists because our requirements for Xilem slightly differ from the goals of `winit`: we want to optimize for rich desktop applications, including things like menus, contrasted to `winit` which is more focused on fully custom drawn applications like games. |
I don't think we should be prophesying the demise of Glazier in its short description, even as that probability exists. We could just delete that part, but here I decided to add a bit of additional flavor instead.
|
||
- [`kurbo`][kurbo] - A library for creating, manipulating and interrogating 2D curve shapes. | ||
|
||
At its core, `kurbo` is a library for contructing paths and splines out of straight lines and Bézier curves up to order 3 (known as cubic Béziers). It turns out that a series of cubic Bézier curves can be used to approximate any smooth curve with a very high degree of accuracy, compared to the number of curves required. They are also relatively easy to work with, and form the basis of the approach to curve rendering used in `vello`. The key abstraction is [`kurbo::Shape`](https://docs.rs/kurbo/latest/kurbo/trait.Shape.html), which provides the `path_elements` method. This method returns an interator over Bézier curves that approximate the type implementing the `Shape` trait, which `vello` can then draw. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At its core, `kurbo` is a library for contructing paths and splines out of straight lines and Bézier curves up to order 3 (known as cubic Béziers). It turns out that a series of cubic Bézier curves can be used to approximate any smooth curve with a very high degree of accuracy, compared to the number of curves required. They are also relatively easy to work with, and form the basis of the approach to curve rendering used in `vello`. The key abstraction is [`kurbo::Shape`](https://docs.rs/kurbo/latest/kurbo/trait.Shape.html), which provides the `path_elements` method. This method returns an interator over Bézier curves that approximate the type implementing the `Shape` trait, which `vello` can then draw. | |
At its core, `kurbo` is a library for constructing paths and splines out of straight lines and Bézier curves up to order 3 (known as cubic Béziers). It turns out that a series of cubic Bézier curves can be used to approximate any smooth curve with a very high degree of accuracy, compared to the number of curves required. They are also relatively easy to work with, and form the basis of the approach to curve rendering used in `vello`. The key abstraction is [`kurbo::Shape`](https://docs.rs/kurbo/latest/kurbo/trait.Shape.html), which provides the `path_elements` method. This method returns an interator over Bézier curves that approximate the type implementing the `Shape` trait, which `vello` can then draw. |
|
||
## Crates (passively maintained) | ||
|
||
- [`druid`][druid] - A GUI framework for Rust |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- [`druid`][druid] - A GUI framework for Rust | |
- [`druid`][druid] - A GUI framework for Rust. |
Every other crate line ends with a period, so this makes it consistent.
|
||
- [`druid`][druid] - A GUI framework for Rust | ||
|
||
`druid` is the original Linebender UI framework, and was the main focus of development until recently. There are many good things about `druid`, but the data model it uses (primarily `Lens`es) gets complicated in Rust, and doesn't compose as well as it would in a [GC'd][garbage collection] functional programming language. However, a lot of the things that work will will be copied straight over to `xilem`, and today `druid` is a solid choice for a new UI app projected to have low to medium complexity. The [#druid-help channel on Zulip](https://xi.zulipchat.com/#narrow/stream/255910-druid-help) is still monitored and you will likely get good answers to any questions you have. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
`druid` is the original Linebender UI framework, and was the main focus of development until recently. There are many good things about `druid`, but the data model it uses (primarily `Lens`es) gets complicated in Rust, and doesn't compose as well as it would in a [GC'd][garbage collection] functional programming language. However, a lot of the things that work will will be copied straight over to `xilem`, and today `druid` is a solid choice for a new UI app projected to have low to medium complexity. The [#druid-help channel on Zulip](https://xi.zulipchat.com/#narrow/stream/255910-druid-help) is still monitored and you will likely get good answers to any questions you have. | |
`druid` is the original Linebender UI framework, and was the main focus of development until early 2023. There are many good things about `druid`, but the data model it uses (primarily `Lens`es) gets complicated in Rust, and doesn't compose as well as it would in a [GC'd][garbage collection] functional programming language. However, a lot of the things that work will be copied straight over to `xilem`, and today `druid` is a solid choice for a new UI app projected to have low to medium complexity. The [#druid-help channel on Zulip](https://xi.zulipchat.com/#narrow/stream/255910-druid-help) is still monitored and you will likely get good answers to any questions you have. |
- [`druid-shell`][druid-shell] - The old name for `glazier`. | ||
|
||
Previously, the windowing library `glazier` lived within the `druid` repository, and was called `druid-shell`. When work moved over to `vello`/`xilem`, there was debate over whether to split this code into its own crate, or move over to `winit`. We decided to keep using our own windowing library for now, to give us the flexibility to add or change what we need to, but we may try to unify with `winit` in the future. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- [`druid-shell`][druid-shell] - The old name for `glazier`. | |
Previously, the windowing library `glazier` lived within the `druid` repository, and was called `druid-shell`. When work moved over to `vello`/`xilem`, there was debate over whether to split this code into its own crate, or move over to `winit`. We decided to keep using our own windowing library for now, to give us the flexibility to add or change what we need to, but we may try to unify with `winit` in the future. | |
- [`druid-shell`][druid-shell] - The windowing library for `druid`. | |
It lives in the `druid` repository. When our focus moved over to `vello`/`xilem`, there was debate over whether to split this code into its own crate, or move over to `winit`. We decided to keep using our own windowing library for now, to give us the flexibility to add or change what we need to. Thus `glazier` was born as a fork of `druid-shell`. |
Given that druid-shell
is still very much alive (and diverging 😕) it shouldn't be equalized so much with glazier
. As for moving to winit
, that may be of relevance to glazier
but not for druid
/ druid-shell
, so I removed that note.
|
||
It is also a group of volunteers and enthusiasts who hang out on [our Zulip][xi.zulip], and who collaborate on designing and coding the different parts of the stack required for UI. We are a friendly bunch, and always welcome newcomers, whether they have any experience with 2D graphics and user interfaces or not. | ||
|
||
All the work of the Linebender is done in the open, and the full history of all conversations is available on Zulip. In fact, we recommend searching the chat history for any topic that you are interested in, as there have been many discussions in the past with novel and valuable ideas. All code is dual-licenses under the MIT and Apache-2.0 licenses (where possible) and we aim to license non-code material under the [CC-BY Creative Commons license][CC-BY]. In fact, the non-code portion of this website is licensed under CC-BY, while all code, including any JavaScript written by the authors, is available under the Apache-2.0 license. A copy of the Apache-2.0 license is available in [this website's repository][website repository]. We reuse some code from the 'minima' Jekyll theme under the MIT license. The aim is to make any of the code on this website reuseable, so if the lincensing is causing friction please contact us [on Zulip][xi.zulip] and we'll work together to solve the problem. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All the work of the Linebender is done in the open, and the full history of all conversations is available on Zulip. In fact, we recommend searching the chat history for any topic that you are interested in, as there have been many discussions in the past with novel and valuable ideas. All code is dual-licenses under the MIT and Apache-2.0 licenses (where possible) and we aim to license non-code material under the [CC-BY Creative Commons license][CC-BY]. In fact, the non-code portion of this website is licensed under CC-BY, while all code, including any JavaScript written by the authors, is available under the Apache-2.0 license. A copy of the Apache-2.0 license is available in [this website's repository][website repository]. We reuse some code from the 'minima' Jekyll theme under the MIT license. The aim is to make any of the code on this website reuseable, so if the lincensing is causing friction please contact us [on Zulip][xi.zulip] and we'll work together to solve the problem. | |
All the work of the Linebender is done in the open, and the full history of all conversations is available on Zulip. In fact, we recommend searching the chat history for any topic that you are interested in, as there have been many discussions in the past with novel and valuable ideas. All code is dual-licenses under the MIT and Apache-2.0 licenses (where possible) and we aim to license non-code material under the [CC-BY Creative Commons license][CC-BY]. In fact, the non-code portion of this website is licensed under CC-BY, while all code, including any JavaScript written by the authors, is available under the Apache-2.0 license. A copy of the Apache-2.0 license is available in [this website's repository][website repository]. We reuse some code from the 'minima' Jekyll theme under the MIT license. The aim is to make any of the code on this website reuseable, so if the licensing is causing friction please contact us [on Zulip][xi.zulip] and we'll work together to solve the problem. |
|
||
All the work of the Linebender is done in the open, and the full history of all conversations is available on Zulip. In fact, we recommend searching the chat history for any topic that you are interested in, as there have been many discussions in the past with novel and valuable ideas. All code is dual-licenses under the MIT and Apache-2.0 licenses (where possible) and we aim to license non-code material under the [CC-BY Creative Commons license][CC-BY]. In fact, the non-code portion of this website is licensed under CC-BY, while all code, including any JavaScript written by the authors, is available under the Apache-2.0 license. A copy of the Apache-2.0 license is available in [this website's repository][website repository]. We reuse some code from the 'minima' Jekyll theme under the MIT license. The aim is to make any of the code on this website reuseable, so if the lincensing is causing friction please contact us [on Zulip][xi.zulip] and we'll work together to solve the problem. | ||
|
||
The organisation was started by [Raph Levien], and he informally leads and drives the work forward. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The organisation was started by [Raph Levien], and he informally leads and drives the work forward. | |
The organization was started by [Raph Levien], and he informally leads and drives the work forward. |
Ditto for consistency.
Still needs a github action configuring.