diff --git a/config.json b/config.json index 8d446ee3fd..cd235b2839 100644 --- a/config.json +++ b/config.json @@ -3,7 +3,8 @@ "contentDir": "content", "collections": { "BareArticle": { "path": "/bare/", "type": "vue" }, - "Platform": { "path": "/use/", "type": "md" } + "Platform": { "path": "/use/", "type": "md" }, + "Person": { "path": "/people/", "type": "md" } }, "categories": { "/blog": "blog", diff --git a/content/0examples/non-vue/index.md b/content/0examples/non-vue/index.md index 5c07a128a5..55200bff8f 100644 --- a/content/0examples/non-vue/index.md +++ b/content/0examples/non-vue/index.md @@ -8,7 +8,9 @@ date: 2021-04-25 days: 1 continent: EU contact: Strong Mad -contact_url: https://example.com +contacts: +- id: strong-mad + name: Strong Mad authors: Marzipan location: Strong Badia location_url: https://www.youtube.com/watch?v=hfUqRp4E0L8&t=37s diff --git a/content/0examples/vue-remark/index.md b/content/0examples/vue-remark/index.md index 5a0ced362e..c7c6a402a4 100644 --- a/content/0examples/vue-remark/index.md +++ b/content/0examples/vue-remark/index.md @@ -8,7 +8,11 @@ date: 2021-04-25 days: 2 continent: EU contact: people -contact_url: https://example.com +contacts: +- id: jose + name: Jose +- id: me + name: Me authors: Jose and me location: Strong Badia location_url: 'https://www.youtube.com/watch?v=hfUqRp4E0L8&t=37s' diff --git a/content/events/2019-04-bioit/index.md b/content/events/2019-04-bioit/index.md index 42a6e2327f..d3e13de59a 100644 --- a/content/events/2019-04-bioit/index.md +++ b/content/events/2019-04-bioit/index.md @@ -9,8 +9,9 @@ location_url: "http://www.giiconference.com/chi653337/" external_url: image: /events/2019-04-bioit/bioitworld19.png gtn: false -contact: "Presenters" -contact_url: "/people/jeremy-goecks/" +contacts: +- id: jeremy-goecks + name: Presenters tags: [ cofest ] subsites: [global, us] --- diff --git a/content/events/2022-10-27-community-call/index.md b/content/events/2022-10-27-community-call/index.md index 671b6e2832..8edabe75f3 100644 --- a/content/events/2022-10-27-community-call/index.md +++ b/content/events/2022-10-27-community-call/index.md @@ -8,7 +8,10 @@ location: "Galaxy Community Call, Online, Global" location_url: "/community/community-calls/" external_url: gtn: false -contact: "Helena Rasche & Saskia Hiltemann" +contacts: +- id: helena-rasche + name: Helena Rasche +- name: Saskia Hiltemann links: tags: ["community-call"] subsites: [all] diff --git a/content/groups/wg-goats/main.md b/content/groups/wg-goats/main.md new file mode 100644 index 0000000000..2883f9917b --- /dev/null +++ b/content/groups/wg-goats/main.md @@ -0,0 +1,12 @@ +--- +title: GOATS Working Group +--- + +Coordinate and guide Galaxy's Outreach & Training efforts, as well as user, admin, and developer support and documentation. Galaxy Outreach And Training (And) Support = GOATS! + +* [GitHub Project](https://github.com/orgs/galaxyproject/projects/15) +* [Google Drive](https://drive.google.com/drive/folders/1KIircdXhvS7-00XZy1uIs6Dmja29yjAW) +* [Gitter Channel](https://gitter.im/galaxyproject/wg-goat) +* [Support Charter and Priorities](https://docs.google.com/document/d/1YsTnGUAbh1g3z2WSmR7TKGhSPUTWCsQrz5hcCgbsTKY/edit#heading=h.9cp679lig0rf) +* Leadership: [Delphine Lariviere](/people/delphine-lariviere/) + diff --git a/content/people/0example/index.md b/content/people/0example/index.md new file mode 100644 index 0000000000..210c39cb68 --- /dev/null +++ b/content/people/0example/index.md @@ -0,0 +1,31 @@ +--- +name: Strong Bad +subsites: ["eu"] +main_subsite: "eu" +groups: [wg-goats, iuc] +email: sbad@homestarrunner.com +phone: (808) 867-5309 +website: homestarrunner.com +github: sbad +orcid: 0000-0002-1825-0097 +gitter: sbad +matrix: sbad +linkedin: strongbad +twitter: StrongBadActual +google-scholar: q5GpTJYAAAJZ +researchgate: Strong_Bad +galaxy_help: sbad +affiliations: +- id: cgnu + name: Crazy Go Nuts University +- id: psu + name: Penn State University +location: + city: The Stick + country: Strong Badia + geo: + lat: '0.0' + lon: '0.0' +image: +draft: true +--- diff --git a/content/people/assunta/adesanto_book_resize.png b/content/people/assunta/adesanto_book_resize.png new file mode 100644 index 0000000000..fcc0aeaddb Binary files /dev/null and b/content/people/assunta/adesanto_book_resize.png differ diff --git a/content/people/assunta/index.md b/content/people/assunta/index.md new file mode 100644 index 0000000000..4309e9a5dd --- /dev/null +++ b/content/people/assunta/index.md @@ -0,0 +1,14 @@ +--- +name: Assunta DeSanto +subsites: [us] +groups: [wg-goats] +github: assuntad23 +image: adesanto_book_resize.png +affiliations: +- id: psu + name: Penn State University +ama: Crafting, Coding, or Education! +--- +Hello! My name is Assunta DeSanto, and I'm (primarily) a developer for Galaxy's UI. + +I'm **really** cool! \ No newline at end of file diff --git a/content/people/helena-rasche/index.md b/content/people/helena-rasche/index.md index 78356d398e..b7eace4ac1 100644 --- a/content/people/helena-rasche/index.md +++ b/content/people/helena-rasche/index.md @@ -1,3 +1,7 @@ +--- +name: Helena Rasche +--- + # Helena Rasche - Galaxy Committer diff --git a/gridsome.server.js b/gridsome.server.js index fd5a672947..f4a169c68c 100644 --- a/gridsome.server.js +++ b/gridsome.server.js @@ -314,9 +314,23 @@ module.exports = function (api) { }); // Populate the derived fields. + let directoryData = { groups: new Set(), orgs: new Set() }; api.onCreateNode((node, collection) => { let typeName = node.internal.typeName; node.filename = node.fileInfo.name; + // Collect the set of metadata values that exist in the Community Directory + if (typeName === "Person") { + if (node.affiliations) { + node.affiliations.forEach((org) => { + directoryData.orgs.add(org.id); + }); + } + if (node.groups) { + node.groups.forEach((group) => { + directoryData.groups.add(group); + }); + } + } return nodeModifier.processNewNode(node, collection, typeName); }); @@ -366,6 +380,17 @@ module.exports = function (api) { }); } } + // Community Directory autogenerated aggregated pages + for (let group of directoryData.groups) { + createPage({ + path: `/groups/${group}`, + component: "./src/components/pages/Group.vue", + context: { + group: group, + mainPath: `/insert:/groups/${group}/main/`, + }, + }); + } }); // Workaround for lack of access to GraphQL in `afterBuild()` hook. diff --git a/src/components/ArticleHeader.vue b/src/components/ArticleHeader.vue index e47e866079..38245988f3 100644 --- a/src/components/ArticleHeader.vue +++ b/src/components/ArticleHeader.vue @@ -18,8 +18,15 @@
  • Contact: - {{ article.contact }} - + {{ article.contact }} +
  • +
  • + Contact: +
  • Links: diff --git a/src/components/ArticleTableEvents.vue b/src/components/ArticleTableEvents.vue index c9856689a8..f637cae4a9 100644 --- a/src/components/ArticleTableEvents.vue +++ b/src/components/ArticleTableEvents.vue @@ -34,6 +34,11 @@ title="Training offered by GTN Member" /> + + + {{ contact.name }} + {{ contact.name }} + {{ article.contact }} diff --git a/src/components/pages/Events.vue b/src/components/pages/Events.vue index 02d50a7fb7..8d740f053e 100644 --- a/src/components/pages/Events.vue +++ b/src/components/pages/Events.vue @@ -124,6 +124,10 @@ fragment articleFields on Article { location_url continent contact + contacts { + id + name + } external_url gtn links { diff --git a/src/components/pages/Group.vue b/src/components/pages/Group.vue new file mode 100644 index 0000000000..e3fecc66fd --- /dev/null +++ b/src/components/pages/Group.vue @@ -0,0 +1,86 @@ + + + + + +query($group: String, $mainPath: String) { + main: insert(path: $mainPath) { + id + title + content + fileInfo { + path + } + } + allPerson( + filter: { groups: {contains: [$group]}, draft: {ne: true} } + ) { + totalCount + edges { + node { + id + path + name + image + images + groups + subsites + main_subsite + github + location { + city + country + geo { + lat + lon + } + } + affiliations { + id + name + } + } + } + } +} + diff --git a/src/templates/Article.vue b/src/templates/Article.vue index ea3d8f3c8c..07c48e8d7f 100644 --- a/src/templates/Article.vue +++ b/src/templates/Article.vue @@ -18,7 +18,10 @@ query Article($path: String!) { date (format: "YYYY-MM-DD") end (format: "YYYY-MM-DD") contact - contact_url + contacts { + id + name + } authors location location_url diff --git a/src/templates/Person.vue b/src/templates/Person.vue new file mode 100644 index 0000000000..8deebc0396 --- /dev/null +++ b/src/templates/Person.vue @@ -0,0 +1,222 @@ + + + +query Person($path: String!) { + person(path: $path) { + id + name + content + email + phone + website + github + orcid + gitter + matrix + linkedin + image + images + twitter + subsites + main_subsite + google_scholar + researchgate + galaxy_help + location { + city + country + } + affiliations { + id + name + } + fileInfo { + path + } + } +} + + + + + diff --git a/src/templates/VueArticle.vue b/src/templates/VueArticle.vue index 38ea850f52..dd28d91928 100644 --- a/src/templates/VueArticle.vue +++ b/src/templates/VueArticle.vue @@ -32,7 +32,10 @@ query VueArticle($path: String!) { date (format: "YYYY-MM-DD") end (format: "YYYY-MM-DD") contact - contact_url + contacts { + id + name + } authors location location_url