Git Product home page Git Product logo

tidyverse.org's Introduction

Netlify Status

tidyverse.org

This repo is the source of https://tidyverse.org, and this readme tells you how it all works.

  • If you spot any small problems with the website, please feel empowered to fix them directly with a PR.

  • If you see any larger problems, an issue is probably better: that way we can discuss the problem before you commit any time to it.

This repo (and resulting website) is licensed as CC BY-SA.

Workflow

This site now uses hugodown rather than blogdown. Install it with:

pak::pkg_install("r-lib/hugodown")
  • To add a new post call hugodown::use_tidy_post("short-name"). This creates content/blog/short-name/containing an index.Rmd file that tells you what to do next. Patterns we use a lot for "short-name":

    • Package release: lifecycle-1-0-0, parsnip-0-1-2
    • Package (release?) and a specific topic: dplyr-1-0-0-rowwise, parsnip-adjacent, dplyr-1-0-4-if-any
    • Topic: self-cleaning-test-fixtures, taking-control-of-plot-scaling
  • To add a new event call hugodown::post_create("events/year-event-name").

  • Knit index.Rmd to generate index.md.

  • To preview the site (i.e. turn .md into .html), call hugodown::hugo_start() (you only need to do this once per session as it will continue to run in the background).

  • Every blog post has to be accompanied by a photo (precise details are provided in the .Rmd template). If you don't already have a image in mind, try https://unsplash.com, https://pexels.com, or Jenny Bryan's free photo link collection.

The tidyverse site is automatically published with netlify, so every PR will automatically get a live preview. Once the PR is merged, that preview becomes the live site.

Changes from blogdown

The main difference is that hugodown cleanly separates the process of building the site into two steps: hugodown generates .md from .Rmd, then hugo generates .html from .md. This leads to the following changes:

  • We once again use .Rmd, which generates .md, not .html.

  • .Rmds are only rendered when you explicitly knit them. If you're concerned that an .md is out of date, call hugodown::site_outdated() to list all .Rmds that need to be re-rendered.

  • .Rmd files use output: hugodown::hugo_document to which automatically sets the correct chunk knitr options.

  • If you want to change an old blog post to use hugodown, you need to rename it from .Rmarkdown to .Rmd, delete the .markdown file, and set output: hugodown::hugo_document in the yaml metadata.

tidyverse.org's People

Contributors

alexpghayes avatar apreshill avatar batpigandme avatar behrman avatar davisvaughan avatar edgararuiz avatar emilhvitfeldt avatar gaborcsardi avatar georgestagg avatar hadley avatar hfrick avatar jennybc avatar jimhester avatar juliasilge avatar karawoo avatar krlmlr avatar lionel- avatar lorenzwalthert avatar lucymcgowan avatar maelle avatar markdly avatar matanhakim avatar michaelchirico avatar mikemahoney218 avatar mine-cetinkaya-rundel avatar romainfrancois avatar simonpcouch avatar teunbrand avatar thomasp85 avatar topepo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tidyverse.org's Issues

Add lifecycle badge definitions

See r-lib/usethis#193 (comment)

 #' * Experimental: very early days, a lot of churn in search of a good API. 
 #'   Not on CRAN. Might not go anywhere. Use with care. 
 #' * Maturing: API roughed out, but finer details likely to change. Will strive 
 #'   to maintain backward compatibility, but need wider usage in order to get 
 #'   more feedback. 
 #' * Dormant: not currently working on it, but plan to come back to in the 
 #'   future. 
 #' * Stable: we're happy with the API, and the unlikely to be major changes. 
 #'   Backward incompatible changes will only be made if absolutely critical, and 
 #'   will be accompanied by a change in the major version. 
 #' * Questioning: no long convinced this is a good approach, but don't yet 
 #'   know what a better approach might be. 
 #' * Retired: known better replacement available elsewhere. Will remain 
 #'   available on CRAN. 
 #' * Archived: development complete. Archived on CRAN and on GitHub. 

Automate events

  • Store metadata in yaml
  • Automatically remove once done
  • Only show next two

Document acknowledgements section

i.e. name and describe key contributors, then include a list of all contributors:

x <- gh::gh("/repos/:owner/:repo/issues", owner = "r-lib", repo = "testthat", since = "2016-04-23", state = "all", .limit = Inf)
users <- sort(unique(purrr::map_chr(x, c("user", "login"))))
length(users)
clipr::write_clip(glue::collapse(glue::glue("[\\@{users}](https://github.com/{users})"), ", ", last = ", and "))

Wording in import section of packages

Currently it says "There are a handful of other packages that are not in the tidyverse, but are tidyverse-adjacent. They are very useful for importing data from other sources:" and lists jsonlite, xml2, httr, rvest, and DBI under this. It's unclear to me what the difference of these from readxl and haven is since all of these packages are installed with tidyverse but are not in the core. It might be more clear to list all in the same hierarchy (as is the case in the tidyverse repo README).

Blog post about thumbs up

And generally about how to let us know that an issue is important to you.

And don't comment on closed issues.

Pattern: iterating over rows in a data frame

Idea for a blog post in the programming category.

Iterating over rows in a data frame ...
This is a common problem where there is little consensus re: best way to proceed.

Capturing a few snippets of Slack discussion to jog our memories:

  • Do you really need to iterate over rows? Are you overlooking a vectorized solution? Applies especially to string manipulation. (@hadley this is related to the question of whether to attack a problem row- or column-wise)
  • What about pmap()?
    • Ways to define .f (explicitly + globally, explicitly + inline + anonymously, the ~ shorthand)
    • Tension in pipelines when multiple functions are operating on the tibble (e.g. pmap() inside mutate()), competing meanings for .
    • Arguments of .f: names vs position, absorbing unused args with ...
    • Use rlang::call_inspect() to see what's going on, e.g. purrr::pmap(mtcars, rlang::call_inspect)
    • pmap() is expensive because it disaggregates the tibble. E.g. you don't want to use it naively with a social survey tibble with hundreds of columns just to work on a few variables.
  • What are you trying to optimize? Performance? Readability? No dependencies? Pipe-ability?

FIgure out *Contents* sidebar

Currently, the Contents sidebar is only populated for posts written directly in markdown, e.g.

  • contents1-min
  • contents2-min

For posts written in .Rmd, headers are not added to contents. It's possible that this looks particularly weird right now because there are also no upcoming events, but I think it would also make the articles more "browseable."

  • contents3-min

n.b. Can get TOC to show up at the top of the post with the code below, but that's not the desired behaviour.

output:
  blogdown::html_page:
    toc: true

Add list of domain-specific tidyverse friendly packages to tidyverse.org/packages

At the end of Packages page of tidyverse.org, how about adding a "Domain Specific tidyverse Friendly Packages" (or something to that effect) section that includes list of domain/vertical-specific packages that play nice within tidyverse ecosystem? Examples:

and eventually domain-specific packages with reverse depends/imports/suggests of tidyverse

Reconsider categories

Now that we have a bunch of blog posts, do we need to rethink the categories?

Most of the posts are about packages. Do we need subcategories? Like new package/major release/minor release?

Short post type

Would be nice to have a "short"/tumble post type where you just want to link to another website with a bit of context.

Use absolute URLs in RSS template

Currently, the RSS feed for the articles looks like this, note that the links are of the format <link>/articles/2018/03/pillar-1-2-1/</link>. These links seem to work fine in my regular RSS reader (Reeder.app, macOS), but if you import the feeds in e.g. Slack, the links look like this:
Unclickable and sad.

I've looked through the page's source and saw that you seem to use Hugo's default template, so I looked at that here, which says the RSS feed should use the .Permalink element. So I tried building the site locally but using baseurl = "https://tidyverse.org/ in config.toml, but it didn't change the RSS links. I also tried changing the relativeurls option, also without luck.

The RSS feed on my blogdown blog does have absolute/full URLs, and I tried using the same config with relativeurls and baseurl, but I can't seem to reproduce the desired behaviour.

Long story short: I would like to see full URLs in the articles RSS feed, but I can't figure out how to PR it myself :(

Add google analytics to tidyverse package sites

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.