Skip to content

embed v0.5.0

Choose a tag to compare

@hhkaos hhkaos released this 13 Aug 10:14
· 50 commits to main since this release

0.5.0

Added

  • feeds="url1,url2,..." attribute: fetches multiple OTE feeds in parallel
    and renders their events combined into a single sorted/filtered/limited
    list, instead of just one feed. Takes full precedence over feed when
    present and non-empty (same "full replacement" precedent as fields); a
    bare feed="..." is unaffected. A feed that fails to fetch is dropped and
    the rest still render — the error state only appears if every feed fails.
    Each merged event is tagged with _feedUrl/_feedTitle (unless the source
    already set its own), so EventRenderContext.feed and the
    ote-event-open/ote-event-action DOM events still attribute each event
    to the feed it came from.
  • The playground's "feed" control now doubles as "feed / feeds": enter one
    URL for feed, or several comma-separated to combine them via feeds, and
    the copy-paste snippet reflects whichever attribute applies.
  • New <ote-subscribe> custom element (dist/ote-subscribe.js, its own
    esbuild entry point — consumers who don't use it pay nothing for it): a
    "subscribe to this feed" trigger + popover, for any site publishing an OTE
    feed, not just one running <ote-events>. Ported from a real-world fix in
    a <ote-events> consumer's hand-rolled version of these same links, where
    the Google Calendar and Feedly URLs were both silently broken and the
    Outlook web deep-link turned out to be unreliable after login (a
    Microsoft-side issue, not fixable from the caller's side — dropped in
    favor of a universal webcal:// link, which already covers Outlook
    desktop).
    • feed-ics/feed-rss/feed-json attributes each enable an independent
      group of links: Calendar (Google Calendar, webcal://, ICS download),
      RSS (Feedly, feed://, RSS download), and OTE feed (OTE Reader, OTE
      Tools preview, JSON download) respectively. Any combination may be
      present.
    • show="..." (comma list, full-replacement semantics like fields)
      filters which individual links render.
    • layout="menu" (default) is a single trigger whose popover lists every
      available group. layout="badges" renders one small trigger per
      available group instead, each with its own popover and independent
      (mutually exclusive) open state.
    • theme/lang follow the same auto/light/dark and auto/en/es
      conventions as <ote-events>, and it reuses the same --ote-* CSS
      custom properties for consistent theming when both elements are on a
      page.
    • <slot name="trigger"> (or ics-trigger/rss-trigger/ote-trigger in
      layout="badges") lets a host swap in its own badge/icon markup instead
      of the default text button.