ramnathv / slidify

Generate reproducible html5 slides from R markdown
http://www.slidify.org
844 stars 339 forks source link

Slidify and RStudio presentations #278

Closed stla closed 10 years ago

stla commented 10 years ago

The new RStudio has a feature to create slides: http://www.rstudio.com/ide/docs/presentations/overview This looks like slidify, but is it really the same thing or not ?

ramnathv commented 10 years ago

No. It is not the same. RStudio uses R Markdown, with a slightly different way of specifying slides. The nice things about RStudio presentation are:

  1. Integration with RStudio.
  2. Instant Preview on Save.
  3. One-Click Publishing.

Slidify currently provides more flexibility in terms of frameworks, widgets and other functionality, but is not as seamless as RStudio Presentations.

Another difference is that Slidify can do more than just slides (as you can see with Poirot). So it is more of a generic Rmd to HTML5 transformer.

If you get a chance to try out RStudio Presentations and Slidify, I would love to get more feedback on areas of improvement.

stla commented 10 years ago

Thanks. I will soon try RStudio presentations for quick presentations in my current job team (usually I'm satisfied by the classical knitr html output for such presentations). For more serious presentations, I'd need to include scianimator animations or rgl interactive graphics for instance. Is slidify more adapted for such slides ? And also I'd need a flexible control of the frames (as LaTeX Beamer).

ramnathv commented 10 years ago

Slidify has widgets for scianimator and I think rgl should work out of the box. I believe this should be the case with RStudio presentation as well, but you need to check it out.

When you talk about flexible control of frames, what exactly are you referring to?

trinker commented 10 years ago

@stla I'll weigh in here. I find the new RStudio presentations to be quick and well integrated with R studio. If you need a quick presentation this is likely an excellent choice. However, if you need a bit of customization slidify offers a ton of features that make it a powerful tool. It really depends on the task at hand. And as Ramnath meantions, though I haven't delved into it much) slidify is even more than a presentation framework.

stla commented 10 years ago

Thanks to everybody for your attention. @Ramnathv, See here some extracts of some slides I've recently made with LaTeX Beamer: https://www.dropbox.com/s/eloo4kbqen9iieb/Slides_extracts.pdf See for example slide 13 and slide 24. They illustrate what I meant when I said "flexible control of frames": I can divide the slide in several rows and columns, and have a total control of the overlays. I have tried slidify one time, but I have not successfully made such overlays across different columns and figures. Hard to explain in English, I hope you see what I mean.

znmeb commented 10 years ago

I've done the slideshows for CompJournoStick with Slidify (http://znmeb.github.io/CompJournoStick/) but I'm pretty sure for something that simple RStudio Presentations would work just as well. I'm gearing up to do a talk for the local R Meetup group on my work with the Census data (https://github.com/znmeb/pdxcensusdata) and I'm planning to do it with RStudio Presentations if it's relatively seamless to push them to a Github Pages repository. Otherwise I'll use Slidify; that workflow already is nailed down.

ramnathv commented 10 years ago

@znmeb Let me know how your experience is. I am interested in ways by which I can make Slidify more useful and provide for a simple workflow.

ramnathv commented 10 years ago

@znmeb Any feedback for Slidify based on your experience of using RPres and Slidify?

sahirbhatnagar commented 10 years ago

Is there a way to publish Slidify presentations on Github to an existing (non-empty) repo ? The help I have seen makes use of the author and publish command, but the publish command requires an empty repo, from what I gather.

ramnathv commented 10 years ago

You can always use git or the github client to publish presentations to an existing repo. You just need to make sure that you push the slide directory to the gh-pages branch so that the HTML is rendered by github.

arunsoni commented 10 years ago

Ramnathv, I am new to presentations and i have used shiny to create an app and I would like to create interactive presentations. I want to publish my slidify to my local GitHub but publish command fails. Is there a tutorial that outlines basic steps, I have found some tutorials but they omit the basic step by step instructions and novices like me then get lost.

ramnathv commented 10 years ago

Can you indicate the steps you followed to publish your deck, and what exactly failed?

arunsoni commented 10 years ago

Hi Ramnathv,

I am sure that the reason it fails is because of my lack of understanding of GutHub and Gist. I am able to publish to Dropbox and to the GitHub but I am not able to publish to my local GitHub as I want to keep the presentation local as it contains sensitive information. Is this not possible, will this always have to be published to public areas?

Regards

Arun

On 12 May 2014, at 17:16, Ramnath Vaidyanathan notifications@github.com wrote:

Can you indicate the steps you followed to publish your deck, and what exactly failed?

— Reply to this email directly or view it on GitHub.

ramnathv commented 10 years ago

I don't understand what you mean by your local github. Are you trying to publish to a private repository on github, or is it a github like web server inside your organization? The publish function for github in slidify is geared towards publishing the deck to the gh-pages branch. It will only work for public repos. All it does is, create a gh-pages branch, commit the changes and push the repo using git push. It is easy to replicate the same for your local stuff, if you know how to push to it.

arunsoni commented 10 years ago

I think I understand now, what I have the is local Git software that allows me to synch with my GitHub. Slidify will only publish to public areas, GitHub, RPubs or Public Dropbox. I do wonder though why it cannot publish to any other Dropbox folder since it can publish to Dropbox. This way we can control the visibility of the presentation.

On 12 May 2014, at 17:31, Ramnath Vaidyanathan notifications@github.com wrote:

I don't understand what you mean by your local github. Are you trying to publish to a private repository on github, or is it a github like web server inside your organization? The publish function for github in slidify is geared towards publishing the deck to the gh-pages branch. It will only work for public repos. All it does is, create a gh-pages branch, commit the changes and push the repo using git push. It is easy to replicate the same for your local stuff, if you know how to push to it.

— Reply to this email directly or view it on GitHub.

stla commented 10 years ago

Hello @arunsoni . I'm not comfortable with git too. To publish on Github I don't use the publish function of slidify, I'm using the Github software on Windows (and even with this software I'm not 100% comfortable).

patilv commented 10 years ago

@arunsoni when slidify decks are created, all required ingredients are stored in a specific folder. It does not have to be the public Dropbox folder. You can always open the index.html file from any folder on your local computer.

arunsoni commented 10 years ago

That is a good point, once the slidify decks are created, I could simply move them to another folder though like R Presentations by RStudio, it would be nice to have an option for Slidify to publish to a folder of choice. It is a great product though and thank you so much for creating it. I am going to begin learning how to make Markdown documents and then I might first create an R Presentation and then Slidify

On 12 May 2014, at 19:52, patilv notifications@github.com wrote:

@arunsoni when slidify decks are created, all required ingredients are stored in a specific folder. It does not have to be the public Dropbox folder. You can always open the index.html file from any folder on your local computer.

— Reply to this email directly or view it on GitHub.

arunsoni commented 10 years ago

Hi Ramnath,

We had conversed a few months ago and since then I have learned Markdown so I feel more confident in using Slidify. However, I am having huge trouble embedding a logo in a title slide and I was wondering if could trouble you. I cloned your slidifyExamples to my local drive but I am not even able to run slidify on your example because it appears to not like the path, here are the warning messages

Warning messages: 1: In addResourcePath("libraries", file.path(deckDir, "libraries")) : Overriding existing prefix libraries => /Users/arun/Documents/Rsquared/Presentation/RSQRM/libraries 2: In addResourcePath("assets", file.path(deckDir, "assets")) : Overriding existing prefix assets => /Users/arun/Documents/Rsquared/Presentation/RSQRM/assets

If I could get your example to work then I can adapt mine to the same logic. I am not conversant with HTML and I only know R, so I am stuck on basic issues. I am attaching your index.rmd and I would be very grateful if you could explain why it does not like the url path to the image.

Regards

Arun

arunsoni commented 10 years ago

Dear Ramnath,

Please disregard my earlier e-mail as the problem was the libraries had to be copied to the libraries folder within the io2102 example folder. You might wish to correct this on your github because the deck does not run as it stand when it is downloaded

Regards

Arun

Begin forwarded message:

From: Arun Soni arun@sonis.eu Subject: Your io2012 example Date: 17 July 2014 13:05:09 BST To: ramnathv/slidify reply@reply.github.com

Hi Ramnath,

We had conversed a few months ago and since then I have learned Markdown so I feel more confident in using Slidify. However, I am having huge trouble embedding a logo in a title slide and I was wondering if could trouble you. I cloned your slidifyExamples to my local drive but I am not even able to run slidify on your example because it appears to not like the path, here are the warning messages

Warning messages: 1: In addResourcePath("libraries", file.path(deckDir, "libraries")) : Overriding existing prefix libraries => /Users/arun/Documents/Rsquared/Presentation/RSQRM/libraries 2: In addResourcePath("assets", file.path(deckDir, "assets")) : Overriding existing prefix assets => /Users/arun/Documents/Rsquared/Presentation/RSQRM/assets

If I could get your example to work then I can adapt mine to the same logic. I am not conversant with HTML and I only know R, so I am stuck on basic issues. I am attaching your index.rmd and I would be very grateful if you could explain why it does not like the url path to the image.

Regards

Arun

ramnathv commented 10 years ago

It looks like your are using runDeck and not slidify to convert your md to HTML. Moreover, what you are seeing are only warnings and I would expect to see them since runDeck is mapping resource paths differently.

arunsoni commented 10 years ago

I use slidify to convert my rmd to md and then run the deck using runDeck, I understand that I can also just double click on the index.html file, but it has been a very useful learning experience. I am starting to understand it.

May I ask how where is the code that adds the download button on the top right of the title slide?

On 17 Jul 2014, at 14:00, Ramnath Vaidyanathan notifications@github.com wrote:

It looks like your are using runDeck and not slidify to convert your md to HTML. Moreover, what you are seeing are only warnings and I would expect to see them since runDeck is mapping resource paths differently.

— Reply to this email directly or view it on GitHub.

arunsoni commented 10 years ago

Hi Ramnath,

I am sorry to bother you again, but it looks like I am missing something. In the attached Rmd file, I can generate the shinyUI but the server does not render, so I get the selectInput but the output does not print when I slidify or runDeck. Sometimes I get errors in slidify rendering where it just renders the R code but still runs in runDeck.

How can I display the selection in the selectInput and how can I store it to use in say the quiz widget?

Thank you.

Arun

On 17 Jul 2014, at 14:00, Ramnath Vaidyanathan notifications@github.com wrote:

It looks like your are using runDeck and not slidify to convert your md to HTML. Moreover, what you are seeing are only warnings and I would expect to see them since runDeck is mapping resource paths differently.

— Reply to this email directly or view it on GitHub.

nvramamoorthy commented 9 years ago

I am recently learning slidify.

slidify(index.Rmd) creates .md file but not .html file.

I am getting following message

slidify("index.Rmd")

processing file: index.Rmd |.................................................................| 100% ordinary text without R code

output file: index.md

Error in if (body$content == "") { : missing value where TRUE/FALSE needed

Please suggest solution.

stla commented 9 years ago

https://github.com/ramnathv/poirot/issues/32#issuecomment-105265360

stla commented 9 years ago

You can try to run the following code.

library(slidify)

parse_body <- function(body){
  html = ifelse(body != '', md2html(body), '')
  pat = '^(<h([0-9])>([^\n]*)</h[0-9]>)?\n*(.*)$'
  pat = regex(pat, dotall = TRUE, multiline = TRUE)
  body = setNames(as.list(str_match(html, pat)),
   c('html', 'header', 'level', 'title', 'content'))
  # body = modifyList(body, parse_content(body$content))
  # HACK: So that landslide h1's with no content are centered
  if (body$content == "" | is.na(body$content)){
    body$content = NULL
  }
  if (body$header == "" | is.na(body$header)){
    body$header = NULL
  }
  return(body)
}
assignInNamespace("parse_body", parse_body, ns="slidify")

slidify("index.Rmd")
nvramamoorthy commented 9 years ago

Thank you for your immediate reply .

I deleted and the index.html and libraries folder.

the again executed slidify("index.Rmd")

It worked nicely.

Please check the slides here http://nvramamoorthy.github.io/Coursera-Slidify-Project/

I wanted to add images into the pages.

If you have any suggestion please help me.

I will master Slidify reading all documentation available.

Have Nice Day!