# Inline embed keywords (map / gpx / cad / yt / video / audio) The share renders small **text keywords** into interactive widgets, client-side, from two `shareHtml` snippets: `scripts/geo_map_render.js` (`map`, `gpx`, `yt`, `video`, `audio`) and `scripts/3d_model_viewer.js` (`cad`). Keywords are plain text, so they survive editor re-saves — no raw HTML needed. Put one keyword **on its own line** (recommended) or inline in a sentence. A keyword is ignored when it sits inside `code`/`pre` (that is how this file shows examples). ## Syntax ``` [map ] # geomap, optional: |small|medium|large [gpx ] # track stats card + elevation profile, optional: |Custom title [cad ] # 3D model viewer, optional: |small|medium|large or |Caption [yt ] # YouTube click-to-load facade, optional: |Caption [video ] # inline video player, optional: |Caption [audio ] # inline audio player, optional: |Caption ``` `` is either the **note ID** (12 chars) or the **note title / file name** (case-insensitive; file extension optional). ## Requirements per keyword | Keyword | References | Notes | |---|---|---| | `map` | a geoMap book note (`#viewType=geoMap` + `#publish=true`) | points via child `#geolocation` / `#geo:position` / `#geoShape` or child `.gpx` files; tree order = route order; reorder children in Trilium → auto refresh (`~runOnBranchChange`) | | `gpx` | any `.gpx` **file note** in the blog tree | stats: distance, ascent/descent (0.5 m deadband), elevation range, duration, avg speed, pace (needs `