-
Notifications
You must be signed in to change notification settings - Fork 46
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
Redo tags/categories #119
base: master
Are you sure you want to change the base?
Redo tags/categories #119
Conversation
(tagging #82, which will be resolved by this)
Re
Re: "Toolkit" naming: might be good to run this by some folks to see if this name is clear. I have no personal objections, myself. I'll check with my local community if anyone has strong feelings. What's the best way to support you in this? So far the diff looks good! Do you think I should ask around for any design/UX brainstorming? (FWIW: If you agree, I think this PR is shippable without any changes to the site map, - e.g., just grouping the crates under the category headings, under "Ecosystem") |
I'm not sure what you mean? The "code"/templating part of the PR doesn't actually work yet, I have on worked on the organization of the data.
For this one, my own desire is to give people a quick glimpse of what basic trade-off the crate has made:
I do think it is also desirable to know "what language will I be writing? Pure Rust? Some DSL inside Rust? Or will I be writing CSS/HTML/something else outside of Rust?
Being someone to bounce ideas off like you're doing right now is honestly great, just keep that going! Aside from that, I'm envisioning some kind of "introduction" text for each category, possibly opinionated, and then we can show that on top of each ecosystem page, and then the crates below. So something like:
But if you or someone else would be up for writing that (or a draft of it), that'd be great! |
Apologies for the confusion. I meant, I am OK merging this with only minimal changes to the template, when the templating works. It is OK with me if the design isn't perfected in this PR, or if we don't add any new pages. (my "acceptance criteria" for this PR) (if you do decide to add new pages or change the design... that is also OK, but it could also be a second/future PR)
Ah yes, I see.
I'll try and get some copy for this in the next week. (and thanks for your update in the other thread on your absence - no issue!) |
96669f9
to
75c9a74
Compare
75c9a74
to
039842f
Compare
Just found this blog post on build systems with some thoughts on what we're describing here as the "Tools" category. |
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.
Everything here looks pretty great to me - see comments for my feedback.
Add the crate to the `ecosystem.toml` file using the keys documented therein, | ||
and open a pull request. | ||
Add the crate to the relevant category under the `ecosystem` directory, and | ||
open a pull request. |
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.
When I looked at this, I was confused where "extra" is coming from, until I realized this is where our "user data" frontmatter goes in Zola.
Do you know if there is a way we can import the metadata/front matter from a separate TOML file? I don't see an immediate way to do this, in which case... I'm not that worried about it.
If we can't separate the metadata easily, I'd add context about Zola to Contributing:
To submit a crate, add the crate to the relevant category's markdown file under the
content/ecosystem
directory (Toolkit, Framework, Bindings, Utilities, or Tools).We are using Zola to generate the website: Zola renders a page for each of these files. The crate listing is provided as "front matter metadata" in these markdown files under the
[extras]
section. While the file is technically markdown, the front matter uses the TOML format (the same syntax as in Cargo.toml).
platform = ["desktop", "mobile", "web"] | ||
|
||
[extra.crates.druid] | ||
description = "(Discontinued) Druid is an experimental Rust-native UI toolkit. Its main goal is to offer a polished user experience. There are many factors to this goal, including performance, a rich palette of interactions (hence a widget library to support them), and playing well with the native platform." |
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.
Maybe we should have a separate discontinued page; list some "historically significant/featured" crates as well as any others removed from the main pages (list would be chronological with optional "succeeded by" links, maybe grouped by the original type of Binding/Framework/Toolkit/etc).
platform = ["desktop", "android"] | ||
|
||
# TODO: Unsure how this should be categorised? | ||
[extra.crates.imgui] |
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.
Eek yea, if this was just an immediate mode library, it's somewhere between a tool and a framework, to me, in our current system of categorization.
But it links directly to the original C imgui via imgui-sys, and primarily provides a safe API with backends, making me comfortable saying "binding".
Does my logic check out?
[extra] | ||
|
||
# TODO: Unsure how this should be categorised? | ||
[extra.crates.gemgui] |
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.
GemGui is absolute Rust rewrite of Gempyre C++ GUI Library.
So, probably framework? (especially given that it looks like it packs your resources for you) It also falls under a web technology that supports the web platform.
Thanks for all your work and attention on this, and all things AWGY @madsmtm (the PRs, the issues... everything). I've finally gone and written up some of the criteria/intro text I promised, along with some ideas for "official" criteria. (And of course, please don't feel obligated to act on anything here on any timeline other than your own... I've certainly not been responsive on any timeline) Wishing you a happy new year.
|
Work on fixing #21, by moving from a "tag"-based system to a "category" based system.
Relating to that issue, I've named the categories as follows:
For now, I've enforced that a crate can only have one category; this may be too strict, but it helped me get an overview of the situation, and I think there can be value in defining the categories such that a distinct line can be drawn.
Additionally, I've tried to add an
os
field (should probably be namedplatform
now that I think about it) that should give some indication of what platforms a given crate supports.Finally, I'm experimenting with a
technologies
field, which would allow users to get a quick glimpse of what's happening under the hood: