👨🏻‍💻 Harry Kalantzis Instructional designer

Create image hotspots in H5P with this workaround

I very much enjoy working with H5P everyday, but the user experience can be painful sometimes and the Image Hotspots content type is a good example of this. While the content authoring side is getting improved (despite positioning hotspots on an image still being a pain), the end user’s side hasn’t been improved much: the size of the hotspots is not configurable; once you click on a hotspot, the content appears through an unnecessary slide-in animation; and when the content behind the hotspots is just text, it looks extremely small. The latter is what frustrates me more, because it makes me to want to format text using h2. It does make text bigger, but also bold because h2 is meant for headers.

I recently came across an example of an H5P course presentation made by the Core team. The Content Management screen includes a screenshot of the H5P.com interface and some hotspots (in blue) which, once clicked, display some content in a much nicer way.

The workaround

Here’s how they did it:

  1. In H5P, start with a Course Presentation.
  2. Insert the image on which the hotspots will be placed.
  3. Insert a text field.
  4. Add some content and check the box Display as button at the bottom.
  5. Once you click Done, your content will appear as a clickable blue hotspot.
  6. If you want the content to be a video, then, instead of the text field, click the video icon in the H5P editor and don’t forget to display it as a button. What’s even cooler is that when behind the hotspot there is a video, then the hotspot will show a video icon instead of the information icon (the same applies when you display quiz activities as buttons).

The example from the Core team has a pulse animation behind each hotspot. This isn’t provided by default in H5P and I suspect it’s just a animated gif that has been placed behind each hotspot.

Limitations

  1. If the image you added in step 2 is large vertically (e.g. a long screenshot of a page), then it will have to be resized to fit in course presentation, which means it will look smaller and any text on the image will be less legible.
  2. The clickable hotspots can only be blue.

Example content

Howdy! This is an example blog post that shows several types of HTML content supported in this theme.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Sed posuere consectetur est at lobortis. Cras mattis consectetur purus sit amet fermentum.

Curabitur blandit tempus porttitor. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam id dolor id nibh ultricies vehicula ut id elit.

Etiam porta sem malesuada magna mollis euismod. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur.

Inline HTML elements

HTML defines a long list of available inline tags, a complete list of which can be found on the Mozilla Developer Network.

  • To bold text, use <strong>.
  • To italicize text, use <em>.
  • To highlight, use <mark>.
  • Abbreviations, like HTML should use <abbr>, with an optional title attribute for the full phrase.
  • Citations, like — Mark Otto, should use <cite>.
  • Deleted text should use <del> and inserted text should use <ins>.
  • Superscript text uses <sup> and subscript text uses <sub>.

Most of these elements are styled by browsers with few modifications on our part.

Footnotes

Footnotes are supported as part of the Markdown syntax. Here’s one in action. Clicking this number1 will lead you to a footnote. The syntax looks like:

Clicking this number[^fn-sample_footnote]

Each footnote needs the ^fn- prefix and a unique ID to be referenced for the footnoted content. The syntax for that list looks something like this:

[^fn-sample_footnote]: Handy! Now click the return link to go back.

You can place the footnoted content wherever you like. Markdown parsers should properly place it at the bottom of the post.

Heading

Vivamus sagittis lacus vel augue rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

Code

Inline code is available with the <code> element. Snippets of multiple lines of code are supported through Rouge. Longer lines will automatically scroll horizontally when needed. You may also use code fencing (triple backticks) for rendering code.

// Example can be run directly in your JavaScript console

// Create a function that takes two arguments and returns the sum of those arguments
var adder = new Function("a", "b", "return a + b");

// Call the function
adder(2, 6);
// > 8

You may also optionally show code snippets with line numbers. Add linenos to the Rouge tags.

1
2
3
4
5
6
7
8
// Example can be run directly in your JavaScript console

// Create a function that takes two arguments and returns the sum of those arguments
var adder = new Function("a", "b", "return a + b");

// Call the function
adder(2, 6);
// > 8

Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa.

Gists via GitHub Pages

Vestibulum id ligula porta felis euismod semper. Nullam quis risus eget urna mollis ornare vel eu leo. Donec sed odio dui.

Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec sed odio dui. Vestibulum id ligula porta felis euismod semper.

Lists

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.

  • Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
  • Donec id elit non mi porta gravida at eget metus.
  • Nulla vitae elit libero, a pharetra augue.

Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue.

  1. Vestibulum id ligula porta felis euismod semper.
  2. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
  3. Maecenas sed diam eget risus varius blandit sit amet non magna.

Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis.

HyperText Markup Language (HTML)
The language used to describe and define the content of a Web page
Cascading Style Sheets (CSS)
Used to describe the appearance of Web content
JavaScript (JS)
The programming language used to build advanced Web sites and applications

Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Nullam quis risus eget urna mollis ornare vel eu leo.

Images

Quisque consequat sapien eget quam rhoncus, sit amet laoreet diam tempus. Aliquam aliquam metus erat, a pulvinar turpis suscipit at.

placeholder placeholder placeholder

Tables

Aenean lacinia bibendum nulla sed consectetur. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Name Upvotes Downvotes
Totals 21 23
Alice 10 11
Bob 4 3
Charlie 7 9

Nullam id dolor id nibh ultricies vehicula ut id elit. Sed posuere consectetur est at lobortis. Nullam quis risus eget urna mollis ornare vel eu leo.


Want to see something else added? Open an issue.

  1. Handy! Now click the return link to go back. 

Options

With Poole as a baseline theme for Jekyll, there aren’t many options available out of the box. Basic light and dark mode support is included. Colors are also provided for your own customization, while other Poole themes build on this to create more unique looks.

Dark mode

Dark mode is enabled automatically via CSS media query—you’ll find the source code for this in the _sass/_variables.scss stylesheet. If you’re familiar with CSS custom properties, you can also use this method to build your own color schemes.

Read more about using CSS dark mode via media queries like this:

// Example media query to detect dark mode
@media (prefers-color-scheme: dark) {
  // ...
}

Creating themes

If you want to make your own color schemes, modify the CSS variables in the _sass/_variables.scss stylesheet with a scoped data attribute or class name.

For example, below we’ve created the beginnings of a blue theme:

// Example blue theme
[data-theme="blue"] {
  --body-bg: var(--blue);
  --body-color: #fff;
}

Then, apply the theme by adding data-theme="blue" to the <html> element.

Colors

Change your site styles by modifying the source code with these CSS custom properties. Poole’s colors come from the Open Color project.

var(--red)
#fa5252
var(--pink)
#e64980
var(--grape)
#be4bdb
var(--purple)
#7950f2
var(--indigo)
#4c6ef5
var(--blue)
#228be6
var(--cyan)
#15aabf
var(--teal)
#12b886
var(--green)
#40c057
var(--yellow)
#fab005
var(--orange)
#fd7e14

Gray colors

There are also ten grayscale colors to choose from.

var(--gray-000)
#f8f9fa
var(--gray-100)
#f1f3f5
var(--gray-200)
#e9ecef
var(--gray-300)
#dee2e6
var(--gray-400)
#ced4da
var(--gray-500)
#adb5bd
var(--gray-600)
#868e96
var(--gray-700)
#495057
var(--gray-800)
#343a40
var(--gray-900)
#212529

Google Analytics

Specify ga_analytics in your _config.yml and restart the server to add Google Analytics tracking code.

# Google Analytics example
ga_analytics: UA-000000-0

A Comprehensive List of Tools for Teachers

In the era of virtual education and online teaching, educators around the globe are in front of a really wide range of tools they can use in their courses. It is critical, yet too hard, to always stay up-to-date and be aware of all those resources.

Inspired by the HN Tools of Trade, 2014 Edition, I decided to create a similar repository on GitHub with a list of tools and resources for every teacher out there.

If you are familiar with Github, go to the repo, star it, fork it and add your own tools of trade. It is available under the CC0 license

A list of great free photo resources

It’s always tempting to find a really great photo that fits your (online) course. I merged some lists with great photo sources that I came across a while ago and I made a new one so that I can come back anytime I need it. You should bookmark it.

For more tools and photo resources, check this more comprehensive list. Feel free to suggest your own great photo resources on Twitter.