coatless-rpkg / assignr

Tools for Educators Writing Assignments in RMarkdown

Home Page:https://r-pkg.thecoatlessprofessor.com/assignr/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

results="asis" not working in solution=TRUE

sarahef2 opened this issue · comments

{r, solution = TRUE, echo=FALSE, results="asis"} is currently rendering as an "asis" code block in the solution markdown without running the R code at all.

Here is Demo-main.Rmd:

This is the assignment.

```{r, solution = TRUE, echo=FALSE, results="asis"}
cat("# This is markdown text.")
```

I've attached the results when you knit this document without assignr. The markdown appears perfectly.
Demo-main.pdf
Here's the results when you use assignr. The code is pasted as is, without running.
Demo-soln.pdf

@sarahef2 hi, I'm a bit confused as to the end goal here. Could you show a desired output?

To place R Markdown code chunks on GitHub, please use:

````
^ Note the extra ` backtick.

```{r}
# your R code here.
```

````

Thanks James!

The end goal is actually to have an extra parameter in the code chunks that would allow us to have selected solutions to release to the students as well as full solutions for the graders. So ideally, I'd have either:

This is the assignment.

```{r, solution = TRUE, echo=FALSE, results="asis", eval=params$graders}
cat("# This is markdown text which only appears in the solution for TAs and graders.")
```

or

This is the assignment.

```{r, solution = TRUE, echo=FALSE, results="asis"}
if(graders) cat("# This is markdown text which only appears in the solution for TAs and graders.")
```

The graders variable would be an R variable set earlier in the document, or params$graders set in the markdown header. However, neither of these work in assignr because it just sets the entire code chunk "asis".

The desired output is the first document, the one where the text appears as markdown.

Ahh, gotcha. Let me think a bit. I need to run to a few meetings. How soon are you needing this?

You can take your time. I'm mostly trying to figure it out for the next TA working on this class- I've found a very clunky workaround for now. Thank you!

Out of curiosity, which class would this be used in?

Also, I really need to start working on this package more... I keep using my own internal versions, in which it is easy to just add a grading = TRUE chunk option.

BTW, previously I had called this option rubric: #1

Also, my interval tools strip the meta chunk options from the user documents... again I really need to engage in this package more.

Stat 428: Statistical Computing. Dr. Ravat wants to release just sketches of the solutions to the students, while the graders have full solutions to use to grade. And a rubric/grading=TRUE option would do exactly what I need it to do, with a lot less fuss...

Ideally, I'd have:

This is the assignment.

```{asis, grading = TRUE}
# This text only appears for the graders.
```

But the github version doesn't support that.

Yeah, we can make that happen no problem. Here are the tags that I think should exist

  • directions: shown in the assignment, but not the solution
  • solutions: shown only in the solution
  • rubric: shown only in the rubric version of the solutions.

All other chunks and text would appear in all documents. Also in this system, three documents would be created:

  • *-assign.Rmd and rendered output
  • *-soln.Rmd and rendered output
  • *-rubric.Rmd and rendered output

Thoughts on any other obvious tags?

That would be perfect! Anything marked solutions would appear in both *-soln.Rmd and *-rubric.Rmd, correct?

That would work for what we need, and I can't think of any other obvious tags.

(It wouldn't fix the issue that I mentioned in the first post, but I wouldn't need to go that route any more. You still wouldn't be able to output text results from an r code chunk that would be treated asis.)

That would be how I would do it, although I suppose eventually we could allow users to specify that behavior.

The last post should have read "can't think of any other obvious tasks"- Sorry! Those tags are the most obvious ones.