Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/spences10/sveltekit-embed

SvelteKit embed components
https://github.com/spences10/sveltekit-embed

codepen deezer embed spotify svelte youtube

Last synced: about 20 hours ago
JSON representation

SvelteKit embed components

Awesome Lists containing this project

README

        

# SvelteKit Embed

[![All Contributors](https://img.shields.io/badge/all_contributors-8-orange.svg?style=flat-square)](#contributors-)

[![MadeWithSvelte.com shield](https://madewithsvelte.com/storage/repo-shields/3786-shield.svg)](https://madewithsvelte.com/p/sveltekit-embed/shield-link)

[![Tests: Unit](https://github.com/spences10/sveltekit-embed/actions/workflows/unit-test.yml/badge.svg)](https://github.com/spences10/sveltekit-embed/actions/workflows/unit-test.yml)

This is a collection of embed components I use on a regular basis
packaged up for use.

![sveltekit embed cover](.github/sveltekit-embed.jpg)

Each component with the exception of `Toot` and `Tweet` is wrapped in
an intersection observer `GeneralObserver` which will load up the
component when it scrolls into the viewport.

## Use it

```bash
npm i -D sveltekit-embed
```

Use like a normal Svelte component:

```html

import { AnchorFm } from 'sveltekit-embed';

```

## Supported platforms

- AnchorFm
- Buzzsprout
- CodePen
- Deezer
- GenericEmbed
- Gist
- Guild
- Relive
- SimpleCast
- Slides
- SoundCloud
- Spotify
- StackBlitz
- Toot
- Tweet
- Vimeo
- YouTube
- Zencastr

## Got questions?

[Start a discussion](https://github.com/spences10/sveltekit-embed/discussions/new)

## Something not work?

Create an
[issue](https://github.com/spences10/sveltekit-embed/issues/new)

## Developing locally

For the `web` page and testing new components there you'll need to
have empty `env` variables. Rename the `.sample.env` file to `.env`.

```bash
mv .sample.env apps/web/.env
```

Create the component in the
`packages/sveltekit-embed/src/lib/components` directory.

Export the component from the
`packages/sveltekit-embed/src/lib/index.ts` file:

```ts
export { default as MyComponent } from './components/my-component.svelte';
```

Import the component locally into the `src/routes/+page.md` file, or
create your own (`+page.svelte`) page for testing:

```svelte
import {MyComponent} from 'sveltekit-embed'
```

After importing the component, add it to the
`Available Components List` and document it:

```markdown
## Available Components List

- [MyComponent](#mycomponent)
```

````markdown
## MyComponent

Props:

```ts
myComponentId: string = '';
```

Usage:

```html

```

Output:

````

Running the dev server on the `web` page will package the changes for
use in the web app.

Test locally, then submit a PR 🙏

## Thanks

Credit to [@pauliescanlon](https://github.com/pauliescanlon) for the
original version of this project in
[MDX Embed](https://github.com/pauliescanlon/mdx-embed).

## Packaging for NPM

Scott, this is here for you to remember how to do this 🙃

Although I detailed this in
[Making npm Packages with SvelteKit](https://scottspence.com/posts/making-npm-packages-with-sveltekit)
I think it's best to put it here as I always come to the README and
the instructions are never there! 😅

**Publish the project to NPM**

```bash
# authenticate with npm
npm login
# bump version with npm
npm version 0.0.8
# package with sveltekit
pnpm run package
# publish
npm publish
# push tags to github
git push --tags
```

**Publish @next package**

Same procedure except use the `--tag` flag:

```bash
# authenticate with npm
npm login
# bump version with npm
npm version 0.0.13
# package with sveltekit
pnpm run package
# publish with tag
npm publish --tag next
# push tags to github
git push --tags
```

**Move @next package to latest**

```bash
# authenticate with npm
npm login
# move @next to latest
npm dist-tag add [email protected] latest
```

## Contributors ✨

Thanks goes to these wonderful people



Scott Spence
Scott Spence

💻
Cahllagerfeld
Cahllagerfeld

💻
Matías Hernández Arellano
Matías Hernández Arellano

💻
Julian Laubstein
Julian Laubstein

💻
Maxime Dupont
Maxime Dupont

💻
James Perkins
James Perkins

💻
João Palmeiro
João Palmeiro

💻


Jason Dent
Jason Dent

💻






Add your contributions



([emoji key](https://allcontributors.org/docs/en/emoji-key)):

This project follows the
[all-contributors](https://github.com/all-contributors/all-contributors)
specification. Contributions of any kind welcome!