nimiSlides icon indicating copy to clipboard operation
nimiSlides copied to clipboard

add backgroundSize field to slideOptions to control layout of image and video background

Open pietroppeter opened this issue 1 year ago • 0 comments

reveal.js supports a data-background-size field that allows to control how an image or video background is shown. The default is "cover", which means the slide will be completed covered by the image. Another interesting option is contain, which resizes the image to fit in the slide. See https://revealjs.com/backgrounds/

As usual a bit in a hurry so I will not submit a PR now, but the change is rather straightforward:

  • add a backgroundSize*: string field in SlideOptions object
  • adapt the slideOptions initialization proc
  • adapt the slideOptionsToAttributes proc. Here is the only tricky part. An if should be added nested both inside the elif options.imageBackground.len > 0 and inside elif options.videoBackground.len > 0 (see code snippet below)

There are also other options that are currently not reachable from nimislides that could be added as well.

For the curious: motivated by this presentation about Advent Of Code (in Italian) that I will be presenting tomorrow at Python Catania meetup. https://github.com/pietroppeter/diventa-avventore-del-codice

code snippet:

  elif options.imageBackground.len > 0:
    result.add """data-background-image="$1" """ % [options.imageBackground]
    if options.backgroundSize.len > 0:
      result.add """data-background-size="$1" """ % [options.backgroundSize]
  elif options.videoBackground.len > 0:
    result.add """data-background-video="$1" """ % [options.videoBackground]
    if options.backgroundSize.len > 0:
      result.add """data-background-size="$1" """ % [options.backgroundSize]

pietroppeter avatar Jun 16 '24 10:06 pietroppeter