using-git-worktrees
OBobra/superpowers298k近 7 天新增 2,631 个 star
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.
LiveCodes imports code from external sources and exports projects in multiple formats.
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);
// 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' },
});
// 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',
});
// 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/#...',
});
// 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/...
// 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>
// 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');
// 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
},
});
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();
# Long URL (compressed config)
https://livecodes.io/#config/...
# Short URL
https://livecodes.io/?x=id/abc123
| 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 |
When importing multiple files, LiveCodes prioritizes:
index.*, default.* (markup)style.*, styles.* (style)script.*, app.*, main.*, index.* (script)files parameter to explicitly select files// 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');
OBobra/superpowers298k近 7 天新增 2,631 个 star
OBobra/superpowers298k近 7 天新增 2,631 个 star
OBobra/superpowers298k近 7 天新增 2,631 个 star
MAmattpocock/skills288k近 7 天新增 10,178 个 star
MAmattpocock/skills288k近 7 天新增 10,178 个 star
MAmattpocock/skills288k近 7 天新增 10,178 个 star