From a9ddd9fb1a3f4fdfa86aa817ed8cf022d89f8bfc Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Wed, 11 Oct 2023 09:56:57 +0200 Subject: [PATCH 01/21] Separate out contributors, funders, organisations --- CONTRIBUTORS.yaml | 174 --------------------------------------------- FUNDERS.yaml | 154 +++++++++++++++++++++++++++++++++++++++ ORGANISATIONS.yaml | 34 +++++++++ 3 files changed, 188 insertions(+), 174 deletions(-) create mode 100644 FUNDERS.yaml create mode 100644 ORGANISATIONS.yaml diff --git a/CONTRIBUTORS.yaml b/CONTRIBUTORS.yaml index 69f26f563cdaca..07e83b357d0ffb 100644 --- a/CONTRIBUTORS.yaml +++ b/CONTRIBUTORS.yaml @@ -2,12 +2,6 @@ # # reference maintainers/contributors by their id in tutorial metadata files # -# Institutional sponsors -# * Collaborative Research Centre (CRC) 992 - Medical Epigenetics -# * de.NBI - German Network for Bioinformatics Infrastructure -# * NHGRI - National Human Genome Research Institute at the National Institutes of Health (USA) -# * NSF - National Science Foundation (USA) -# # valid tags: name, email, linkedin, twitter, gitter, orcid, bio, joined # # collection names should be equal to github username, if not, add github: false tag @@ -1750,7 +1744,6 @@ yvanlebras: joined: 2017-09 elixir_node: fr - paulzierep: name: Paul Zierep email: zierep@informatik.uni-freiburg.de @@ -1761,170 +1754,3 @@ SNG888: name: Sandra Ng email: s.ng@qmul.ac.uk joined: 2023-07 - -# Funders / External Entities -carpentries: - name: The Carpentries - joined: 2021-09 - -gallantries: - name: Gallantries Project - joined: 2020-09 - avatar: "https://gallantries.github.io/assets/images/gallantries-logo.png" - github: false - funder: true - url: "https://www.erasmusplus.nl" - funder_name: Erasmus+ Programme - funding_id: 2020-1-NL01-KA203-064717 - funding_system: erasmusplus - funding_statement: | - This project ([`2020-1-NL01-KA203-064717`](https://ec.europa.eu/programmes/erasmus-plus/projects/eplus-project-details/#project/2020-1-NL01-KA203-064717)) is funded with the support of the Erasmus+ programme of the European Union. Their funding has supported a large number of tutorials within the GTN across a wide array of topics. - ![eu flag with the text: with the support of the erasmus programme of the european union](https://gallantries.github.io/assets/images/logosbeneficaireserasmusright_en.jpg) - ![erasmus plus logo](https://www.erasmusplus.nl/assets/images/logo.png) - -avans-atgm: - name: Avans Hogeschool - joined: 2020-11 - funder: true - funding_statement: | - A number of our employees contribute directly to the Galaxy Training Network and seek to make our higher education learning materials more accessible to a wider audience through the GTN platform. [avans.nl](https://avans.nl/) - url: https://avans.nl - -elixir-europe: - name: ELIXIR Europe - joined: 2017-09 - funder: true - url: https://elixir-europe.org - #funding_statement: | - -CINECA-Project: - name: Common Infrastructure for National Cohorts in Europe, Canada, and Africa - joined: 2023-03 - funder: true - funding_id: "825775" - funding_system: cordis - url: https://www.cineca-project.eu - -epsrc-training-grant: - name: EPSRC Training Grant DTP 2020-2021 Open University - github: false - joined: 2022-09 - funder: true - funding_statement: The research internship was supported through EPSRC Training Grant DTP 2020-2021 Open University - -elixir-goblet-ttt: - name: ELIXIR Goblet Train the Trainers - joined: 2022-09 - -eosc-life: - name: EOSC-Life - github: false - joined: 2023-04 - avatar: "https://www.eosc-life.eu/wp-content/themes/eosc-life-v2/assets/images/eosclogo.png" - funder: true - funding_id: "824087" - funding_system: cordis - funding_statement: | - EOSC-Life has received funding from the European Union’s Horizon 2020 programme under grant agreement number 824087 - url: https://www.eosc-life.eu - -by-covid: - name: BeYond-COVID - joined: 2023-04 - funder: true - funding_id: "101046203" - funding_system: cordis - funding_statement: | - BY-COVID is an EC funded project that tackles the data challenges that can hinder effective pandemic response. - - This project has received funding from the European Union’s Horizon Europe research and innovation programme under grant agreement № 101046203 (BY-COVID) - url: https://by-covid.org/ - -elixir-fair-data: - name: "ELIXIR-UK: FAIR Data Stewardship training" - github: false - joined: 2023-06 - funder: true - funding_id: MR/V038966/1 - funding_system: ukri - funding_statement: | - This work has been funded by the ELIXIR-UK FAIR Data Stewardship training UKRI award (MR/V038966/1) - -h2020-defend: - name: DEFEND - github: false - joined: 2023-05 - funder: true - funding_id: "773701" - funding_system: cordis - funding_statement: | - DEFEND is Addressing the dual emerging threats of African Swine Fever and Lumpy Skin Disease in Europe. - - This work has received funding from the DEFEND project (www.defend2020.eu) with funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 773701. - url: https://www.defend2020.eu - -elixir-converge: - name: ELIXIR-CONVERGE - github: false - joined: 2023-01 - avatar: "https://elixir-europe.org/sites/default/files/styles/right-medium/public/images/converge_logo.png" - url: https://elixir-europe.org/about-us/how-funded/eu-projects/converge - funder: true - funding_id: "871075" - funding_system: cordis - funding_statement: | - ELIXIR CONVERGE is connecting and align ELIXIR Nodes to deliver sustainable FAIR life-science data management services. This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement № 871075 - -nhgri-gdscn: - name: National Human Genome Research Institute Genomic Data Science Community Network - github: false - joined: 2023-06 - avatar: https://www.genome.gov/themes/custom/nhgri/assets/global/NHGRI-logo.svg - url: https://www.genome.gov/ - funder: true - funding_id: 75N92022P00232 - -nhgri-anvil: - name: National Human Genome Research Institute Genomic Data Science Analysis, Visualization, and Informatics Lab-Space - github: false - joined: 2023-06 - avatar: https://www.genome.gov/themes/custom/nhgri/assets/global/NHGRI-logo.svg - url: https://www.genome.gov/Funded-Programs-Projects/Computational-Genomics-and-Data-Science-Program/Genomic-Analysis-Visualization-Informatics-Lab-space-AnVIL - funder: true - funding_id: U24HG010263 - -ai4life: - name: AI4Life - github: false - joined: 2023-07 - avatar: "/training-material/topics/ai4life/images/AI4Life-logo_giraffe-solid.png" - url: https://ai4life.eurobioimaging.eu/ - funder: true - funding_id: "101057970" - funding_system: cordis - funding_statement: | - AI4Life has received funding from the European Union’s Horizon Europe research and innovation programme under grant agreement number 101057970. - -biont: - name: BioNT - github: false - joined: 2023-09 - avatar: "http://biont-training.eu/assets/img/BioNT_Logo_Layout_2106_blue_Version_2_cropped.png" - url: https://biont-training.eu/ - funder: true - funding_id: "101100604" - funding_system: cordis - funding_statement: | - Co-funded by the European Union - - -ELIXIR-UK-DaSH: - name: DASH UK - joined: 2023-10 - avatar: "https://github.com/galaxyproject/training-material/blob/main/shared/images/dash.png?raw=true" - url: https://elixiruknode.org/projects/elixir-uk-dash/ - funder: true - funding_system: ukri - funding_id: MR/V038966/1 - funding_statement: | - This Fellowship was funded through the ELIXIR-UK DaSH project as part of the UKRI Innovation Scholars: Data Science Training in Health and Bioscience call (DaSH). (MR/V038966/1). The project aims to embed Research Data Management (RDM) know-how into UK universities and institutes by producing and delivering training in FAIR data stewardship using ELIXIR-UK knowledge and resources. diff --git a/FUNDERS.yaml b/FUNDERS.yaml new file mode 100644 index 00000000000000..9cd498587e69ac --- /dev/null +++ b/FUNDERS.yaml @@ -0,0 +1,154 @@ +# List of contributors +# +# reference maintainers/contributors by their id in tutorial metadata files +# +# valid tags: +# name, email, linkedin, twitter, gitter, orcid, bio, joined, url, +# funder, funding_id, funding_system, funding_statement +# +# collection names should be equal to github username, if not, add github: false tag +--- + +# two dummy entries so that autogenerated tutorials do not fail to build +funder1: + name: Funder A + halloffame: "no" # Only to ignore this key, please don't add it to your funders. + joined: 2020-06 + url: "https://example.com" + funder: true + funding_id: 2020-1-NL01-KA203-064717 + funding_system: erasmusplus + funding_statement: "This project is funded with the support of .." + +# our real funders <3 + +gallantries: + name: Gallantries Project + joined: 2020-09 + avatar: "https://gallantries.github.io/assets/images/gallantries-logo.png" + github: false + funder: true + url: "https://www.erasmusplus.nl" + funder_name: Erasmus+ Programme + funding_id: 2020-1-NL01-KA203-064717 + funding_system: erasmusplus + funding_statement: | + This project ([`2020-1-NL01-KA203-064717`](https://ec.europa.eu/programmes/erasmus-plus/projects/eplus-project-details/#project/2020-1-NL01-KA203-064717)) is funded with the support of the Erasmus+ programme of the European Union. Their funding has supported a large number of tutorials within the GTN across a wide array of topics. + ![eu flag with the text: with the support of the erasmus programme of the european union](https://gallantries.github.io/assets/images/logosbeneficaireserasmusright_en.jpg) + ![erasmus plus logo](https://www.erasmusplus.nl/assets/images/logo.png) + +CINECA-Project: + name: Common Infrastructure for National Cohorts in Europe, Canada, and Africa + joined: 2023-03 + funder: true + funding_id: "825775" + funding_system: cordis + url: https://www.cineca-project.eu + +epsrc-training-grant: + name: EPSRC Training Grant DTP 2020-2021 Open University + github: false + joined: 2022-09 + funder: true + funding_statement: The research internship was supported through EPSRC Training Grant DTP 2020-2021 Open University + +eosc-life: + name: EOSC-Life + github: false + joined: 2023-04 + avatar: "https://www.eosc-life.eu/wp-content/themes/eosc-life-v2/assets/images/eosclogo.png" + funder: true + funding_id: "824087" + funding_system: cordis + funding_statement: | + EOSC-Life has received funding from the European Union’s Horizon 2020 programme under grant agreement number 824087 + url: https://www.eosc-life.eu + +by-covid: + name: BeYond-COVID + joined: 2023-04 + funder: true + funding_id: "101046203" + funding_system: cordis + funding_statement: | + BY-COVID is an EC funded project that tackles the data challenges that can hinder effective pandemic response. + + This project has received funding from the European Union’s Horizon Europe research and innovation programme under grant agreement № 101046203 (BY-COVID) + url: https://by-covid.org/ + +elixir-fair-data: + name: "ELIXIR-UK: FAIR Data Stewardship training" + github: false + joined: 2023-06 + funder: true + funding_id: MR/V038966/1 + funding_system: ukri + funding_statement: | + This work has been funded by the ELIXIR-UK FAIR Data Stewardship training UKRI award (MR/V038966/1) + +h2020-defend: + name: DEFEND + github: false + joined: 2023-05 + funder: true + funding_id: "773701" + funding_system: cordis + funding_statement: | + DEFEND is Addressing the dual emerging threats of African Swine Fever and Lumpy Skin Disease in Europe. + + This work has received funding from the DEFEND project (www.defend2020.eu) with funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 773701. + url: https://www.defend2020.eu + +elixir-converge: + name: ELIXIR-CONVERGE + github: false + joined: 2023-01 + avatar: "https://elixir-europe.org/sites/default/files/styles/right-medium/public/images/converge_logo.png" + url: https://elixir-europe.org/about-us/how-funded/eu-projects/converge + funder: true + funding_id: "871075" + funding_system: cordis + funding_statement: | + ELIXIR CONVERGE is connecting and align ELIXIR Nodes to deliver sustainable FAIR life-science data management services. This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement № 871075 + +nhgri-gdscn: + name: National Human Genome Research Institute Genomic Data Science Community Network + github: false + joined: 2023-06 + avatar: https://www.genome.gov/themes/custom/nhgri/assets/global/NHGRI-logo.svg + url: https://www.genome.gov/ + funder: true + funding_id: 75N92022P00232 + +nhgri-anvil: + name: National Human Genome Research Institute Genomic Data Science Analysis, Visualization, and Informatics Lab-Space + github: false + joined: 2023-06 + avatar: https://www.genome.gov/themes/custom/nhgri/assets/global/NHGRI-logo.svg + url: https://www.genome.gov/Funded-Programs-Projects/Computational-Genomics-and-Data-Science-Program/Genomic-Analysis-Visualization-Informatics-Lab-space-AnVIL + funder: true + funding_id: U24HG010263 + +ai4life: + name: AI4Life + github: false + joined: 2023-07 + avatar: "/training-material/topics/ai4life/images/AI4Life-logo_giraffe-solid.png" + url: https://ai4life.eurobioimaging.eu/ + funder: true + funding_id: "101057970" + funding_system: cordis + funding_statement: | + AI4Life has received funding from the European Union’s Horizon Europe research and innovation programme under grant agreement number 101057970. + +biont: + name: BioNT + github: false + joined: 2023-09 + avatar: "http://biont-training.eu/assets/img/BioNT_Logo_Layout_2106_blue_Version_2_cropped.png" + url: https://biont-training.eu/ + funder: true + funding_id: "101100604" + funding_system: cordis + funding_statement: | + Co-funded by the European Union diff --git a/ORGANISATIONS.yaml b/ORGANISATIONS.yaml new file mode 100644 index 00000000000000..0f9778bb1d41a6 --- /dev/null +++ b/ORGANISATIONS.yaml @@ -0,0 +1,34 @@ +# List of contributing organisations +# +# reference maintainers/contributors by their id in tutorial metadata files +# +# valid tags: name, email, linkedin, twitter, gitter, orcid, bio, joined +# +# collection names should be equal to github username, if not, add github: false tag +--- + +# two dummy entries so that autogenerated tutorials do not fail to build +contributor1: + name: Contributor A (Please add contributors to the CONTRIBUTORS.yaml file) + halloffame: "no" + joined: 2020-06 + +# our real contributors <3 (please add yourself in alphabetical order) + +carpentries: + name: The Carpentries + joined: 2021-09 + +avans-atgm: + name: Avans Hogeschool + joined: 2020-11 + url: https://avans.nl + +elixir-europe: + name: ELIXIR Europe + joined: 2017-09 + url: https://elixir-europe.org + +elixir-goblet-ttt: + name: ELIXIR Goblet Train the Trainers + joined: 2022-09 From fe861f05be333360bcbda7e0a64b1ad57fe7486d Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Wed, 11 Oct 2023 10:07:38 +0200 Subject: [PATCH 02/21] Split out funders, orgs from contributors --- FUNDERS.yaml | 18 +++--- ORGANISATIONS.yaml | 6 -- bin/gtn.rb | 4 ++ bin/schema-contributors.yaml | 30 ---------- bin/schema-funders.yaml | 110 ++++++++++++++++++++++++++++++++++ bin/schema-organisations.yaml | 90 ++++++++++++++++++++++++++++ bin/validate-contributors.rb | 43 +++++++++---- 7 files changed, 242 insertions(+), 59 deletions(-) create mode 100644 bin/schema-funders.yaml create mode 100644 bin/schema-organisations.yaml diff --git a/FUNDERS.yaml b/FUNDERS.yaml index 9cd498587e69ac..9926798cd8846f 100644 --- a/FUNDERS.yaml +++ b/FUNDERS.yaml @@ -9,16 +9,14 @@ # collection names should be equal to github username, if not, add github: false tag --- -# two dummy entries so that autogenerated tutorials do not fail to build -funder1: - name: Funder A - halloffame: "no" # Only to ignore this key, please don't add it to your funders. - joined: 2020-06 - url: "https://example.com" - funder: true - funding_id: 2020-1-NL01-KA203-064717 - funding_system: erasmusplus - funding_statement: "This project is funded with the support of .." +# funder1: +# name: Funder A +# joined: 2020-06 +# url: "https://example.com" +# funder: true +# funding_id: 2020-1-NL01-KA203-064717 +# funding_system: erasmusplus +# funding_statement: "This project is funded with the support of .." # our real funders <3 diff --git a/ORGANISATIONS.yaml b/ORGANISATIONS.yaml index 0f9778bb1d41a6..caedf7439ec136 100644 --- a/ORGANISATIONS.yaml +++ b/ORGANISATIONS.yaml @@ -7,12 +7,6 @@ # collection names should be equal to github username, if not, add github: false tag --- -# two dummy entries so that autogenerated tutorials do not fail to build -contributor1: - name: Contributor A (Please add contributors to the CONTRIBUTORS.yaml file) - halloffame: "no" - joined: 2020-06 - # our real contributors <3 (please add yourself in alphabetical order) carpentries: diff --git a/bin/gtn.rb b/bin/gtn.rb index 5ef88d07f7c6cb..49da1a08e6a6fb 100644 --- a/bin/gtn.rb +++ b/bin/gtn.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true CONTRIBUTORS = YAML.load_file('CONTRIBUTORS.yaml') +ORGANISATIONS = YAML.load_file('ORGANISATIONS.yaml') +FUNDERS = YAML.load_file('FUNDERS.yaml') def automagic_loading(f) # Remove our documentation @@ -13,6 +15,8 @@ def automagic_loading(f) automagic_loading(v) elsif v.is_a?(Array) v.replace CONTRIBUTORS.keys if (k == 'enum') && (v[0] == 'CONTRIBUTORS') + v.replace FUNDERS.keys if (k == 'enum') && (v[0] == 'FUNDERS') + v.replace ORGANISATIONS.keys if (k == 'enum') && (v[0] == 'ORGANISATIONS') v.flatten.each { |x| automagic_loading(x) if x.is_a?(Hash) } end end diff --git a/bin/schema-contributors.yaml b/bin/schema-contributors.yaml index ab2c39ddcebd6f..eec342eb825f94 100644 --- a/bin/schema-contributors.yaml +++ b/bin/schema-contributors.yaml @@ -115,35 +115,6 @@ mapping: description: The 2 letter code identifying the ELIXIR node to which you are a member or are associated with. If you are from norway, you will need to quote your value, `"no"`, unlike everyone else, due to the [Norway Problem with YAML](https://hitchdev.com/strictyaml/why/implicit-typing-removed/) avatar: type: str - funder: - type: bool - description: Set this to true if this entity is a funding agency. - funder_name: - type: str - description: A human-readable name which will be the biggest name on their contributor page. - funding_id: - type: str - description: The short identifier for your grant. - examples: - - 2020-1-NL01-KA203-064717 - url: - type: str - description: associated webpage (NOTE, funders only!) - examples: - - "https://elixir-europe.org" - funding_system: - type: str - description: Automatically link to the grant's information in the appropriate funding system site. - enum: - - cordis - - erasmusplus - - ukri - funding_statement: - type: str - description: A short statement about the funder, markdown is supported. - examples: - - This project ([`2020-1-NL01-KA203-064717`](https://ec.europa.eu/programmes/erasmus-plus/projects/eplus-project-details/#project/2020-1-NL01-KA203-064717)) is funded with the support of the Erasmus+ programme of the European Union. Their funding has supported a large number of tutorials within the GTN across a wide array of topics. - in_memoriam: type: str description: | @@ -173,4 +144,3 @@ mapping: description: Longitude in decimal numbers examples: - 55.0 - diff --git a/bin/schema-funders.yaml b/bin/schema-funders.yaml new file mode 100644 index 00000000000000..ee9d45d876a50b --- /dev/null +++ b/bin/schema-funders.yaml @@ -0,0 +1,110 @@ +--- +type: map +examples: | + erasmusplus: + name: Erasmus+ + bio: We funded some of this work! +mapping: + "=": + type: map + description: | + This ideally is your GitHub handle. If you do not have, or do not wish to provide a GitHub username, you may make up another identifier here, but then you must set `github: false` as described below. + mapping: + name: + type: str + required: true + description: | + Your preferred name. If you prefer an alias or another name, this is welcome, it does not need to be your legal name. + examples: + - 张三 + - Alice + - Jane Doe + - Madame Tout-le-Monde + - Γιάννης Παπαδόπουλος + email: + type: str + pattern: /@/ + description: | + Your email address, if you wish to provide it. + examples: + - jane.doe@gmail.com + twitter: + type: str + pattern: /[0-9a-zA-Z]+/ + description: Your twitter handle, without the `@` + examples: + - gxytraining + fediverse: + type: str + pattern: /^https:\/\/[0-9a-zA-Z.]+/@?[0-9a-zA-Z.]+$/ + description: The URL to your fediverse profile + examples: + - http://genomic.social/@abretaud + fediverse_flavor: + type: str + enum: + - mastodon + - akkoma + description: The flavor of the fediverse server (used in our webfinger endpoint.) + bio: + type: str + description: | + A short biography of yourself, if you wish to add additional details or context. + examples: + - Research at the [South African National Bioinformatics Institute](https://www.sanbi.ac.za/) + matrix: + type: str + pattern: /[0-9a-zA-Z]+:.*/ + description: Your matrix identifier and home server + examples: + - "hexylena:matrix.org" + linkedin: + type: str + pattern: /[0-9a-zA-Z]+/ + maintainer_contact: + type: str + description: Preferred contact method + github: + type: bool + description: | + If your identifier in this file is **not** a GitHub account (or not your account), then this **must** be set to true, so we do not link to that account. + orcid: + type: str + pattern: /[0-9A-Z]{4}-[0-9A-Z]{4}-[0-9A-Z]{4}-[0-9A-Z]{4}/ + description: Your identifier at orcid.org + examples: + - 0000-0001-9760-8992 + joined: + type: str + required: true + pattern: /[0-9]{4,}-[0-9]{2}/ + description: The year and month in which you joined + examples: + - 2020-01 + avatar: + type: str + funder: + type: bool + description: Set this to true if this entity is a funding agency. + funding_id: + type: str + description: The short identifier for your grant. + examples: + - 2020-1-NL01-KA203-064717 + url: + type: str + description: associated webpage (NOTE, funders only!) + examples: + - "https://elixir-europe.org" + funding_system: + type: str + description: Automatically link to the grant's information in the appropriate funding system site. + enum: + - cordis + - erasmusplus + - ukri + funding_statement: + type: str + description: A short statement about the funder, markdown is supported. + examples: + - This project ([`2020-1-NL01-KA203-064717`](https://ec.europa.eu/programmes/erasmus-plus/projects/eplus-project-details/#project/2020-1-NL01-KA203-064717)) is funded with the support of the Erasmus+ programme of the European Union. Their funding has supported a large number of tutorials within the GTN across a wide array of topics. diff --git a/bin/schema-organisations.yaml b/bin/schema-organisations.yaml new file mode 100644 index 00000000000000..d64f66b8b3669d --- /dev/null +++ b/bin/schema-organisations.yaml @@ -0,0 +1,90 @@ +--- +type: map +examples: | + elixir: + name: ELIXIR + bio: We contribute as an organisation! +mapping: + "=": + type: map + description: | + This ideally is your GitHub handle. If you do not have, or do not wish to provide a GitHub username, you may make up another identifier here, but then you must set `github: false` as described below. + mapping: + name: + type: str + required: true + description: | + Your preferred name. If you prefer an alias or another name, this is welcome, it does not need to be your legal name. + examples: + - 张三 + - Alice + - Jane Doe + - Madame Tout-le-Monde + - Γιάννης Παπαδόπουλος + email: + type: str + pattern: /@/ + description: | + Your email address, if you wish to provide it. + examples: + - jane.doe@gmail.com + twitter: + type: str + pattern: /[0-9a-zA-Z]+/ + description: Your twitter handle, without the `@` + examples: + - gxytraining + fediverse: + type: str + pattern: /^https:\/\/[0-9a-zA-Z.]+/@?[0-9a-zA-Z.]+$/ + description: The URL to your fediverse profile + examples: + - http://genomic.social/@abretaud + fediverse_flavor: + type: str + enum: + - mastodon + - akkoma + description: The flavor of the fediverse server (used in our webfinger endpoint.) + bio: + type: str + description: | + A short biography of yourself, if you wish to add additional details or context. + examples: + - Research at the [South African National Bioinformatics Institute](https://www.sanbi.ac.za/) + matrix: + type: str + pattern: /[0-9a-zA-Z]+:.*/ + description: Your matrix identifier and home server + examples: + - "hexylena:matrix.org" + linkedin: + type: str + pattern: /[0-9a-zA-Z]+/ + maintainer_contact: + type: str + description: Preferred contact method + github: + type: bool + description: | + If your identifier in this file is **not** a GitHub account (or not your account), then this **must** be set to true, so we do not link to that account. + orcid: + type: str + pattern: /[0-9A-Z]{4}-[0-9A-Z]{4}-[0-9A-Z]{4}-[0-9A-Z]{4}/ + description: Your identifier at orcid.org + examples: + - 0000-0001-9760-8992 + joined: + type: str + required: true + pattern: /[0-9]{4,}-[0-9]{2}/ + description: The year and month in which you joined + examples: + - 2020-01 + avatar: + type: str + url: + type: str + description: associated webpage (NOTE, funders only!) + examples: + - "https://elixir-europe.org" diff --git a/bin/validate-contributors.rb b/bin/validate-contributors.rb index 84b9ebe15b8a0e..2350b662aad68d 100755 --- a/bin/validate-contributors.rb +++ b/bin/validate-contributors.rb @@ -10,10 +10,17 @@ CONTRIBUTORS_SCHEMA_UNSAFE = YAML.load_file('bin/schema-contributors.yaml') CONTRIBUTORS_SCHEMA = automagic_loading(CONTRIBUTORS_SCHEMA_UNSAFE) - -# Build validators now that we've filled out the subtopic enum contribs_validator = Kwalify::Validator.new(CONTRIBUTORS_SCHEMA) +FUNDERS_SCHEMA_UNSAFE = YAML.load_file('bin/schema-funders.yaml') +FUNDERS_SCHEMA = automagic_loading(FUNDERS_SCHEMA_UNSAFE) +funders_validator = Kwalify::Validator.new(FUNDERS_SCHEMA) + +ORGANISATIONS_SCHEMA_UNSAFE = YAML.load_file('bin/schema-organisations.yaml') +ORGANISATIONS_SCHEMA = automagic_loading(ORGANISATIONS_SCHEMA_UNSAFE) +organisations_validator = Kwalify::Validator.new(ORGANISATIONS_SCHEMA) + + def validate_document(document, validator) errors = validator.validate(document) return errors if errors && !errors.empty? @@ -21,15 +28,25 @@ def validate_document(document, validator) [] end -errs.push(*validate_document(CONTRIBUTORS, contribs_validator)) - -# If we had no errors, validated successfully -if errs.empty? - puts "\e[38;5;40mCONTRIBUTORS.yaml validated succesfully\e[m" - exit 0 -else - # Otherwise, print errors and exit non-zero - puts "\e[48;5;09mCONTRIBUTORS.yaml has errors\e[m" - errs.each { |x| puts " #{x}" } - exit 1 +def show_errors(file, errs) + # If we had no errors, validated successfully + if errs.empty? + puts "\e[38;5;40m#{file} validated succesfully\e[m" + 0 + else + # Otherwise, print errors and exit non-zero + puts "\e[48;5;09m#{file} has errors\e[m" + errs.each { |x| puts " #{x}" } + 1 + end end + + +ec = 0 +# This variable from bin/gtn.rb +errs.push(*validate_document(CONTRIBUTORS, contribs_validator)) +ec = ec | show_errors('CONTRIBUTORS.yaml', errs) +errs.push(*validate_document(FUNDERS, funders_validator)) +ec = ec | show_errors('FUNDERS.yaml', errs) +errs.push(*validate_document(ORGANISATIONS, organisations_validator)) +ec = ec | show_errors('ORGANISATIONS.yaml', errs) From b82af3eadcc5a0f3f002ee697db508facc6c5cc4 Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Wed, 11 Oct 2023 10:09:40 +0200 Subject: [PATCH 03/21] document --- .../tutorials/schemas/tutorial.md | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/topics/contributing/tutorials/schemas/tutorial.md b/topics/contributing/tutorials/schemas/tutorial.md index f61382fda56f8d..ba2fcdcd7480de 100644 --- a/topics/contributing/tutorials/schemas/tutorial.md +++ b/topics/contributing/tutorials/schemas/tutorial.md @@ -10,18 +10,18 @@ contributors: - hexylena --- +## Training Materials + {% assign kid_key = "Tutorial Schema" %} {% assign kid_val = site.data['schema-tutorial'] %} {% include _includes/schema-render.html key=kid_key value=kid_val %} -{% assign kid_key = "Contributor Schema" %} -{% assign kid_val = site.data['schema-contributors'] %} -{% include _includes/schema-render.html key=kid_key value=kid_val %} - {% assign kid_key = "Slides Schema" %} {% assign kid_val = site.data['schema-slides'] %} {% include _includes/schema-render.html key=kid_key value=kid_val %} +## GTN Resources + {% assign kid_key = "FAQ Schema" %} {% assign kid_val = site.data['schema-faq'] %} {% include _includes/schema-render.html key=kid_key value=kid_val %} @@ -41,3 +41,17 @@ contributors: {% assign kid_key = "News" %} {% assign kid_val = site.data['schema-news'] %} {% include _includes/schema-render.html key=kid_key value=kid_val %} + +## Contributors + +{% assign kid_key = "Contributor Schema" %} +{% assign kid_val = site.data['schema-contributors'] %} +{% include _includes/schema-render.html key=kid_key value=kid_val %} + +{% assign kid_key = "Organisation Schema" %} +{% assign kid_val = site.data['schema-organisations'] %} +{% include _includes/schema-render.html key=kid_key value=kid_val %} + +{% assign kid_key = "Funder Schema" %} +{% assign kid_val = site.data['schema-funders'] %} +{% include _includes/schema-render.html key=kid_key value=kid_val %} From e824f344fb6d0623c4fa586244a6f6e8941f3e07 Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Wed, 11 Oct 2023 10:20:57 +0200 Subject: [PATCH 04/21] add to news --- bin/news.rb | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/bin/news.rb b/bin/news.rb index a9f3b31bf0dc97..0a46359d419fcc 100755 --- a/bin/news.rb +++ b/bin/news.rb @@ -42,6 +42,8 @@ NOW = Time.now CONTRIBUTORS = YAML.load_file('CONTRIBUTORS.yaml') +ORGANISATIONS = YAML.load_file('ORGANISATIONS.yaml') +FUNDERS = YAML.load_file('FUNDERS.yaml') # new news # new slidevideos @@ -107,6 +109,10 @@ def fixNews(n) }, contributors: `git diff --unified --ignore-all-space #{options[:previousCommit]} CONTRIBUTORS.yaml` .split("\n").grep(/^\+[^ ]+:\s*$/).map { |x| x.strip[1..-2] } + organisations: `git diff --unified --ignore-all-space #{options[:previousCommit]} ORGANISATIONS.yaml` + .split("\n").grep(/^\+[^ ]+:\s*$/).map { |x| x.strip[1..-2] } + funders: `git diff --unified --ignore-all-space #{options[:previousCommit]} FUNDERS.yaml` + .split("\n").grep(/^\+[^ ]+:\s*$/).map { |x| x.strip[1..-2] } } def titleize(t) @@ -176,7 +182,19 @@ def build_news(data, filter: nil, updates: true) output += data[:contributors].map { |c| linkify("@#{c}", "hall-of-fame/#{c}") }.join("\n").gsub(/^/, '- ') end - [output, newsworthy] + if filter.nil? && data[:organisations].length.positive? + newsworthy = true + output += "\n\n## #{data[:organisations].length} new organisations!\n\n" + output += data[:organisations].map { |c| linkify("@#{c}", "hall-of-fame/#{c}") }.join("\n").gsub(/^/, '- ') + end + + if filter.nil? && data[:funders].length.positive? + newsworthy = true + output += "\n\n## #{data[:funders].length} new funders!\n\n" + output += data[:funders].map { |c| linkify("@#{c}", "hall-of-fame/#{c}") }.join("\n").gsub(/^/, '- ') + end + + return [output, newsworthy] end def send_news(output, options, channel: 'default') From 759d086ebe00129db12a6763f976034bfdcb1ab3 Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Wed, 11 Oct 2023 11:56:42 +0200 Subject: [PATCH 05/21] Update all plugins --- _layouts/contributor_index.html | 2 +- _layouts/tutorial_hands_on.html | 2 +- _plugins/api.rb | 50 +++++++++------------- _plugins/author-page.rb | 5 ++- _plugins/gtn.rb | 50 +++------------------- _plugins/gtn/metrics.rb | 17 ++++++-- _plugins/jekyll-jsonld.rb | 75 ++++++++++++++++++--------------- _plugins/jekyll-topic-filter.rb | 25 ++--------- _plugins/jekyll-webfinger.rb | 4 +- _plugins/notebook-rmarkdown.rb | 2 +- _plugins/notebook.rb | 26 ++++-------- bin/schema-funders.yaml | 15 +++++++ 12 files changed, 117 insertions(+), 156 deletions(-) diff --git a/_layouts/contributor_index.html b/_layouts/contributor_index.html index 110c88d62ef13a..e8a5e74c8ce7ea 100644 --- a/_layouts/contributor_index.html +++ b/_layouts/contributor_index.html @@ -6,7 +6,7 @@ -
+
- -
-
- {{ entity | fetch_entity_avatar: page.contributor, 200 }} -
- - {% if entity.bio %} -

- {{ entity.bio }} -

- {% endif %} - - {% if page.has_philosophy %} - - {% endif %} - - {% if entity.github != false %} - - {% endif %} - - {% if entity.funding_id %} - Grant ID: - {% if entity.funding_system %} - {% assign url = entity | fetch_funding_url %} - - {{ entity.funding_id }} - - {% else %} - {{ entity.funding_id }} - {% endif %} - {% endif %} - - {% if entity.email %} - - {% endif %} - - {% if entity.matrix %} - - {% endif %} - - {% if entity.fediverse %} - - {% endif %} - - {% if entity.twitter %} - - {% endif %} - - {% if entity.linkedin %} - - {% endif %} - - {% if entity.orcid %} - - {% endif %} - - {% if entity.elixir_node %} -
- elixir logo for {{ entity.elixir_node | elixirnode2name }} -
- {% endif %} - -

Favourite Topics

- -

Favourite Formats

- - -
-

@@ -128,6 +27,13 @@

Funded by {{ entity.funder_name }}

{% endif %}

+ + {% if entity.bio %} +

+ {{ entity.bio }} +

+ {% endif %} + {% if entity.funder %}
GTN Funder
{% endif %} @@ -139,6 +45,13 @@

In Memoriam

{% endif %} + {% if entity.affiliations | length > 0 %} +

Affiliations

+
+ {% include _includes/contributor-list.html contributors=entity.affiliations badge=true %} +
+ {% endif %} +

Contributions

{% if entity.funder %} @@ -246,6 +159,108 @@

News

{% endfor %}
{% endif %} + +
+ +
+
+ {{ entity | fetch_entity_avatar: page.contributor, 200 }} +
+ + {% if page.has_philosophy %} + + {% endif %} + + {% if entity.github != false %} + + {% endif %} + + {% if entity.funding_id %} + Grant ID: + {% if entity.funding_system %} + {% assign url = entity | fetch_funding_url %} + + {{ entity.funding_id }} + + {% else %} + {{ entity.funding_id }} + {% endif %} + {% endif %} + + {% if entity.email %} + + {% endif %} + + {% if entity.matrix %} + + {% endif %} + + {% if entity.fediverse %} + + {% endif %} + + {% if entity.twitter %} + + {% endif %} + + {% if entity.linkedin %} + + {% endif %} + + {% if entity.orcid %} + + {% endif %} + + {% if entity.elixir_node %} +
+ elixir logo for {{ entity.elixir_node | elixirnode2name }} +
+ {% endif %} + +

Favourite Topics

+ +

Favourite Formats

+ + +
+
+ +
+ + + - - - - - - -
+ From f32eab355aafa39707cf62b7f5997630ee337fa2 Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Thu, 19 Oct 2023 14:49:20 +0200 Subject: [PATCH 13/21] avatar class for better HoF images --- _plugins/gtn.rb | 4 ++-- _plugins/jekyll-topic-filter.rb | 4 ++-- assets/css/main.scss | 12 +++++++++--- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/_plugins/gtn.rb b/_plugins/gtn.rb index 15279881f63b31..7e8e2acea8d62b 100644 --- a/_plugins/gtn.rb +++ b/_plugins/gtn.rb @@ -248,11 +248,11 @@ def fetch_entity_avatar_url(entity, id, width) # Example: # {{ entity | fetch_entity_avatar: 'alice', 120 }} def fetch_entity_avatar(entity, id, width) - return 'ERROR_NO_ENTITY avatar' if entity.nil? + return 'ERROR_NO_ENTITY avatar' if entity.nil? w = width.nil? ? '' : "width=\"#{width}\"" url = fetch_entity_avatar_url(entity, id, width) - %(#{entity['name']} avatar) + %(#{entity['name']} avatar) end ## diff --git a/_plugins/jekyll-topic-filter.rb b/_plugins/jekyll-topic-filter.rb index 93b106dc4b6b05..5ca9edb9aacaa6 100644 --- a/_plugins/jekyll-topic-filter.rb +++ b/_plugins/jekyll-topic-filter.rb @@ -681,7 +681,7 @@ def self.identify_contributors(materials, site) .map { |_k, v| v['materials'] }.flatten # Not 100% sure why this flatten is needed? Probably due to the map over hash .map { |mat| Gtn::Contributors.get_contributors(mat) }.flatten.uniq.shuffle - .reject { |c| Gtn::Contributors.is_funder(site, c) } + .reject { |c| Gtn::Contributors.funder?(site, c) } end ## @@ -695,7 +695,7 @@ def self.identify_funders(materials, site) .map { |_k, v| v['materials'] }.flatten # Not 100% sure why this flatten is needed? Probably due to the map over hash .map { |mat| Gtn::Contributors.get_contributors(mat) }.flatten.uniq.shuffle - .select { |c| Gtn::Contributors.is_funder(site, c) } + .select { |c| Gtn::Contributors.funder?(site, c) } end ## diff --git a/assets/css/main.scss b/assets/css/main.scss index de91a98017328e..ccaeedfae680a7 100644 --- a/assets/css/main.scss +++ b/assets/css/main.scss @@ -830,6 +830,15 @@ blockquote { justify-content: space-around; } +.contributor-page { + img.avatar { + background-color: white; + border-radius: 20px; + border: 1px solid var(--border-light); + padding: 5px; + width: 100%; + } +} .hall-of-fame-hero { width: 140px; margin: 1rem; @@ -852,9 +861,6 @@ blockquote { border: 1px solid var(--border-light); padding: 5px; width: 100%; - -webkit-transition: border 0.2s ease-in-out; - -o-transition: border 0.2s ease-in-out; - transition: border 0.2s ease-in-out; } } From 21fb32da950b4551af0c9f7fddcbe87f63d5d350 Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Thu, 19 Oct 2023 14:50:56 +0200 Subject: [PATCH 14/21] rubocop --- _plugins/gtn.rb | 4 +++- bin/lint.rb | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/_plugins/gtn.rb b/_plugins/gtn.rb index 7e8e2acea8d62b..f570fb23d62c48 100644 --- a/_plugins/gtn.rb +++ b/_plugins/gtn.rb @@ -248,7 +248,9 @@ def fetch_entity_avatar_url(entity, id, width) # Example: # {{ entity | fetch_entity_avatar: 'alice', 120 }} def fetch_entity_avatar(entity, id, width) - return 'ERROR_NO_ENTITY avatar' if entity.nil? + if entity.nil? + return 'ERROR_NO_ENTITY avatar' + end w = width.nil? ? '' : "width=\"#{width}\"" url = fetch_entity_avatar_url(entity, id, width) diff --git a/bin/lint.rb b/bin/lint.rb index fd8806445395f5..8d0530f7b1af78 100755 --- a/bin/lint.rb +++ b/bin/lint.rb @@ -693,7 +693,7 @@ def self.zenodo_api(contents) match_start: selected.begin(1), match_end: selected.end(1) + 1, replacement: nil, - message: 'The Zenodo.org/api URLs are not stable, you must use a URL of the format zenodo.org/record/..., apologies we cannot fix automatically.', + message: 'The Zenodo.org/api URLs are not stable, you must use a URL of the format zenodo.org/record/...', code: 'GTN:032' ) end From 3126331f45e31d5684524995958ecd218c2f026d Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Thu, 19 Oct 2023 14:51:50 +0200 Subject: [PATCH 15/21] give it a heading --- _layouts/contributor_index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/_layouts/contributor_index.html b/_layouts/contributor_index.html index 2b4f11b2c6b6c7..4e308cb9585fb7 100644 --- a/_layouts/contributor_index.html +++ b/_layouts/contributor_index.html @@ -167,6 +167,7 @@

News

{{ entity | fetch_entity_avatar: page.contributor, 200 }} +

External Links

{% if page.has_philosophy %}
From 4db65868c9e1affd3a1ea34b673ccd7711b9eea6 Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Thu, 19 Oct 2023 17:25:59 +0200 Subject: [PATCH 16/21] fix schemas --- FUNDERS.yaml | 14 ++++++++++++-- bin/schema-contributors.yaml | 7 +++++-- bin/schema-funders.yaml | 5 ++--- bin/validate-contributors.rb | 10 ++++++---- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/FUNDERS.yaml b/FUNDERS.yaml index 7560dbf6d8d3f6..76b890050832c4 100644 --- a/FUNDERS.yaml +++ b/FUNDERS.yaml @@ -22,8 +22,8 @@ gallantries: name: "Gallantries: Bridging Training Communities in Life Science, Environment and Health" - start_date: 2020-09 - end_date: 2023-10 + start_date: "2020-09-01" + end_date: "2023-09-30" joined: 2020-09 avatar: "https://gallantries.github.io/assets/images/gallantries-logo.png" github: false @@ -171,57 +171,67 @@ sfb992: url: https://www.sfb992.uni-freiburg.de/ avatar: https://raw.githubusercontent.com/bgruening/presentations/bce348bb606c312d531c479e63a66efc2bc38d44/shared/resources/img/MEDEP.jpg github: false + funder: true MPIIE: name: Max Planck Institute of Immunology and Epigenetics url: https://www.ie-freiburg.mpg.de avatar: https://raw.githubusercontent.com/bgruening/presentations/master/shared/resources/img/14_MPI_IE_logo_mit_180.gif github: false + funder: true alu-fr: name: University of Freiburg url: https://www.uni-freiburg.de/ avatar: https://raw.githubusercontent.com/bgruening/presentations/a2e38e4b007994af798320db3a0131c4bb891c0e/shared/resources/img/logo_freiburg.jpg github: false + funder: true psu: name: The Pennsylvania State University url: http://www.psu.edu avatar: "/training-material/shared/images/psu.png" github: false + funder: true ifb: name: Institut Français de Bioinformatique url: https://www.france-bioinformatique.fr/ avatar: "/training-material/shared/images/ifb.png" github: false + funder: true elixir-excelerate: name: Elixir Excelerate url: https://www.elixir-europe.org/excelerate/ avatar: "/training-material/shared/images/Excelerate_whitebackground.png" github: false + funder: true nsf: name: National Science Foundation url: https://www.nsf.gov avatar: "/training-material/shared/images/nsf.gif" github: false + funder: true erasmus-mc: name: Erasmus Mecial Center url: https://www.erasmusmc.nl avatar: "/training-material/shared/images/logo-erasmusmc.png" github: false + funder: true embl-ebi: name: European Bioinformatics Institute url: https://www.ebi.ac.uk avatar: https://raw.githubusercontent.com/nomadscientist/scrnaseq_training/d0fccaa9dc8dc8615eb7146d6c5e96bd36f11f3a/EMBL_EBI_Logo_black.svg github: false + funder: true ukmrc: name: UK Medical Research Council url: https://mrc.ukri.org avatar: https://raw.githubusercontent.com/nomadscientist/scrnaseq_training/master/logo.png github: false + funder: true diff --git a/bin/schema-contributors.yaml b/bin/schema-contributors.yaml index c6a4cccb10776d..15d008de4d4adb 100644 --- a/bin/schema-contributors.yaml +++ b/bin/schema-contributors.yaml @@ -89,10 +89,13 @@ mapping: description: Set this to `no` if you would like to be excluded from the hall of fame. affiliations: type: seq - enum: + description: "A set of organisations or grants your are affiliated with" + sequence: + - type: str + required: true + enum: - ORGANISATIONS - FUNDERS - description: "A set of organisations or grants your are affiliated with" elixir_node: type: str enum: diff --git a/bin/schema-funders.yaml b/bin/schema-funders.yaml index 5b6b50abccfbde..aed8d21e89244f 100644 --- a/bin/schema-funders.yaml +++ b/bin/schema-funders.yaml @@ -76,7 +76,6 @@ mapping: - 0000-0001-9760-8992 joined: type: str - required: true pattern: /[0-9]{4,}-[0-9]{2}/ description: The year and month in which you joined examples: @@ -86,13 +85,13 @@ mapping: pattern: /[0-9]{4,}-[0-9]{2}-[0-9]{2}/ description: The start date of the grant examples: - - 2020-01-01 + - "2020-01-01" end_date: type: str pattern: /[0-9]{4,}-[0-9]{2}-[0-9]{2}/ description: The end date of the grant examples: - - 2020-01-01 + - "2020-01-01" avatar: type: str funder: diff --git a/bin/validate-contributors.rb b/bin/validate-contributors.rb index 6441c96ce2a62e..17d8b0a89065e1 100755 --- a/bin/validate-contributors.rb +++ b/bin/validate-contributors.rb @@ -6,7 +6,6 @@ require './bin/gtn' # Any error messages -errs = [] CONTRIBUTORS_SCHEMA_UNSAFE = YAML.load_file('bin/schema-contributors.yaml') CONTRIBUTORS_SCHEMA = automagic_loading(CONTRIBUTORS_SCHEMA_UNSAFE) @@ -42,9 +41,12 @@ def show_errors(file, errs) ec = 0 # This variable from bin/gtn.rb -errs.push(*validate_document(CONTRIBUTORS, contribs_validator)) +errs = validate_document(CONTRIBUTORS, contribs_validator) ec |= show_errors('CONTRIBUTORS.yaml', errs) -errs.push(*validate_document(FUNDERS, funders_validator)) +errs = validate_document(FUNDERS, funders_validator) ec |= show_errors('FUNDERS.yaml', errs) -errs.push(*validate_document(ORGANISATIONS, organisations_validator)) +errs = validate_document(ORGANISATIONS, organisations_validator) ec | show_errors('ORGANISATIONS.yaml', errs) + +# Exit +exit ec From f6905df622e1207081deabba5e5615bac6b338d5 Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Thu, 2 Nov 2023 17:47:45 +0100 Subject: [PATCH 17/21] fill out backrefs --- CONTRIBUTORS.yaml | 18 +++++- FUNDERS.yaml | 109 ++++++++++++-------------------- Gemfile.lock | 4 +- ORGANISATIONS.yaml | 36 +++++++++++ _layouts/contributor_index.html | 3 +- _plugins/gtn.rb | 19 ++++++ bin/schema-funders.yaml | 3 - bin/schema-organisations.yaml | 3 - 8 files changed, 115 insertions(+), 80 deletions(-) diff --git a/CONTRIBUTORS.yaml b/CONTRIBUTORS.yaml index 5d287a222c6d01..a6ddf827b8c7cd 100644 --- a/CONTRIBUTORS.yaml +++ b/CONTRIBUTORS.yaml @@ -39,6 +39,8 @@ abretaud: lon: -1.64 fediverse: https://genomic.social/@abretaud fediverse_flavor: mastodon + affiliations: + - gallantries abdulrahmanazab: name: Abdulrahman Azab @@ -205,6 +207,9 @@ bebatut: lon: 3.08 fediverse: https://piaille.fr/@bebatut fediverse_flavor: mastodon + affiliations: + - gallantries + - uni-freiburg bedroesb: name: Bert Droesbeke @@ -549,6 +554,8 @@ fpsom: linkedin: fpsom joined: 2019-03 elixir_node: gr + affiliations: + - gallantries fboyer: github: false @@ -654,8 +661,9 @@ hexylena: fediverse: https://galaxians.garden/hexylena fediverse_flavor: akkoma affiliations: + - gallantries + - erasmusmc - avans-atgm - - elixir-europe contact_for_training: false location: country: NL @@ -1454,7 +1462,7 @@ sbenateau: sonalhenson: name: Sonal Henson joined: 2023-09 - + Shians: name: Shian Su joined: 2019-02 @@ -1471,6 +1479,10 @@ shiltemann: bio: Researcher at Erasmus Medical Center elixir_node: nl contact_for_training: true + affiliations: + - cineca + - gallantries + - erasmusmc location: country: NL lat: 51.912 @@ -1746,6 +1758,8 @@ yvanlebras: orcid: 0000-0002-8504-068X joined: 2017-09 elixir_node: fr + affiliations: + - gallantries paulzierep: name: Paul Zierep diff --git a/FUNDERS.yaml b/FUNDERS.yaml index 76b890050832c4..bbb5db378a8cdf 100644 --- a/FUNDERS.yaml +++ b/FUNDERS.yaml @@ -154,84 +154,53 @@ biont: funding_statement: | Co-funded by the European Union +ELIXIR-UK-DaSH: + name: DASH UK + joined: 2023-10 + avatar: "https://github.com/galaxyproject/training-material/blob/main/shared/images/dash.png?raw=true" + url: https://elixiruknode.org/projects/elixir-uk-dash/ + funder: true + funding_system: ukri + funding_id: MR/V038966/1 + funding_statement: | + This Fellowship was funded through the ELIXIR-UK DaSH project as part of the UKRI Innovation Scholars: Data Science Training in Health and Bioscience call (DaSH). (MR/V038966/1). The project aims to embed Research Data Management (RDM) know-how into UK universities and institutes by producing and delivering training in FAIR data stewardship using ELIXIR-UK knowledge and resources. + deNBI: - name: de.NBI - funder: true - url: https://www.denbi.de/ + name: de.NBI + funder: true + url: https://www.denbi.de/ NIH: - name: National Institutes of Health - avatar: /training-material/shared/images/nih.png - url: https://nih.gov/ - funder: true - github: false + name: National Institutes of Health + avatar: /training-material/shared/images/nih.png + url: https://nih.gov/ + funder: true + github: false sfb992: - name: Collaborative Research Centre 992 - url: https://www.sfb992.uni-freiburg.de/ - avatar: https://raw.githubusercontent.com/bgruening/presentations/bce348bb606c312d531c479e63a66efc2bc38d44/shared/resources/img/MEDEP.jpg - github: false - funder: true - -MPIIE: - name: Max Planck Institute of Immunology and Epigenetics - url: https://www.ie-freiburg.mpg.de - avatar: https://raw.githubusercontent.com/bgruening/presentations/master/shared/resources/img/14_MPI_IE_logo_mit_180.gif - github: false - funder: true - -alu-fr: - name: University of Freiburg - url: https://www.uni-freiburg.de/ - avatar: https://raw.githubusercontent.com/bgruening/presentations/a2e38e4b007994af798320db3a0131c4bb891c0e/shared/resources/img/logo_freiburg.jpg - github: false - funder: true - -psu: - name: The Pennsylvania State University - url: http://www.psu.edu - avatar: "/training-material/shared/images/psu.png" - github: false - funder: true - -ifb: - name: Institut Français de Bioinformatique - url: https://www.france-bioinformatique.fr/ - avatar: "/training-material/shared/images/ifb.png" - github: false - funder: true + name: Collaborative Research Centre 992 + url: https://www.sfb992.uni-freiburg.de/ + avatar: https://raw.githubusercontent.com/bgruening/presentations/bce348bb606c312d531c479e63a66efc2bc38d44/shared/resources/img/MEDEP.jpg + github: false + funder: true elixir-excelerate: - name: Elixir Excelerate - url: https://www.elixir-europe.org/excelerate/ - avatar: "/training-material/shared/images/Excelerate_whitebackground.png" - github: false - funder: true + name: Elixir Excelerate + url: https://www.elixir-europe.org/excelerate/ + avatar: "/training-material/shared/images/Excelerate_whitebackground.png" + github: false + funder: true nsf: - name: National Science Foundation - url: https://www.nsf.gov - avatar: "/training-material/shared/images/nsf.gif" - github: false - funder: true - -erasmus-mc: - name: Erasmus Mecial Center - url: https://www.erasmusmc.nl - avatar: "/training-material/shared/images/logo-erasmusmc.png" - github: false - funder: true - -embl-ebi: - name: European Bioinformatics Institute - url: https://www.ebi.ac.uk - avatar: https://raw.githubusercontent.com/nomadscientist/scrnaseq_training/d0fccaa9dc8dc8615eb7146d6c5e96bd36f11f3a/EMBL_EBI_Logo_black.svg - github: false - funder: true + name: National Science Foundation + url: https://www.nsf.gov + avatar: "/training-material/shared/images/nsf.gif" + github: false + funder: true ukmrc: - name: UK Medical Research Council - url: https://mrc.ukri.org - avatar: https://raw.githubusercontent.com/nomadscientist/scrnaseq_training/master/logo.png - github: false - funder: true + name: UK Medical Research Council + url: https://mrc.ukri.org + avatar: https://raw.githubusercontent.com/nomadscientist/scrnaseq_training/master/logo.png + github: false + funder: true diff --git a/Gemfile.lock b/Gemfile.lock index 334a3744861686..ce5a616e9d1d27 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -89,6 +89,7 @@ GEM public_suffix (5.0.3) racc (1.7.1) rainbow (3.1.1) + rake (13.1.0) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) @@ -96,8 +97,9 @@ GEM rouge (4.1.3) rubyzip (2.3.2) safe_yaml (1.0.5) - sass-embedded (1.68.0-x86_64-linux-gnu) + sass-embedded (1.69.5) google-protobuf (~> 3.23) + rake (>= 13.0.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) typhoeus (1.4.0) diff --git a/ORGANISATIONS.yaml b/ORGANISATIONS.yaml index 83bb8835734dee..3d1026d534581b 100644 --- a/ORGANISATIONS.yaml +++ b/ORGANISATIONS.yaml @@ -13,6 +13,12 @@ carpentries: name: The Carpentries joined: 2021-09 +erasmusmc: + name: Erasmus Mecial Center + url: https://www.erasmusmc.nl + avatar: "/training-material/shared/images/logo-erasmusmc.png" + github: false + avans-atgm: name: Avans Hogeschool joined: 2020-11 @@ -30,3 +36,33 @@ elixir-goblet-ttt: joined: 2022-09 github: false avatar: "/training-material/shared/images/elixir.png" + +embl-ebi: + name: European Bioinformatics Institute + url: https://www.ebi.ac.uk + avatar: https://raw.githubusercontent.com/nomadscientist/scrnaseq_training/d0fccaa9dc8dc8615eb7146d6c5e96bd36f11f3a/EMBL_EBI_Logo_black.svg + github: false + +MPIIE: + name: Max Planck Institute of Immunology and Epigenetics + url: https://www.ie-freiburg.mpg.de + avatar: https://raw.githubusercontent.com/bgruening/presentations/master/shared/resources/img/14_MPI_IE_logo_mit_180.gif + github: false + +uni-freiburg: + name: University of Freiburg + url: https://www.uni-freiburg.de/ + avatar: https://raw.githubusercontent.com/bgruening/presentations/a2e38e4b007994af798320db3a0131c4bb891c0e/shared/resources/img/logo_freiburg.jpg + github: false + +psu: + name: The Pennsylvania State University + url: http://www.psu.edu + avatar: "/training-material/shared/images/psu.png" + github: false + +ifb: + name: Institut Français de Bioinformatique + url: https://www.france-bioinformatique.fr/ + avatar: "/training-material/shared/images/ifb.png" + github: false diff --git a/_layouts/contributor_index.html b/_layouts/contributor_index.html index 4e308cb9585fb7..1e1f88d999d4ef 100644 --- a/_layouts/contributor_index.html +++ b/_layouts/contributor_index.html @@ -45,7 +45,8 @@

In Memoriam

{% endif %} - {% if entity.affiliations | length > 0 %} + {% assign affil_count = entity.affiliations | length %} + {% if affil_count > 0 %}

Affiliations

{% include _includes/contributor-list.html contributors=entity.affiliations badge=true %} diff --git a/_plugins/gtn.rb b/_plugins/gtn.rb index f570fb23d62c48..7e28517c8a19d1 100644 --- a/_plugins/gtn.rb +++ b/_plugins/gtn.rb @@ -416,6 +416,25 @@ def get_default_link(material) post.data['image'] = post.data['cover'] end +# Create back-refs for affiliations +Jekyll::Hooks.register :site, :post_read do |site| + # Users list affiliations on their profile in site.data['contributors'] + # And we want to create a back-ref to the user from the affiliation + site.data['contributors'].each do |name, contributor| + if contributor.key?('affiliations') + contributor['affiliations'].each do |affiliation| + if site.data['organisations'].key?(affiliation) + site.data['organisations'][affiliation]['affiliations'] ||= [] + site.data['organisations'][affiliation]['affiliations'] << name + elsif site.data['funders'].key?(affiliation) + site.data['funders'][affiliation]['affiliations'] ||= [] + site.data['funders'][affiliation]['affiliations'] << name + end + end + end + end +end + if $PROGRAM_NAME == __FILE__ result = Gtn::ModificationTimes.obtain_time(ARGV[0].gsub(%r{^/}, '')) puts "Modification time of #{ARGV[0].gsub(%r{^/}, '')} is #{result}" diff --git a/bin/schema-funders.yaml b/bin/schema-funders.yaml index aed8d21e89244f..f4f0510a45ce01 100644 --- a/bin/schema-funders.yaml +++ b/bin/schema-funders.yaml @@ -61,9 +61,6 @@ mapping: linkedin: type: str pattern: /[0-9a-zA-Z]+/ - maintainer_contact: - type: str - description: Preferred contact method github: type: bool description: | diff --git a/bin/schema-organisations.yaml b/bin/schema-organisations.yaml index d64f66b8b3669d..e5f09df9b0117e 100644 --- a/bin/schema-organisations.yaml +++ b/bin/schema-organisations.yaml @@ -61,9 +61,6 @@ mapping: linkedin: type: str pattern: /[0-9a-zA-Z]+/ - maintainer_contact: - type: str - description: Preferred contact method github: type: bool description: | From 0472b354ebce2d4d7185a4c11fb0b823ac700dfe Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Thu, 2 Nov 2023 18:10:42 +0100 Subject: [PATCH 18/21] improve layouts --- CONTRIBUTORS.yaml | 2 +- FUNDERS.yaml | 10 +++++++++- _includes/contributor-badge.html | 8 ++++---- _layouts/contributor_index.html | 11 ++++++++++- _layouts/hall-of-fame.html | 4 ++-- _layouts/home.html | 8 ++++---- _plugins/gtn.rb | 14 ++++++++++---- assets/css/main.scss | 4 ++-- bin/schema-funders.yaml | 14 ++++++++------ 9 files changed, 50 insertions(+), 25 deletions(-) diff --git a/CONTRIBUTORS.yaml b/CONTRIBUTORS.yaml index a6ddf827b8c7cd..6e64e8aa30b6e8 100644 --- a/CONTRIBUTORS.yaml +++ b/CONTRIBUTORS.yaml @@ -1480,7 +1480,7 @@ shiltemann: elixir_node: nl contact_for_training: true affiliations: - - cineca + - CINECA-Project - gallantries - erasmusmc location: diff --git a/FUNDERS.yaml b/FUNDERS.yaml index bbb5db378a8cdf..4e8fcfee6927c0 100644 --- a/FUNDERS.yaml +++ b/FUNDERS.yaml @@ -22,6 +22,7 @@ gallantries: name: "Gallantries: Bridging Training Communities in Life Science, Environment and Health" + short_name: "Gallantries" start_date: "2020-09-01" end_date: "2023-09-30" joined: 2020-09 @@ -39,6 +40,7 @@ gallantries: CINECA-Project: name: Common Infrastructure for National Cohorts in Europe, Canada, and Africa + short_name: "CINECA" joined: 2023-03 funder: true funding_id: "825775" @@ -47,6 +49,7 @@ CINECA-Project: epsrc-training-grant: name: EPSRC Training Grant DTP 2020-2021 Open University + short_name: "EPSRC/OU" github: false joined: 2022-09 funder: true @@ -79,6 +82,7 @@ by-covid: elixir-fair-data: name: "ELIXIR-UK: FAIR Data Stewardship training" + short_name: "ELIXIR Fair Data" github: false joined: 2023-06 funder: true @@ -88,7 +92,8 @@ elixir-fair-data: This work has been funded by the ELIXIR-UK FAIR Data Stewardship training UKRI award (MR/V038966/1) h2020-defend: - name: DEFEND + name: "Addressing the dual emerging threats of African Swine Fever and Lumpy Skin Disease in Europe" + short_name: DEFEND github: false joined: 2023-05 funder: true @@ -114,6 +119,7 @@ elixir-converge: nhgri-gdscn: name: National Human Genome Research Institute Genomic Data Science Community Network + short_name: "NHGRI GDS Community Network" github: false joined: 2023-06 avatar: https://www.ashg.org/wp-content/uploads/2021/07/nhgri-logo-800x167-1.png @@ -123,6 +129,7 @@ nhgri-gdscn: nhgri-anvil: name: National Human Genome Research Institute Genomic Data Science Analysis, Visualization, and Informatics Lab-Space + short_name: "NHGRI ANVIL" github: false joined: 2023-06 avatar: https://www.ashg.org/wp-content/uploads/2021/07/nhgri-logo-800x167-1.png @@ -172,6 +179,7 @@ deNBI: NIH: name: National Institutes of Health + short_name: "NIH" avatar: /training-material/shared/images/nih.png url: https://nih.gov/ funder: true diff --git a/_includes/contributor-badge.html b/_includes/contributor-badge.html index 6f41455af02aad..0634ee2805092b 100644 --- a/_includes/contributor-badge.html +++ b/_includes/contributor-badge.html @@ -1,11 +1,11 @@ {%- if include.id == "newcontributors" -%} {% icon hall-of-fame %}{{locale['add-contributions'] | default: "Add Contributions!" }} {%- else -%} - {%- assign entity = site | fetch_contributor: include.id -%} - {%- assign name = entity.name | default: include.id -%} + {%- assign contributor_badge_entity = site | fetch_contributor: include.id -%} + {%- assign name = contributor_badge_entity.short_name | default: contributor_badge_entity.name | default: include.id -%} - {%- if entity.orcid -%}orcid logo{%- endif -%} - {{ entity | fetch_entity_avatar:include.id, 36 }} + {%- if contributor_badge_entity.orcid -%}orcid logo{%- endif -%} + {{ contributor_badge_entity | fetch_entity_avatar:include.id, 36 }} {{ name }} {%- if include.activity -%} {%- include _includes/contributor-human-icons.html activity=include.activity -%} diff --git a/_layouts/contributor_index.html b/_layouts/contributor_index.html index 1e1f88d999d4ef..0526f08f3434e1 100644 --- a/_layouts/contributor_index.html +++ b/_layouts/contributor_index.html @@ -45,7 +45,7 @@

In Memoriam

{% endif %} - {% assign affil_count = entity.affiliations | length %} + {% assign affil_count = entity.affiliations | size %} {% if affil_count > 0 %}

Affiliations

@@ -53,6 +53,15 @@

Affiliations

{% endif %} + {% assign member_count = entity.members | size %} + {% if member_count > 0 %} +

Members

+

These individuals have noted that they are affiliated in some way with this organisation. This list is non-exhaustive.

+
+ {% include _includes/contributor-list.html contributors=entity.members badge=true %} +
+ {% endif %} +

Contributions

{% if entity.funder %} diff --git a/_layouts/hall-of-fame.html b/_layouts/hall-of-fame.html index 7e22feace6fd1d..3816930864d209 100644 --- a/_layouts/hall-of-fame.html +++ b/_layouts/hall-of-fame.html @@ -71,7 +71,7 @@

Contributing Organizations

{{ org[1] | fetch_entity_avatar: org[0], 120 }}
- {{ org[1].name | default: username }} + {{ org[1].short_name | default: org[1].name | default: username }}
@@ -86,7 +86,7 @@

Funders

{{ funder[1] | fetch_entity_avatar: funder[0], 120 }}
- {{ funder[1].name | default: username }} + {{ funder[1].short_name | default: funder[1].name | default: username }}
diff --git a/_layouts/home.html b/_layouts/home.html index 5c6916a6219198..49a05fc78757d4 100644 --- a/_layouts/home.html +++ b/_layouts/home.html @@ -243,10 +243,10 @@

Acknowledgment and Funding

{% if entity[1].url %} - {{ entity[1].name }} + {{ entity[1].short_name | default: entity[1].name }} {% else %} - {{ entity[1].name }} + {{ entity[1].short_name | default: entity[1].name }} {% endif %}
@@ -265,10 +265,10 @@

Acknowledgment and Funding

{% if entity[1].url %} - {{ entity[1].name }} + {{ entity[1].short_name | default: entity[1].name }} {% else %} - {{ entity[1].name }} + {{ entity[1].short_name | default: entity[1].name }} {% endif %}
diff --git a/_plugins/gtn.rb b/_plugins/gtn.rb index 7e28517c8a19d1..7787a83afdaaa7 100644 --- a/_plugins/gtn.rb +++ b/_plugins/gtn.rb @@ -424,11 +424,17 @@ def get_default_link(material) if contributor.key?('affiliations') contributor['affiliations'].each do |affiliation| if site.data['organisations'].key?(affiliation) - site.data['organisations'][affiliation]['affiliations'] ||= [] - site.data['organisations'][affiliation]['affiliations'] << name + if ! site.data['organisations'][affiliation].key?('members') + site.data['organisations'][affiliation]['members'] = [] + end + + site.data['organisations'][affiliation]['members'] << name elsif site.data['funders'].key?(affiliation) - site.data['funders'][affiliation]['affiliations'] ||= [] - site.data['funders'][affiliation]['affiliations'] << name + if ! site.data['funders'][affiliation].key?('members') + site.data['funders'][affiliation]['members'] = [] + end + + site.data['funders'][affiliation]['members'] << name end end end diff --git a/assets/css/main.scss b/assets/css/main.scss index ccaeedfae680a7..6f9c8b94669b9c 100644 --- a/assets/css/main.scss +++ b/assets/css/main.scss @@ -834,8 +834,8 @@ blockquote { img.avatar { background-color: white; border-radius: 20px; - border: 1px solid var(--border-light); - padding: 5px; + // border: 1px solid var(--border-light); + // padding: 5px; width: 100%; } } diff --git a/bin/schema-funders.yaml b/bin/schema-funders.yaml index f4f0510a45ce01..d562f70f580c50 100644 --- a/bin/schema-funders.yaml +++ b/bin/schema-funders.yaml @@ -14,13 +14,15 @@ mapping: type: str required: true description: | - Your preferred name. If you prefer an alias or another name, this is welcome, it does not need to be your legal name. + The full name for the grant examples: - - 张三 - - Alice - - Jane Doe - - Madame Tout-le-Monde - - Γιάννης Παπαδόπουλος + - Gallantries: Bridging Training Communities in Life Science, Environment and Health + short_name: + type: str + description: | + A shorter name, as some grants love to stuff a lot of words into the title + examples: + - Gallantries email: type: str pattern: /@/ From 7f6de05fa06f3af1e4a4c6bf37ce80e704f6a1de Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Thu, 2 Nov 2023 18:12:19 +0100 Subject: [PATCH 19/21] fronmatter --- bin/schema-funders.yaml | 5 +++++ bin/schema-organisations.yaml | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/schema-funders.yaml b/bin/schema-funders.yaml index d562f70f580c50..e8de06f0950315 100644 --- a/bin/schema-funders.yaml +++ b/bin/schema-funders.yaml @@ -116,6 +116,11 @@ mapping: - cordis - erasmusplus - ukri + funder_name: + type: str + description: A name for the agency providing the funding. + examples: + - Erasmus+ Programme funding_statement: type: str description: A short statement about the funder, markdown is supported. diff --git a/bin/schema-organisations.yaml b/bin/schema-organisations.yaml index e5f09df9b0117e..23526bb5f2d80c 100644 --- a/bin/schema-organisations.yaml +++ b/bin/schema-organisations.yaml @@ -73,7 +73,6 @@ mapping: - 0000-0001-9760-8992 joined: type: str - required: true pattern: /[0-9]{4,}-[0-9]{2}/ description: The year and month in which you joined examples: From 3c9e29a1ca6b029ba91d31e524d0307525dc2c20 Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Thu, 2 Nov 2023 18:13:45 +0100 Subject: [PATCH 20/21] typo --- ORGANISATIONS.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ORGANISATIONS.yaml b/ORGANISATIONS.yaml index 3d1026d534581b..5ce66f38d665b8 100644 --- a/ORGANISATIONS.yaml +++ b/ORGANISATIONS.yaml @@ -14,7 +14,7 @@ carpentries: joined: 2021-09 erasmusmc: - name: Erasmus Mecial Center + name: Erasmus Medical Center url: https://www.erasmusmc.nl avatar: "/training-material/shared/images/logo-erasmusmc.png" github: false From d0af19d4f113039b59db62e7c53dab938acd03c2 Mon Sep 17 00:00:00 2001 From: Helena Rasche Date: Thu, 2 Nov 2023 18:17:58 +0100 Subject: [PATCH 21/21] rubocop --- _plugins/gtn.rb | 6 ++---- _plugins/jekyll-tool-tag.rb | 6 +++--- bin/news.rb | 10 ++++------ 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/_plugins/gtn.rb b/_plugins/gtn.rb index 7787a83afdaaa7..f36d1f7a5104d8 100644 --- a/_plugins/gtn.rb +++ b/_plugins/gtn.rb @@ -424,15 +424,13 @@ def get_default_link(material) if contributor.key?('affiliations') contributor['affiliations'].each do |affiliation| if site.data['organisations'].key?(affiliation) - if ! site.data['organisations'][affiliation].key?('members') + if !site.data['organisations'][affiliation].key?('members') site.data['organisations'][affiliation]['members'] = [] end site.data['organisations'][affiliation]['members'] << name elsif site.data['funders'].key?(affiliation) - if ! site.data['funders'][affiliation].key?('members') - site.data['funders'][affiliation]['members'] = [] - end + site.data['funders'][affiliation]['members'] = [] if !site.data['funders'][affiliation].key?('members') site.data['funders'][affiliation]['members'] << name end diff --git a/_plugins/jekyll-tool-tag.rb b/_plugins/jekyll-tool-tag.rb index a83d3e12250c2e..a2cfdef61e56cb 100644 --- a/_plugins/jekyll-tool-tag.rb +++ b/_plugins/jekyll-tool-tag.rb @@ -24,11 +24,11 @@ def render(context) tool = context[m[2].tr('{}', '')] || m[2] version = tool.split('/').last - if tool.count('/') == 0 + if tool.count('/').zero? "" \ ' ' \ "#{m[1]}" \ - '' + '' else "" \ ' ' \ @@ -37,7 +37,7 @@ def render(context) ' ' \ "Galaxy version #{version}" \ ')' \ - '' + '' end else %(#{@text} ) diff --git a/bin/news.rb b/bin/news.rb index 401b4593bcc0b7..b4cc1efd80bf27 100755 --- a/bin/news.rb +++ b/bin/news.rb @@ -133,9 +133,7 @@ def format_news(news) def format_tutorials(added, modified, kind: 'tutorials', updates: true) output = '' count = added.length - if updates - count += modified.length - end + count += modified.length if updates output += "\n\n## #{count} #{kind}!" if count.positive? if added.length.positive? @@ -196,7 +194,7 @@ def build_news(data, filter: nil, updates: true) output += data[:funders].map { |c| linkify("@#{c}", "hall-of-fame/#{c}") }.join("\n").gsub(/^/, '- ') end - return [output, newsworthy] + [output, newsworthy] end def send_news(output, options, channel: 'default') @@ -242,9 +240,9 @@ def send_news(output, options, channel: 'default') end end else - puts "==============" + puts '==============' puts output - puts "==============" + puts '==============' end end