Skip to main content

import-export

Import code from GitHub gists/files/repos, GitLab, URLs, DOM, and local files. Export projects as HTML, JSON, ZIP, or to external services. Load this skill when loading projects from external sources or exporting project state.

Source facts

Repository
live-codes/livecodes
Last source activity
September 14, 2026 at 12:04
Detected SKILL.md language
English
Stars
1,522
Forks
272

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
import-export
description
Import code from GitHub gists/files/repos, GitLab, URLs, DOM, and local files. Export projects as HTML, JSON, ZIP, or to external services. Load this skill when loading projects from external sources or exporting project state.
metadata
{"type":"core","library":"livecodes","library_version":"0.13.0"}
sources
["live-codes/livecodes:docs/docs/features/import.mdx","live-codes/livecodes:docs/docs/features/export.mdx"]
# LiveCodes — Import and Export Code LiveCodes imports code from external sources and exports projects in multiple formats. ## Setup ```javascript import { createPlayground, getPlaygroundUrl } from 'livecodes'; // Import from URL const playground = await createPlayground('#container', { import: 'https://github.com/user/repo/blob/main/src/index.js', }); // Import from URL via query param // https://livecodes.io/?x=https://github.com/user/repo // Export to shareable URL const shareUrl = await playground.getShareUrl(); const shortUrl = await playground.getShareUrl(true); ``` ## Core Patterns ### Import from GitHub ```javascript // GitHub file createPlayground('#container', { import: 'https://github.com/lodash/lodash/blob/master/isObject.js', }); // GitHub directory createPlayground('#container', { import: 'https://github.com/user/repo/tree/main/src', }); // GitHub gist createPlayground('#container', { import: 'https://gist.github.com/abc123', }); // Specify files from multi-file source createPlayground('#container', { import: 'https://github.com/user/repo/tree/main/src', params: { files: 'App.tsx,styles.css,index.html' }, }); ``` ### Import from GitLab ```javascript // GitLab snippet createPlayground('#container', { import: 'https://gitlab.com/-/snippets/12345', }); // GitLab file createPlayground('#container', { import: 'https://gitlab.com/user/repo/-/blob/main/src/index.js', }); ``` ### Import from URL ```javascript // Raw code URL createPlayground('#container', { import: 'https://example.com/code.js', }); // URL with language specified createPlayground('#container', { params: { x: 'https://example.com/code', lang: 'typescript', // Force language }, }); // Import from Vue/TypeScript playgrounds createPlayground('#container', { import: 'https://play.vuejs.org/#...', }); ``` ### Import from shared project ```javascript // Short URL createPlayground('#container', { import: 'id/abc123', // Shared project ID }); // Compressed config createPlayground('#container', { import: 'code/...', // Compressed base64 config }); // Via URL // https://livecodes.io/?x=id/abc123 // https://livecodes.io/?x=code/... ``` ### Import from DOM ```javascript // HTML page with code blocks createPlayground('#container', { import: 'https://example.com/blog-post', }); // HTML must use specific structure: // <code class="livecodes"> // <pre data-lang="html">...</pre> // <pre data-lang="css">...</pre> // <pre data-lang="javascript">...</pre> // </code> ``` ### Import via SDK config ```javascript // Set config with code await playground.setConfig({ markup: { language: 'html', content: '<h1>Hello</h1>' }, style: { language: 'css', content: 'h1 { color: blue; }' }, script: { language: 'javascript', content: 'console.log("hi")' }, }); // Set config from URL await playground.setConfig('https://example.com/config.json'); ``` ### Specify files from multi-file sources ```javascript // When importing directory or gist with multiple files createPlayground('#container', { import: 'https://github.com/user/repo/tree/main/src', params: { files: 'Counter.tsx,counter.css,index.html', active: 'script', // Which editor to show: 'markup', 'style', 'script', or 0, 1, 2 }, }); ``` ### Export via SDK ```javascript const playground = await createPlayground('#container', { /* ... */ }); // Get share URL const longUrl = await playground.getShareUrl(); // Long URL with compressed config const shortUrl = await playground.getShareUrl(true); // Short URL // Get config to save/export const config = await playground.getConfig(); ``` ### Export via URL ``` # Long URL (compressed config) https://livecodes.io/#config/... # Short URL https://livecodes.io/?x=id/abc123 ``` ## Common Import Sources | Source | URL Pattern | Notes | | --------------------- | --------------------------------- | ---------------------- | | GitHub file | `github.com/user/repo/blob/...` | Single file | | GitHub directory | `github.com/user/repo/tree/...` | Multiple files | | GitHub gist | `gist.github.com/...` | Multi-file gists work | | GitLab file | `gitlab.com/user/repo/-/blob/...` | Single file | | GitLab snippet | `gitlab.com/-/snippets/...` | Snippet | | JS Bin | `jsbin.com/...` | JS Bin embeds | | Vue Playground | `play.vuejs.org/#...` | Vue SFC playground | | TypeScript Playground | `typescriptlang.org/play#...` | TS playground | | Raw URL | Any URL | Language auto-detected | | Local files | Drag & drop | Standalone app only | ## File Selection Priority When importing multiple files, LiveCodes prioritizes: 1. Files named `index.*`, `default.*` (markup) 2. Files named `style.*`, `styles.*` (style) 3. Files named `script.*`, `app.*`, `main.*`, `index.*` (script) 4. README and markdown files get lower priority 5. Use `files` parameter to explicitly select files ## SDK Import Methods ```javascript // Option 1: EmbedOptions.import createPlayground('#container', { import: 'https://github.com/user/repo', }); // Option 2: Query param x createPlayground('#container', { params: { x: 'https://github.com/user/repo' }, }); // Option 3: URL // https://livecodes.io/?x=https://github.com/user/repo // Option 4: setConfig with URL await playground.setConfig('https://example.com/config.json'); ```
View on GitHub