Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/feddelegrand7/cronologia
🌱 🌱 🌱 Create an HTML Vertical Timeline Widget in RMarkdown and Shiny
https://github.com/feddelegrand7/cronologia
css html htmltools r rmarkdown shiny
Last synced: 1 day ago
JSON representation
🌱 🌱 🌱 Create an HTML Vertical Timeline Widget in RMarkdown and Shiny
- Host: GitHub
- URL: https://github.com/feddelegrand7/cronologia
- Owner: feddelegrand7
- License: agpl-3.0
- Created: 2021-01-28T14:53:34.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-04-23T00:20:41.000Z (over 3 years ago)
- Last Synced: 2024-10-13T11:14:41.842Z (25 days ago)
- Topics: css, html, htmltools, r, rmarkdown, shiny
- Language: R
- Homepage:
- Size: 2.41 MB
- Stars: 54
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.Rmd
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- jimsghstars - feddelegrand7/cronologia - 🌱 🌱 🌱 Create an HTML Vertical Timeline Widget in RMarkdown and Shiny (R)
README
---
output: github_document
---```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```# cronologia
[![R-CMD-check](https://github.com/feddelegrand7/cronologia/workflows/R-CMD-check/badge.svg)](https://github.com/feddelegrand7/cronologia/actions)
[![Codecov test coverage](https://codecov.io/gh/feddelegrand7/cronologia/branch/master/graph/badge.svg)](https://codecov.io/gh/feddelegrand7/cronologia?branch=master)
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
[![CRAN status](https://www.r-pkg.org/badges/version/cronologia)](https://CRAN.R-project.org/package=cronologia)
[![metacran
downloads](https://cranlogs.r-pkg.org/badges/cronologia)](https://cran.r-project.org/package=cronologia)
[![metacran
downloads](https://cranlogs.r-pkg.org/badges/grand-total/cronologia)](https://cran.r-project.org/package=cronologia)
[![R
badge](https://img.shields.io/badge/Build%20with-♥%20and%20R-violet)](https://github.com/feddelegrand7/cronologia)The goal of `cronologia` is to create an interactive timeline widget in RMarkdown documents and Shiny applications.
## Installation
You can install the stable version from CRAN with
```{r, eval=FALSE}
install.packages("cronologia")
```
# Introduction
The `cronologia` package has three functions:
- `create_tml()` : used to create simple text-based timelines.
- `create_tml_img()`: used to create timelines that include images.
- `create_tml_2()`: works the same way as `create_tml()` except that it adds and additional description component.# Examples
## `create_tml()`
In order to showcase the package's features, let's create a simple data frame:
```{r}
batman_data <- data.frame(
date_release = c("May 31, 2005",
"July 14, 2008",
"July 16, 2012 "),title = c("Batman Begins",
"The Dark Knight",
"The Dark Knight Rises")
)batman_data
```Now, using `create_tml()`, we can create easily a timeline as follows:
```{r, eval=FALSE}
library(cronologia)create_tml(df = batman_data, # the data frame
smr = "title", # the column that will be used in the summary
dsc = "date_release" # the column that will be used in the description
)```
![](man/figures/example1.gif)
You can easily customize the appearance of the time line using the parameters provided:
```{r, eval=FALSE}
create_tml(df = batman_data,
smr = "title", # summary
dsc = "date_release", # description
smr_col = "blue", # summary text color
smr_bgcol = "orange", # summary background color
dsc_col = "white", # description text color
dsc_bgcol = "black", # description background color
dsc_size = "30px" # description size
)```
![](man/figures/example2.gif)
### `r paste0(emo::ji("exclamation"), emo::ji("exclamation"), emo::ji("exclamation")) `
If you want to make all the summary components open by default, you can set the `open` parameter to `TRUE`. The parameter is available in all the functions.
## `create_tml_img()`
If you want to include images within your timeline, you can use the `create_tml_img()` function. To illustrate this function, we'll use the [radous](https://github.com/feddelegrand7/radous) package that fetch the [randomuser.me](https://randomuser.me/) API and returns a data frame that contains many information (including images' URLs).
> Disclaimer: All the generated images are extracted from the authorized section of UI Faces.
```{r, message=FALSE, warning=FALSE}
library(radous)df <- get_data(n = 4, seed = "123")
df[c('name_last',
'location_street_name',
'picture_large',
'name_last')]```
Now we will proceed as previously except that we need to provide two additional arguments:
- `imgsrc`: the column that indicates the source of the images.
- `imgalt`: the column indicating the `alt` attribute of the images. For accessibility reasons I decided to make this argument mandatory. Use a column that contains `""` if the images do not need the `alt` attribute.```{r, eval=FALSE}
df <- radous::get_data(4, seed = "123")create_tml_img(df,
smr = "name_last",
dsc = "location_street_name",
imgsrc = "picture_large",
imgalt = "name_last",
imgwidth = "150px",
imgheight = "150px",
dsc_size = "20px")```
![](man/figures/example3.gif)
## `create_tml_2()`
Following the idea of [Tobias](https://twitter.com/toeb18/status/1355104693299634181?s=20) for creating an interactive CV I thought that two (2) description components would be more appropriate. The function is similar to `create_tml()` except that it adds another description paragraph to the Timeline.
Let's go through an example:
```{r}
cv <- data.frame(
jobs = c("Game tester at Nintendo", "Food tester at Ferrero", "Movies tester at Netflix"),
period = c("2020-2022", "2022-2024", "2026-2030"),
todos = c("Playing Zelda all day", "Eating Bueno all day", "Watching the Office all day")
)cv
``````{r, eval=FALSE}
create_tml_2(cv,
smr = "jobs",
dsc = "period",
dsc2 = "todos",
dsc2_col = "white",
dsc2_bgcol = "peru") # yes, peru is also a color```
![](man/figures/example4.gif)
# TODOS
- [x] Writing unit tests
- [ ] Creating a hex sticker
- [x] Sharing with RWeekly
- [ ] Talk about it at a virtual event# Code of Conduct
Please note that the `cronologia` project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/0/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.