--- name: gpt-pages-obsidian-visualizations description: "Prepare GPT Pages for Markdown export to Obsidian using Pages: Plotly.js charts, MathBox mathematical animations with version-pinned CDN dependencies, mandatory v3 HTML pairing, portable images, verified cross-Page HTTPS links, and layered validation. Use for Page visualizations and export preparation; not live sync or general Obsidian configuration." --- # GPT Pages to Obsidian: Standard Export Template Keep readable, interactive native visualizations in the GPT Page body and complete HTML sources at the bottom for manual Markdown export to Obsidian. The importer uses pairing markers to move HTML back to each chart position and remove verified markers and native image references. For native PNG/JPEG/GIF/WebP images requested in a single Markdown export, also follow [references/images.md](references/images.md). It defines a separate image asset v1 source fence, original-byte acquisition, programmatic Base64 generation and export verification. Ordinary native image references alone do not export the image bytes. Image source support requires an importer that implements this new contract; do not infer installed support from a checkout. ## Required dependency: Pages The [Pages plugin](https://chatgpt.com/plugins/plugin_connector_1p_4a72ddeef4c481918f92d8e8df18fb2c?open_in_app) (`pages@openai-curated-remote`, invoked as `@Pages`) is required for creating or updating a Page with this skill. It provides the ChatGPT Space app's Page and native visualization tools. - Confirm that Pages is enabled and connected, and discover its actual tools before starting Page operations. Use Pages tools to read, create and edit Pages, and its native visualization tool to create or replace charts. Typical tool names include `read_page`, `create_page`, `edit_page`, `patch_page` and `create_page_visualization`; namespace prefixes may vary by host. - If the required Pages tools are unavailable, disconnected or lack access to the target Page, stop the dependent Page operation and explain what is missing. Do not substitute a local HTML/Markdown file, a chat draft, another provider or a fabricated native reference and report the Page as created or updated. Installing the skill or declaring its tool dependency does not itself connect Pages. - Confirm successful Page operations through tool receipts and Page readback. Local source preparation and verification can proceed independently, but do not count as a completed Page operation. ## Core invariants - **Two representations per figure:** include both a native Page visualization and a fenced code block labeled `html`. Do not replace the native chart with code, or deliver only a local HTML file while omitting the source from the Page. - Maintain one canonical source per figure, including its data, formulas, labels and interaction logic. Submit the same complete HTML to the native visualization tool and place it unchanged in the footer. Generate markers only after receiving the tool's actual reference. Host colors may differ; data, calculations and event behavior must agree. - **Clean layout:** the body contains subject headings, necessary explanations, figure markers and native visuals. The footer contains source markers and complete HTML fences, plus explicitly requested portable image source fences. Do not add an "Exportable HTML source" appendix heading, per-chart "HTML source" subheadings, empty sections or export instructions. Preserve meaningful existing prose and user-requested content. - **Mandatory v3:** every figure pair created or updated by this skill must use compact v3 markers. Keep only the short ID in the body and put `ref` and `sha256` in the footer. Never fall back to v1/v2, including when target support is unknown. If the installed importer is unknown or lacks v3 support, report compatibility as unverified or requiring an update; do not claim successful import or change the installed plugin without authorization. New checkout code does not establish the installed version. SHA-256 verifies source consistency, not trust to execute code. - Keep a complete UTF-8 HTML document with embedded chart data, formulas, initialization and interaction code, plus explicit dependency URLs. Version-pinned HTTPS CDN libraries and stylesheets are allowed by default. Set fonts, background and text colors explicitly; do not rely on host CSS or private Page references. Preserve the exact HTML, including CDN URLs, in the footer. Its SHA-256 verifies these HTML bytes, not the remotely fetched library bytes. Describe CDN-backed charts as requiring network access, not as offline/self-contained. Use self-contained HTML when the user requests offline operation and report size/capability limits rather than silently dropping libraries. - Preserve existing content and user edits. Invoking this skill does not itself authorize Page edits, vault configuration changes, plugin installation, publishing or synchronization. Follow the current task's authorization. - Write Page prose, labels and accessibility text in the user's requested language. English skill instructions do not require English output. ## Choose a visualization library - **Plotly.js is the default** for function plots, statistics, contours, data exploration and ordinary 3D surfaces. Use **MathBox** for mathematical concept animations, vector relationships, coordinate transformations and custom mathematical geometry. Load only the library needed for the figure. Simple native diagrams and existing self-contained SVG examples remain appropriate; do not rewrite working figures solely because these defaults changed. - Read [references/libraries.md](references/libraries.md) for pinned dependency sets, loading order, templates and validation limits. Use [assets/plotly-function.html](assets/plotly-function.html) as a function-plot starting point and [assets/mathbox-curve.html](assets/mathbox-curve.html) for an adjustable mathematical curve. Adapt data, formulas, interactions and labels to the subject. - For MathBox, pin compatible Three.js, OrbitControls and MathBox versions. Embed the matching complete MathBox CSS in a `