Giter VIP home page Giter VIP logo

roweb3's Introduction

roweb3

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Netlify Status

The goal of roweb3 is to hold the source of rOpenSci website, 2020 edition.

Developer notes

Hugo version

The Hugo version used has to be recorded in netlify.toml (two places) as well as in .Rprofile and in the blog guidance.

Featured posts and tech notes

To feature a blog post or tech note add:

featured: true

to its metadata. No need to remove the field afterwards (unless you now want to feature an older post):

  • the featured post or tech note at the top of the homepage is the latest post.
  • the two featured posts or tech notes at the bottom of the homepage and at the top of the blog list page are the latest featured ones.

Criteria for selecting featured posts and tech notes:

  • always one by a community member (about peer reviewed package or other); could be most-recent or most-compelling post
  • second featured post or tech note by rOpenSci team or team member about rOpenSci announcement, big collaborative post, infrastructure, package, etc. In absence of a recent compelling post this would be the most recent post or tech note by team member.

Highlighted blog "categories"

For the three blue cards that are on the blog page, edit data/blog/highlights.json

Featured events

To feature an event or comm call add

featured: true

to its metadata.

The featured event or comm call at the top of the events page is the nearest featured event.

Events

To add a new event, or add to the talks list add a Markdown file under content/events called YYYY-MM-DD-slug.md. Add the line ropensci: yes if the event is put together by rOpenSci.

---
title: Call Title in Title Case # If you use a colon put the whole field in ""
dateStart: 2020-12-05T10:00:00 # UTC!!
dateEnd: 2020-12-05T11:00:00 # UTC!!
date: 2020-12-05T11:00:00 # UTC!! same as dateEnd
description: short summary # If you use a colon put the whole field in ""
location: 'online' # free text
slug: "informative-slug"
country: "\U0001F310" # emoji
outputs: 
- HTML
- Calendar 
attendees:
  - Jane Doe # each attendee needs an author page
deets: "Register at [blabla](#)" # not necessary but useful
resources: # can be added later, one entry per talk (don't add while still empty, add once there are resources)
  - title: # talk title # If you use a colon put the whole field in ""
    speaker: # name
    slides: # URL to slidedeck
    video: # URL to recording (optional)
---

Info including links.

Comm calls

To add a new comm call, add a folder under content/commcalls with a Markdown file called index.md.

Use the YAML to store information, except from the event summary that is the content of the Markdown file. Please do not use "&" in the description.

Store speaker pictures in the folder. If needed create author files for the organizer(s) and speaker(s).

---
title: Call Title in Title Case
dateStart: 2020-12-05T10:00:00 # UTC!!
dateEnd: 2020-12-05T11:00:00 # UTC!!
date: 2020-12-05T11:00:00 # UTC!! same as dateEnd
publishDate: 2020-07-07
description: shorter description of the call
author:
  - Steffi LaZerte
  - Rich FitzJohn
organizer: Stefanie Butland
location: Community call (teleconference)
country: "\U0001F310"
attendees: All are welcome
slug: informative-slug
notes: #link to collaborative notes
outputs: 
- HTML
- Calendar 
vimeo:
  - id: '378010209'
resources:
  - url: relative or absolute URL
    name: link text
    details: more info about the link
speakers:
  - name: Jane Doe
    bio: Jane Doe is a brilliant speaker.
    img: jane-doe.jpg
  - name: John FooBar
    bio: John FooBar knows their stuff.
    img: john-foobar.jpg
tags:
  - tag1
  - tag2
deets: |
    Meeting ID: 922 9890 9939
    
    Passcode: 896415
zoomurl: zoom.blabla
---

Summary of the event.

Careers

To add a new job posting, add a file under content/careers.

---
slug: "unique-slug"
title: "Job Title in Title Case"
date: YYYY-MM-DD
expirydate: YYYY-MM-DD
location: Well, the location
conditions: Here you can add if it's full-time, an internship, in a few words
---

Markdown text, details of the posting, including application deadline.

expirydate is the expiry date of the job posting page: from that day, when the website is built, the job ad will disappear from the website. Ideally, set a deadline prominently in the text, and set expirydate to 2 days after that to not be bitten by time zones stuff.

Brands

To add a new partner for the homepage bottom section

  • add an image (SVG) under themes/ropensci/assets/brands (the image will be minified by Hugo so don't worry about size)
  • add an entry in data/partners/brand.json (don't forget commas in and before the entry)
{
   "name": "NASA",
   "img": "NASA_logo_gray.svg",
   "url": "https://www.nasa.gov/"
}

Papers

To add a new paper to the resources page, add an entry under data/papers/papers.json. If there is no DOI add a field called "otherid".

{
"authors": "Ram, K., Boettiger, C., Chamberlain, S., Ross, N., Salmon, M., & Butland, S.",
"year": "2018",
"title": "A Community of Practice Around Peer-review for Long-term Research Software Sustainability",
"journal": "Computing in Science & Engineering",
"doi": "10.1109/MCSE.2018.2882753",
"url": "https://doi.org/10.1109/MCSE.2018.2882753",
"pdf": "/pdfs/2019-ropensci-software-review.pdf",
"type": "organization"
}

Team member

Edit the JSON file under data/team.

  • For adding someone, create a new entry.
  • For changing someone's role, move information between the "roles" and "past_roles" field.
  • To list someone in the alumni section also add an "alumnus" field.
  • Do not forget to update the "image" field, and store a high-res square picture (at least 500x500px) under themes/ropensci/static/img/team.

The data is used for the about page and, for the editors, for the software-review page.

If the person also authors blog post, also make sure the file under author/ uses the right title and img.

Author

  • Create a folder with the name of the author on content/author
  • Copy a picture for the profile in themes/ropensci/static/img/community unless they have a GitHub profile with a picture, which will be used by default.
  • Create an _index.md with the following content:
---
name: Name Of The Author
github: github user
link: web page link
img: img/community/name-of-the-author-picture.png
---

Tweaking CSS, JS

Cf https://github.com/ropensci-org/roweb3-styles

Note that main.min.css that contains all the CSS is stored under themes/ropensci/assets so that Hugo can fingerprint it (to prevent browsers from using a cached version after we've tweaked the CSS).

Newsletter

  • Check the number of subscribers in Sendgrid doesn't go over what our current plan allows.
  • Check "New Maintainer Wanted" issues.
  • Update package categories in https://github.com/ropensci/roregistry/blob/gh-pages/scripts/update_categories.R (not directly related to the newsletter but good to do monthly!).
  • Update pinned repositories of github.com/ropensci to feature new packages.
  • Start a new post with the newsletter archetype, use the same title "rOpenSci News Digest, MONTH YEAR" and slug "ropensci-news-digest-month-YYYY" and tag "newsletter".
  • Make sure your branch is based on the latest commit of the default branch, re-base if needed.
  • Open the Rproj in scripts/use-cases (in another RStudio window), run renv::restore() and source get_use_cases.R to update use cases data (you need a Discourse API key, contact Scott).
  • Change the date of the last newsletter in the new post, knit it.
    • Manually updated sections: rOpenSci HQ (issues in https://github.com/ropensci/biweekly that you should watch; look at recent/future events including comm calls; if needed poll staff), from the forum (interesting recent posts?), package development corner (poll package-maintenance channel; your recent reads), call for maintainers.
    • If a blog post was featured on the R Weekly highlights podcast, add a link to it.
    • Automatic sections. New packages by comparing two versions of the package registry; new versions by querying GitHub releases; software review by querying GitHub API (the submitter name and URL from their GitHub profile is used. you might need to go back and fix software-review issue formatting of the DESCRIPTION block); on the blog queries YAML of posts and sorts them based on tags (if no images, try and see if some posts could get a twitterImg and twitterAlt, add it); use cases uses the use cases JSON; citations simply counts citations in total and for the year.
    • Check new packages that were peer-reviewed have a peer-reviewed badge (if they don't, less metadata in codemeta.json).
  • Update the description in YAML (keywords from content) before merging.
  • Once the post is merged and deployed on ropensci.org use the R-bloggers feed to get an HTML version of the post with absolute URLs, to be used for SendGrid. Use roblog::create_newsletter_content() Things changed:
    • The images URL src get the URL to the post (Search and Replace in Atom) & a max-width of 100%;
    • All <a are replaced with <a clicktracking=off;
    • All <li contents are wrapped in a <p for optimal sizing.
  • In Sendgrid,
    • replicate a past campaign (choose "Arial" as font not "Arial Black"!),
    • change its name,
    • change its subject
    • change its pre-header (use the YAML field "description").
    • Send test email.
    • After checking it send to all recipients.
  • Toot about the newsletter from rOpenSci account, highlighting some numbers.

Review criteria: anything looks weird? (need to fix upstream data or code?). Special focus on manually updated sections.

Help wanted issues

When deploys fail or something else goes wrong

  • If Netlify is down or Cloudflare is down, the easiest thing is to wait.
  • Is GitHub down? If so you might need to do a manual deploy on Netlify, dragging and dropping your local roweb3 folder.
  • Look at the Netlify logs (linked from the commit status) for information.
  • If relevant, check the YAML indentation. Try to build the website locally.
  • When a problem is an embedded tweet e.g.
5:04:39 PM: ERROR 2021/03/29 08:04:39 Failed to get JSON resource "https://api.twitter.com/1/statuses/oembed.json?id=bla&dnt=true":

Look for the tweet with that ID on Twitter http://twitter.com/user/status/bla (Twitter will re-direct to the correct user). Was it deleted, or is the account now private?

* If the tweet was deleted or is now private, amend the Markdown file(s) where it was embedded.
* If the tweet is available, try re-triggering the deploy.
    registry = "https://ropensci.github.io/roregistry/registry.json"
    citations = "https://ropensci-org.github.io/ropensci_citations/citations_all_parts_clean.json"

to

    registry = "URL-TO-NETLIFY-WEBSITE/registry.json"
    citations = "URL-TO-NETLIFY-WEBSITE/citations_all_parts_clean.json"

And open an issue for an Hugo person to change things back / change things back yourself when GitHub Pages is up again. With this hacky change the site should be built but if the registry and citations are updated the site is not showing the latest data.

  • If something like search or packages pages behave weirdly, look at error messages in the DevTools console (learn how to open it using one of these resources or via the browser menu, something like more tools > developer tools). Maybe one of the needed libraries can't be found because the related content delivery network (CDN) is down? Look at the status for that CDN (e.g. one of the JS files comes from https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js so you'd maybe check the Twitter account of jsdeliver). Maybe temporarily change for another CDN (e.g. https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.min.js in the related partial), open an issue. For search the problem might be the file https://ropensci.org/search/index.json, try reading it with jsonlite to see if there is a wrong sign somewhere in a content file. For an example see #322.

Search

What if search seems broken?

  • Look at error messages in the DevTools console (learn how to open it using one of these resources or via the browser menu, something like more tools > developer tools). Maybe one of the needed library can't be found because the related CDN is down? Look at the status for that CDN. Maybe temporarily change for another CDN, open an issue.

  • Look at the address <deploy-url>/search/index.json and see what error there is. You might want to copy the raw JSON into a JSON linter.

    • If the error is due to something in the website e.g. the description of a blog post, change it.
    • If the error is due to something in the packages registry ou might need to tweak "title": "{{ $page.name}} - {{ $page.description | chomp | replaceRE "\n" "" | htmlEscape }}" in themes/ropensci/layouts/search/list.json.json e.g. with one more replaceRE. If you are not a Hugo person and no Hugo person is available in the office :-) then make that line "title": "{{ $page.name}}" and open an issue tagging an Hugo person for later. It will simply make search less good for packages for a little while.

roweb3's People

Contributors

adamhsparks avatar agricolamz avatar beatrizmilz avatar bisaloo avatar denironyx avatar dpprdan avatar drmowinckels avatar emilyriederer avatar eribul avatar jeffreyrstevens avatar jeroen avatar jhollist avatar jules32 avatar karthik avatar lbrierley avatar llrs avatar maelle avatar maurolepore avatar mcguinlu avatar mpadge avatar noamross avatar peterdesmet avatar rekyt avatar richelbilderbeek avatar sckott avatar sinarueeger avatar stefaniebutland avatar steffilazerte avatar yabellini avatar zkamvar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

roweb3's Issues

fix Dennis Irorere's author page

@maelle I see that Dennis Irorere has added img: img/team/dennis.jpg to his author page. See raw; live.

Two questions:

  1. Live, it appears as oval not circle. Img dimensions are 413 × 552. Does it have to be square? How to fix?
  2. should the img file be at img: img/team/dennis.jpg or another location not in team?

cc @steffilazerte

Replace some github.com URLs with docs.ropensci.org URLs

Suggestion by @jeroen

First, check all DESCRIPTION files have the GitHub URL (otherwise it won't be linked from the pkgdown website).

Then, make the replacement semi-automatically (I suspect sometimes the link to the GitHub repo goes with a text like "the GitHub repo" in which case we still want to link the GitHub repo I suppose).

Ligature fonts on the rOpenSci website

Recently, the rOpenSci website changed to ligatured FiraCode. I believe that using ligatures in this setting is not the right choice.

Ligatures are cool but confusing to newcomers. The fact of the matter is that R does not use them; it uses characters from the keyboard. Since it's not actually R, someone less familiar with the language is going to be confused about what they are and how to make them. I realize that they copy and paste fine, but I think that in this setting, it should be clear how it connects to the software you just managed to install on your machine.

FiraCode is very pretty, but beauty should never be more important than accessibility, at least not for an organization like rOpenSci. FiraCode has a non-ligatured version, and I think it would be good to consider that, instead.

(And for the record, this is not any sort of opinion about whether you should or should not use ligatures in general... I don't even really have an opinion about that!)

CRAN's <doi:...> tags are parsed as links

<doi:...> tags are now explicitly encouraged by CRAN for each new submission. E.g. from UL:

Is there some reference about the method you can add in
the Description field in the form Authors (year) <doi:.....>?

But in the new package registry on rOpenSci's website, these tags are parsed as simple links. This means <doi:10.21105/joss.01857> will lead to the non-existing page http://doi:10.21105/joss.01857.

You can see an example of this in the package lightr.

PS: I don't know if this issue belongs in this repo. Feel free to move it if necessary

Big images

Thanks @noamross for the tip to use ncdu.

Related to ropensci-archive/roweb2#554

10,4 MiB [##########] /2018-09-14-smapr                                      
8,1 MiB [#######   ] /2017-05-16-lingtypology
6,3 MiB [#####     ] /2017-11-21-ochRe
4,4 MiB [####      ] /2019-01-08-ozunconf
4,1 MiB [###       ] /2018-06-08-unconf18_recap_4
3,9 MiB [###       ] /2018-04-20-monkeydo
3,9 MiB [###       ] /2017-11-14-realtime
3,0 MiB [##        ] /2019-03-11-commcall-mar2019
3,0 MiB [##        ] /2018-08-28-birds-ocr
2,7 MiB [##        ] /2019-08-20-forensic-science
2,4 MiB [##        ] /2018-04-13-rprofile-noam-ross
2,4 MiB [##        ] /2018-06-07-unconf18_recap_3
2,2 MiB [##        ] /2017-11-28-ropensci-changes
1,9 MiB [#         ] /2018-12-04-spatsoc
1,9 MiB [#         ] /2018-02-06-drake
1,6 MiB [#         ] /2018-07-24-educollab-challenges
1,6 MiB [#         ] /2018-02-08-unconf18
1,2 MiB [#         ] /2018-11-13-antarctic
1,0 MiB [          ] /2017-12-05-rperseus
1,0 MiB [          ] /2018-01-16-tidyhydat

Factor out matomo code into js file

Instead of inlining, the matomo code should be in a separate js file. Then we can include that same js file in pkgdown, so we don't have to maintain that code in every pkgdown site.

Add tooltip when hovering over footnote numbers

Many rOpenSci blog posts include a lot of footnotes. Currently, to read the footnote text, you have to click on the number, which brings you to the bottom of the page. To go back, you have to click "previous page" on your browser or scroll up but in both cases, you lose where you were in text and it disrupts the reading flow. It would be more convenient if the footnote text appeared in a tooltip when the reader hovers over the footnote number.

I have no idea how idea difficult this would be so feel free to close if that's too much of a hassle.

forum header blocks everything

image

The pop-up should appear over the top of the header bar. The effect is reproducible in multiple browsers on my (linux) OS.

Add print CSS stylesheet

Currently, if one tries to print blog posts from ropensci.org, it looks really bad. I'm interested in this functionality because I would like to add articles I contributed to as appendices of my PhD manuscript (with a compatible license and appropriate credits of course).

This could be fixed by adding a CSS stylesheet for printing:

<link rel="stylesheet" href="stylesheet_print.css" media="print">

I'm not very good with design decisions but I guess it should decrease margins, possibly remove the #footer excepted for the logo and license.

I'm not sure I'll have much time for this in the coming weeks but if no one wants to tackle this, I can try and design a very basic version of this stylesheet.

Formatting code output to be more obvious

This may be a personal preference.

I find the current formatting of code output (output, messages, etc.) to be formatted a bit too much like the main body text.

When there is a lot of output it's not so bad (example). However when there's only a small amount of output, like a message or similar, the output almost looks like lost text (example).

I find the output especially hidden when there is little code and little output (preview example)

In older posts, the output is included in the same code block as the source and is formatting to be more obvious. In this (example)[https://ropensci.org/technotes/2019/02/27/handlr-release/#the-r6-approach] you might imagine that with the one-line text between the code blocks that if the output were formatted as it is in newer posts, they might start to blend together.

Would it be possible to add a background colour or change the text colour or something similar to the output to emphasize what it is?

Make author's index pages fancier

A suggestion of @jeroen's, and something that'd be easy enough to implement now that we have the infrastructure.

Currently these pages have the name of the author, a very short bio for staff members, an online home if the link field of the author metadata is filled, a Twitter account if twitter is known.

  • Adding a field with a pic to the YAML of at least all people listed in the about/ page would be easy. Then the pic could be right above the list of posts.

  • The bio can get as long as we want. Filling one's bio could be a task for staff members. In the future we could encourage external authors to write their bio. It can only raise their profile to introduce themselves.

  • I could clean old metadata and create/fill a github, twitter and link from the link field: if link is a GitHub URL, then it's github, same for twitter and link would then assumed to be a website if it's neither GitHub nor Twitter.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.