Tag Archives: Canvas

Embedding slides in Canvas announcements


Slide projector flickr photo by Yair Aronshtam shared under a Creative Commons (BY-SA) license
For several years, I used Speakerdeck to embed class slides in my WordPress site. That worked great for awhile, but since my institution adopted Canvas, there’s been a strong pressure to use Canvas for every class. Unfortunately, as Lisa Lane will attest, Canvas is passive-aggressive when it comes to embedding. It will do it, but it won’t like it, and you may not either.

I used the switch to Canvas as an excuse to move from providing students slides to giving them guided lecture notes, which were easy enough to upload to Canvas as a pdf. Now, however, I’ve got a deck of slides for a test review that I don’t really want to reduce to an outline.

So, back to the drawing board. Lisa’s post from last December (Merry Christmas, Lisa!) sent me to Laura Gibbs’ widget warehouse, and from there I was able to reverse engineer one of her her Canvas-embeddable widgets. *Whew*.

So here’s what I did:

  • First, upload a pdf of the slide deck to Speakerdeck.
  • Next steal borrow the html from one of Laura’s canvas widgets, and replace the <script> … </script> with the Speakerdeck embed code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Canvas: Beowulf slides</title>
    </head><body>
    <script async class="speakerdeck-embed" data-id="a3384cc4f5504e02ab964340ecfa0f55" data-ratio="1.33333333333333"
    src="//speakerdeck.com/assets/embed.js"></script>
    </body></html>
  • Upload the resulting html file to your hosting account, and then embed that page in Canvas as an iframe:
    <iframe src="https://learningbusiness.net/widgets/beowulf.html" width="1024" height="768"></iframe>
  • And Bob’s your uncle, you’ve got a slide presentation embedded in an announcement, or wherever you’d like to put it.

Update: Looks like there’s an even easier way that doesn’t require having a hosting account: upload the html file to Canvas and then link the iframe directly to the Canvas file.