I wasn't really sure how to title this.
We're working on a project for Vue Land (the bot) and we need some data relating to popular libraries and frameworks for one of the commands (library/framework lookup).
@gustojs and I were talking about it an hour or so ago in #library-maintainers and he mentioned that you fine folks over here may also need some similar data for the Vue Community project, most notably the descriptions? But I'd wager a guess that you'll also at a minimum need the website/repository URLs, the taglines and the icons.
cause if somebody wants to write library descriptions, we've got a ton of descriptions to write about on vue-community, contributions welcome ๐ - gusto
The issue we have is that using Vue Community as a data source presents a problem simply because it's Markdown. We have the exact same issue with the @vuejs/awesome-vue repository.
Ideally we need something more structured like JSON or YAML or Markdown(+FrontMatter).
It's relatively easy to transform those formats into Markdown but the opposite can certainly prove quite troublesome (depending on how well-structured the Markdown is, of course). It would also be possible for you to have a component e.g. <library name="saber" />
that abstracts away the JSON-data-loading aspect of things.
So the question is - would you be open to using JSON as a data source for certain things? Or if not JSON then Markdown with FrontMatter? Something more structured?
If so we would be able to pool our efforts across the two projects (perhaps in a third repository e.g. vue-data
, if preferable to you).
Plus it would be useful for anyone else who wants to make apps/tools relating to Vue and its ecosystem- not just Elfayer's vue-land-bot and your vue-community!
I realise that Markdown is ideal for your project, mostly because even non-programmers such as designers can contribute easily. But that's why I mentioned Markdown+FrontMatter as a potential compromise.
Thoughts?
The data I started compiling for the bot looks something like this, by the way:
{
"name": "Vuetify",
"tagline": "Material Design Component Framework.",
"tags": ["ui", "framework", "material", "design", "component", "library"],
"icon": "vuetify.png",
"colour": "#7BC6FF",
"url": {
"site": "https://vuetifyjs.com/en/",
"repo": "https://github.com/vuetifyjs/vuetify"
},
"fields": [
"Vuetify is a semantic component framework for Vue. It aims to provide clean, semantic and reusable components that make building your application a breeze.",
"Build amazing applications with the power of Vue, Material Design and a massive library of beautifully crafted components and features. Built according to Google's Material Design Spec, Vuetify components feature an easy-to-remember semantic design that shifts remembering complex classes and markup, to type-as-you speak properties that have simple and clear names.",
"Harness the power of the Vuetify community and get help 24/7 from the development team and our talented community members across the world. Become a backer and get access to dedicated support from the team."
],
"author": {
"name": "John Leider",
"url": "https://github.com/johnleider",
"avatar": "johnleider.png"
}
}
(The fields
are, for now, taken from the websites/repositories of the libraries but I'm open to contributing brand new copy if that was your intent).