{
  "_id": "69aa4e8818c44a582365b5c6",
  "Package": "learnitgrid",
  "Type": "Package",
  "Version": "1.0.1",
  "Title": "Manage Rubrics or Assessment Grids for GitHub Repositories",
  "Description": "Create and manage semi-automatically rubrics to assess\nGitHub projects (R scripts, R Markdown or Quarto files). Create\ndirected projects where students have to complete documents and\nsubmit them to GitHub (classroom) so that they are evaluated\nusing the rubric (or assessment grid).",
  "Authors@R": "c(\nperson(\"Philippe\", \"Grosjean\", role = c(\"aut\", \"cre\"),\nemail = \"phgrosjean@sciviews.org\",\ncomment = c(ORCID = \"0000-0002-2694-9471\")),\nperson(\"Guyliann\", \"Engels\", role = \"aut\",\nemail = \"guyliann.engels@umons.ac.be\",\ncomment = c(ORCID = \"0000-0001-9514-1014\")))",
  "Maintainer": "Philippe Grosjean <phgrosjean@sciviews.org>",
  "Remotes": [
    "SciViews/data.io",
    "SciViews/data.trame",
    "SciViews/svBase",
    "SciViews/svMisc",
    "rstudio/ggcheck"
  ],
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/learnitr/learnitgrid,\nhttps://learnitr.github.io/learnitgrid/,\nhttps://learnitr.r-universe.dev/learnitgrid",
  "BugReports": "https://github.com/learnitr/learnitgrid/issues",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.2",
  "VignetteBuilder": "knitr",
  "Encoding": "UTF-8",
  "Language": "en-US",
  "ByteCompile": "yes",
  "Config/testthat/edition": "3",
  "Config/pak/sysreqs": "git make libicu-dev libsodium-dev libzstd-dev\nlibssl-dev libx11-dev zlib1g-dev",
  "Repository": "https://learnitr.r-universe.dev",
  "Date/Publication": "2025-11-19 10:25:31 UTC",
  "RemoteUrl": "https://github.com/learnitr/learnitgrid",
  "RemoteRef": "HEAD",
  "RemoteSha": "31c587f6cec18d79b9e89cdbe9911bc6f9eb9d8b",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-03-04 07:13:48 UTC",
    "User": "root"
  },
  "Author": "Philippe Grosjean [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-2694-9471>),\nGuyliann Engels [aut] (ORCID: <https://orcid.org/0000-0001-9514-1014>)",
  "MD5sum": "19ab1c2224a3626421089ed54f9e1025",
  "_user": "learnitr",
  "_type": "src",
  "_file": "learnitgrid_1.0.1.tar.gz",
  "_fileid": "a08339080cc7b38ccc2e8e52f900ac559adeee93ed129b545a931b25335e7c5b",
  "_filesize": 5764335,
  "_sha256": "a08339080cc7b38ccc2e8e52f900ac559adeee93ed129b545a931b25335e7c5b",
  "_created": "2026-03-04T07:13:48.000Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 65976124529,
      "time": 216,
      "config": "linux-devel-x86_64",
      "r": "4.6.0",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 65976124521,
      "time": 199,
      "config": "linux-release-x86_64",
      "r": "4.5.2",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 65976124505,
      "time": 177,
      "config": "macos-devel-arm64",
      "r": "4.6.0",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 65976124492,
      "time": 213,
      "config": "macos-release-arm64",
      "r": "4.5.2",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 65976124471,
      "time": 292,
      "config": "source",
      "r": "4.5.2",
      "check": "OK",
      "artifact": "5755003797"
    },
    {
      "job": 65976124648,
      "time": 241,
      "config": "wasm-release",
      "r": "4.5.1",
      "check": "OK",
      "artifact": "5755042073"
    },
    {
      "job": 65976124493,
      "time": 225,
      "config": "windows-devel",
      "r": "4.6.0",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 65976124534,
      "time": 213,
      "config": "windows-oldrel",
      "r": "4.4.3",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 65976124517,
      "time": 203,
      "config": "windows-release",
      "r": "4.5.2",
      "check": "FAIL",
      "artifact": ""
    }
  ],
  "_buildurl": "https://github.com/r-universe/learnitr/actions/runs/22658933982",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/learnitr/learnitgrid",
  "_commit": {
    "id": "31c587f6cec18d79b9e89cdbe9911bc6f9eb9d8b",
    "author": "Philippe Grosjean <phgrosjean@sciviews.org>",
    "committer": "Philippe Grosjean <phgrosjean@sciviews.org>",
    "message": "Do not try to decrypt solutions from files starting with `._` (macOS resource files)\n",
    "time": 1763547931
  },
  "_maintainer": {
    "name": "Philippe Grosjean",
    "email": "phgrosjean@sciviews.org",
    "login": "phgrosjean",
    "twitter": "@PhilGrosjean",
    "uuid": 3286897,
    "orcid": "0000-0002-2694-9471"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.2.0",
      "role": "Depends"
    },
    {
      "package": "askpass",
      "version": ">= 1.2.1",
      "role": "Imports"
    },
    {
      "package": "cli",
      "version": ">= 3.6.4",
      "role": "Imports"
    },
    {
      "package": "cyphr",
      "version": ">= 1.1.7",
      "role": "Imports"
    },
    {
      "package": "collapse",
      "version": ">= 2.1.0",
      "role": "Imports"
    },
    {
      "package": "cowplot",
      "version": ">= 1.1.3",
      "role": "Imports"
    },
    {
      "package": "data.io",
      "version": ">= 1.7.0",
      "role": "Imports"
    },
    {
      "package": "diffr",
      "version": ">= 0.3.0",
      "role": "Imports"
    },
    {
      "package": "digest",
      "version": ">= 0.6.37",
      "role": "Imports"
    },
    {
      "package": "DT",
      "version": ">= 0.33",
      "role": "Imports"
    },
    {
      "package": "flashClust",
      "version": ">= 1.1.2",
      "role": "Imports"
    },
    {
      "package": "fs",
      "version": ">= 1.6.5",
      "role": "Imports"
    },
    {
      "package": "ggcheck",
      "version": ">= 0.0.5",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "version": ">= 3.5.1",
      "role": "Imports"
    },
    {
      "package": "gh",
      "version": ">= 1.4.1",
      "role": "Imports"
    },
    {
      "package": "glue",
      "version": ">= 1.8.0",
      "role": "Imports"
    },
    {
      "package": "highr",
      "version": ">= 0.11",
      "role": "Imports"
    },
    {
      "package": "htmlwidgets",
      "version": ">= 1.6.4",
      "role": "Imports"
    },
    {
      "package": "lubridate",
      "version": ">= 1.9.4",
      "role": "Imports"
    },
    {
      "package": "openssl",
      "version": ">= 2.3.2",
      "role": "Imports"
    },
    {
      "package": "parsermd",
      "version": ">= 0.1.3",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "version": ">= 1.0.4",
      "role": "Imports"
    },
    {
      "package": "qs",
      "version": ">= 0.27.3",
      "role": "Imports"
    },
    {
      "package": "rprojroot",
      "version": ">= 2.0.4",
      "role": "Imports"
    },
    {
      "package": "rstudioapi",
      "version": ">= 0.17.1",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "version": ">= 1.7.1",
      "role": "Imports"
    },
    {
      "package": "shinycssloaders",
      "version": ">= 1.1.0",
      "role": "Imports"
    },
    {
      "package": "shinydashboard",
      "version": ">= 0.7.2",
      "role": "Imports"
    },
    {
      "package": "stats",
      "version": ">= 4.2.0",
      "role": "Imports"
    },
    {
      "package": "stringdist",
      "version": ">= 0.9.15",
      "role": "Imports"
    },
    {
      "package": "svMisc",
      "version": ">= 1.6.0",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Imports"
    },
    {
      "package": "utils",
      "version": ">= 4.2.0",
      "role": "Imports"
    },
    {
      "package": "writexl",
      "version": ">= 1.5.3",
      "role": "Imports"
    },
    {
      "package": "data.trame",
      "version": ">= 0.9.0",
      "role": "Suggests"
    },
    {
      "package": "svBase",
      "version": ">= 1.7.0",
      "role": "Suggests"
    },
    {
      "package": "covr",
      "version": ">= 3.5.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "version": ">= 1.42",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "version": ">= 2.21",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "version": ">= 2.2.1",
      "role": "Suggests"
    }
  ],
  "_owner": "learnitr",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-35",
      "n": 5
    },
    {
      "week": "2025-47",
      "n": 1
    }
  ],
  "_tags": [],
  "_topics": [
    "learning",
    "project",
    "rubric",
    "quarto"
  ],
  "_stars": 1,
  "_contributors": [
    {
      "user": "phgrosjean",
      "count": 18,
      "uuid": 3286897
    }
  ],
  "_userbio": {
    "uuid": 170942000,
    "type": "organization",
    "name": "learnitr",
    "description": "Education Platform for Teaching R, Statistics and Data Science"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/learnitgrid"
  },
  "_devurl": "https://github.com/learnitr/learnitgrid",
  "_pkgdown": "https://learnitr.github.io/learnitgrid/",
  "_searchresults": 14,
  "_quarto": true,
  "_rbuild": "4.5.2",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/learnitgrid.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_exports": [
    "CC",
    "chart_structure",
    "check_grids",
    "chunk_labels",
    "copy_cache",
    "correct_rmd",
    "create_context",
    "decrypt_solutions",
    "df_structure",
    "digest",
    "dir_path_check",
    "dir_path_create",
    "encrypt_solutions",
    "file_path_check",
    "get_git_stats",
    "get_word",
    "has_labels_all",
    "has_labels_any",
    "has_units_all",
    "has_units_any",
    "hook_last_chunk",
    "hook_record",
    "install_grid_example",
    "is_data",
    "is_data_df",
    "is_display_equation",
    "is_display_param_equation",
    "is_equal_to_ref",
    "is_identical_to_ref",
    "is_inline_equation",
    "is_inline_param_equation",
    "is_rendered",
    "is_rendered_current",
    "link_to_www",
    "make_clean",
    "make_original",
    "make_prepare",
    "make_ref",
    "make_solution",
    "make_test",
    "obfuscate",
    "object_attr",
    "object_part",
    "object_str",
    "populate_table",
    "prepare_files",
    "project_reporter",
    "read_ref",
    "read_res",
    "record_res",
    "RN",
    "RNA",
    "RNCS",
    "RNDFS",
    "RNMD5",
    "RNP",
    "RNSTR",
    "RO",
    "ROA",
    "ROCS",
    "RODFS",
    "ROMD5",
    "ROP",
    "ROSTR",
    "run_grid",
    "save_as_original",
    "save_as_solution",
    "select_answer",
    "set_key",
    "switch_to_last_saved",
    "switch_to_original",
    "switch_to_solution",
    "test_dir",
    "write_res",
    "www_relative"
  ],
  "_help": [
    {
      "page": "check_grids",
      "title": "Summarize and check evaluation grids for the learnitgrid Shiny app",
      "topics": [
        "check_grids"
      ]
    },
    {
      "page": "chunk_labels",
      "title": "Make proper Rmd/Qmd chunk labels from strings for parsermd::parse_rmd()",
      "topics": [
        "chunk_labels"
      ]
    },
    {
      "page": "copy_cache",
      "title": "Copy data cache from a reference folder into an RStudio project",
      "topics": [
        "CC",
        "copy_cache"
      ]
    },
    {
      "page": "correct_rmd",
      "title": "Make sure that Rmd/Qmd chunk labels are written without spaces",
      "topics": [
        "correct_rmd"
      ]
    },
    {
      "page": "create_context",
      "title": "Create a context object for a correction set",
      "topics": [
        "create_context"
      ]
    },
    {
      "page": "df_structure",
      "title": "Transformation functions for creating reference or result objects for testing progress of the students in their project.",
      "topics": [
        "chart_structure",
        "df_structure",
        "digest",
        "object_attr",
        "object_part",
        "object_str"
      ]
    },
    {
      "page": "dir_path_create",
      "title": "Make sure a directory exists, or create it",
      "topics": [
        "dir_path_check",
        "dir_path_create",
        "file_path_check"
      ]
    },
    {
      "page": "encrypt_solutions",
      "title": "Encrypt solution files into '..._solution.xxx.aes' files",
      "topics": [
        "decrypt_solutions",
        "encrypt_solutions",
        "set_key"
      ]
    },
    {
      "page": "get_git_stats",
      "title": "Summarize the git stats for one or more git repositories",
      "topics": [
        "get_git_stats"
      ]
    },
    {
      "page": "hook_last_chunk",
      "title": "Functions for Quarto and R Markdown documents Knitr hooks to save the result of evaluations in chunks as '.Last.chunk' (if printed because things returned invisibly are not recorded). Configure Knitr to generate a '.Last.chunk' object. Also set a \"record\" hook to record objects in the learnitgrid format for further inspection of the results.",
      "topics": [
        "hook_last_chunk",
        "hook_record"
      ]
    },
    {
      "page": "install_grid_example",
      "title": "Install an extended example dataset to try the learnitgrid Shiny application",
      "topics": [
        "install_grid_example"
      ]
    },
    {
      "page": "is_identical_to_ref",
      "title": "Functions to be used in testthat test of the project",
      "topics": [
        "has_labels_all",
        "has_labels_any",
        "has_units_all",
        "has_units_any",
        "is_data",
        "is_data_df",
        "is_display_equation",
        "is_display_param_equation",
        "is_equal_to_ref",
        "is_identical_to_ref",
        "is_inline_equation",
        "is_inline_param_equation",
        "is_rendered",
        "is_rendered_current"
      ]
    },
    {
      "page": "link_to_www",
      "title": "Create symbolic links under www subdirectory or strip www subdirectory from the path",
      "topics": [
        "link_to_www",
        "www_relative"
      ]
    },
    {
      "page": "make_ref",
      "title": "Create or read reference files for tests",
      "topics": [
        "make_ref",
        "read_ref"
      ]
    },
    {
      "page": "make_test",
      "title": "Run action of a MAKEFILE from R",
      "topics": [
        "make_clean",
        "make_original",
        "make_prepare",
        "make_solution",
        "make_test"
      ]
    },
    {
      "page": "populate_table",
      "title": "Computes the content of a DT::datatable for a correction set",
      "topics": [
        "populate_table"
      ]
    },
    {
      "page": "prepare_files",
      "title": "Prepare files for original or solution version",
      "topics": [
        "prepare_files"
      ]
    },
    {
      "page": "project_reporter",
      "title": "Create a testthat reporter suitable to test projects",
      "topics": [
        "project_reporter"
      ]
    },
    {
      "page": "record_res",
      "title": "Record, read and write results that capture given characteristics of an object",
      "topics": [
        "read_res",
        "record_res",
        "RN",
        "RNA",
        "RNCS",
        "RNDFS",
        "RNMD5",
        "RNP",
        "RNSTR",
        "RO",
        "ROA",
        "ROCS",
        "RODFS",
        "ROMD5",
        "ROP",
        "ROSTR",
        "write_res"
      ]
    },
    {
      "page": "run_grid",
      "title": "Run the learnitgrid Shiny application",
      "topics": [
        "run_grid"
      ]
    },
    {
      "page": "select_answer",
      "title": "A simple multiple choice system in a R chunk, compatible with git and R Markdown or Quarto documents",
      "topics": [
        "get_word",
        "obfuscate",
        "select_answer"
      ]
    },
    {
      "page": "switch_to_original",
      "title": "Switch to a given version of the document or save such a version",
      "topics": [
        "save_as_original",
        "save_as_solution",
        "switch_to_last_saved",
        "switch_to_original",
        "switch_to_solution"
      ]
    },
    {
      "page": "test_dir",
      "title": "Test a project directory, possibly limit the number of uses",
      "topics": [
        "test_dir"
      ]
    }
  ],
  "_pkglogo": "https://github.com/learnitr/learnitgrid/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/learnitr/learnitgrid/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "backports",
    "base64enc",
    "BH",
    "bit",
    "bit64",
    "brio",
    "bslib",
    "cachem",
    "callr",
    "checkmate",
    "cli",
    "clipr",
    "collapse",
    "commonmark",
    "cowplot",
    "cpp11",
    "crayon",
    "crosstalk",
    "curl",
    "cyphr",
    "data.io",
    "desc",
    "diffobj",
    "diffr",
    "digest",
    "dplyr",
    "DT",
    "evaluate",
    "farver",
    "fastmap",
    "flashClust",
    "fontawesome",
    "fs",
    "generics",
    "getPass",
    "ggcheck",
    "ggplot2",
    "gh",
    "gitcreds",
    "glue",
    "gtable",
    "highr",
    "hms",
    "htmltools",
    "htmlwidgets",
    "httpuv",
    "httr2",
    "ini",
    "isoband",
    "jquerylib",
    "jsonlite",
    "knitr",
    "labeling",
    "later",
    "lazyeval",
    "lifecycle",
    "lubridate",
    "magrittr",
    "memoise",
    "mime",
    "openssl",
    "otel",
    "parsermd",
    "pillar",
    "pkgbuild",
    "pkgconfig",
    "pkgload",
    "praise",
    "prettyunits",
    "processx",
    "progress",
    "promises",
    "ps",
    "purrr",
    "qs",
    "quarto",
    "R6",
    "RApiSerialize",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "RcppParallel",
    "readr",
    "rlang",
    "rmarkdown",
    "rprojroot",
    "rstudioapi",
    "S7",
    "sass",
    "scales",
    "shiny",
    "shinycssloaders",
    "shinydashboard",
    "sodium",
    "sourcetools",
    "stringdist",
    "stringfish",
    "stringi",
    "stringr",
    "svMisc",
    "sys",
    "testthat",
    "tibble",
    "tidyr",
    "tidyselect",
    "timechange",
    "tinytex",
    "tzdb",
    "utf8",
    "vctrs",
    "viridisLite",
    "vroom",
    "waldo",
    "withr",
    "writexl",
    "xfun",
    "xtable",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "learnitgrid.Rmd",
      "filename": "learnitgrid.html",
      "title": "learnitgrid - Rubrics or Assessment Grids for R Documents in GitHub Repos",
      "author": "Philippe Grosjean (phgrosjean@sciviews.org)",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2024-05-27 12:46:13",
      "modified": "2025-08-30 09:08:20",
      "commits": 4
    }
  ],
  "_score": 3.146128035678238,
  "_indexed": true,
  "_nocasepkg": "learnitgrid",
  "_universes": [
    "learnitr",
    "phgrosjean"
  ],
  "_failure": {
    "version": "1.0.1",
    "commit": {
      "id": "31c587f6cec18d79b9e89cdbe9911bc6f9eb9d8b",
      "author": "Philippe Grosjean <phgrosjean@sciviews.org>",
      "committer": "Philippe Grosjean <phgrosjean@sciviews.org>",
      "message": "Do not try to decrypt solutions from files starting with `._` (macOS resource files)\n",
      "time": 1763547931
    },
    "buildurl": "https://github.com/r-universe/learnitr/actions/runs/26847568322",
    "date": "2026-06-05T06:03:48.678Z",
    "job": {
      "job": 79672705840,
      "time": 263,
      "config": "source",
      "r": "4.6.0",
      "check": "ERROR",
      "artifact": "7429897619"
    }
  },
  "_binaries": [
    {
      "r": "4.5.1",
      "os": "wasm",
      "version": "1.0.1",
      "date": "2026-03-04T07:18:05.000Z",
      "commit": "31c587f6cec18d79b9e89cdbe9911bc6f9eb9d8b",
      "fileid": "10bf2c203be5f0d01c0584f0bc5daf710cb52ab35060b4962a2f4e58d1335f14",
      "status": "success",
      "buildurl": "https://github.com/r-universe/learnitr/actions/runs/22658933982"
    }
  ]
}