Blazy

If you copy paste the lines here into CKEditor, be sure to view CKEditor source and remove the surrounding <code>...</code>, in case mistakenly copied over.
Image or iframe is lazyloaded automatically unless disabled, no shortcodes required. Usages for shortcodes: grid, customizing settings, embedding a known entity. Pay attention to attributes, slashes, colons, single and double quotes:

  1. Basic, with inline HTML:
    [blazy]...[item]...[/item]... [/blazy]
    where [blazy] is like field container, [item] like field item.
  2. With self-closing data=ENTITY_TYPE:ID:FIELD_NAME:FIELD_IMAGE, without inline HTML:
    [blazy data="node:44:field_media" /]
    [blazy data="node:44:field_media:field_media_image" /]
    Required: ENTITY_TYPE:ID:FIELD_NAME, where ENTITY_TYPE is node -- only tested with node, ID is node ID, FIELD_NAME can be field Media, Image, Text (long or with summary), must be multi-value, or unlimited.
    Optional: FIELD_IMAGE named field_media_image as found at Media Image/ Video for hires poster image, must be similar and single-value field image for all media entities to have mixed media correctly. This is not field image at Node, it is at Media.
  3. With HTML settings: any HTML settings relevant from BlazyDefault methods as seen at Filter, Field or Views UI forms:
    [blazy settings="{'style': 'column', 'grid': 4}" /]
  4. The [item] can have class and caption attributes, e.g.:
    [item class="grid--card card" caption='Read <a href="https://mysite.com">more</a>'].
    The classes will be moved into grid__content to make it usable such as for Bootstrap well/ card. The caption into regular blazy__caption.
    Use enclosing single quotes for HTML caption so you can have double quotes inside such as enclosing link href quotes, else broken. The link is normally converted automatically when using WYSIWYG. This will replace Filter caption if they both exist.
  5. Grid format, a convenient shortcut for settings, hyphenated: STYLE:SMALL-MEDIUM-LARGE.
    STYLE is one of space-delimited values: column grid flex nativegrid.
    The rest refers to device sizes. Only LARGE with nativegrid, no others, can be numeric, or string. The rest must be numbers due to using no JS and or their contracts. The minimum is 1, not 0.
    [blazy grid="column:2-3-4" /]
    [blazy grid="grid:2-3-4" /]
    [blazy grid="flex:2-3-4" /]
    [blazy grid="nativegrid:2-3-4" /], will be masonry
    [blazy grid="nativegrid:2-3-4x4" /], will repeat
    [blazy grid="nativegrid:2-3-4x4 4x3 2x2 2x4 2x2 2x3 2x3 4x2 4x2" /]
    is a shortcut for:
    [blazy settings="{ 'style': 'nativegrid', 'grid_small': 2, 'grid_medium': 3, 'grid': '4x4 ...' }" /]
    4x4 defines WIDTHxHEIGHT based on grid-row CSS property, see and override blazy/css/blazy.nativegrid.css.
  6. To disable lazyload, add attribute data-unblazy:
  7. [DEPRECATED], cannot co-exist: To build a grid of images/ videos, add attribute data-grid or data-column (only to the first item):

    The numbers represent the amount of grids/ columns for small, medium and large devices respectively, space delimited. Be aware! All media items will be grouped regardless of their placements. That's why deprecated.


Tips, if any issues: