Skip to content

Commit a04c559

Browse files
committed
doc-link parser / links for non-kit sections
1 parent 04f2329 commit a04c559

File tree

61 files changed

+84
-77
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+84
-77
lines changed

content/tutorial/01-svelte/01-introduction/02-your-first-component/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Your first component
33
---
44

5-
In Svelte, an application is composed from one or more _components_. A component is a reusable self-contained block of code that encapsulates HTML, CSS and JavaScript that belong together, written into a `.svelte` file. The `App.svelte` file, open in the code editor to the right, is a simple component.
5+
In Svelte, an application is composed from one or more [_components_]($docs#component-format). A component is a reusable self-contained block of code that encapsulates HTML, CSS and JavaScript that belong together, written into a `.svelte` file. The `App.svelte` file, open in the code editor to the right, is a simple component.
66

77
## Adding data
88

Loading

content/tutorial/01-svelte/01-introduction/04-styling/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Styling
33
---
44

5-
Just like in HTML, you can add a `<style>` tag to your component. Let's add some styles to the `<p>` element:
5+
Just like in HTML, you can add a [`<style>`]($docs#component-format-style) tag to your component. Let's add some styles to the `<p>` element:
66

77
```svelte
88
<p>This is a paragraph.</p>

content/tutorial/01-svelte/01-introduction/06-html-tags/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Ordinarily, strings are inserted as plain text, meaning that characters like `<`
66

77
But sometimes you need to render HTML directly into a component. For example, the words you're reading right now exist in a markdown file that gets included on this page as a blob of HTML.
88

9-
In Svelte, you do this with the special `{@html ...}` tag:
9+
In Svelte, you do this with the special [`{@html ...}`]($docs#template-syntax-html) tag:
1010

1111
```svelte
1212
<p>{+++@html+++ string}</p>

content/tutorial/01-svelte/02-reactivity/01-reactive-assignments/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Assignments
33
---
44

5-
At the heart of Svelte is a powerful system of _reactivity_ for keeping the DOM in sync with your application state — for example, in response to an event.
5+
At the heart of Svelte is a powerful system of [_reactivity_]($docs#component-format-script-2-assignments-are-reactive) for keeping the DOM in sync with your application state — for example, in response to an event.
66

77
To demonstrate it, we first need to wire up an event handler (we'll learn more about these [later](/tutorial/dom-events)):
88

content/tutorial/01-svelte/02-reactivity/02-reactive-declarations/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Declarations
44

55
Svelte automatically updates the DOM when your component's state changes. Often, some parts of a component's state need to be computed from _other_ parts (such as a `fullname` derived from a `firstname` and a `lastname`), and recomputed whenever they change.
66

7-
For these, we have _reactive declarations_. They look like this:
7+
For these, we have [_reactive declarations_]($docs#component-format-script-3-$-marks-a-statement-as-reactive). They look like this:
88

99
```js
1010
let count = 0;

content/tutorial/01-svelte/02-reactivity/03-reactive-statements/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Statements
33
---
44

5-
We're not limited to declaring reactive _values_ — we can also run arbitrary _statements_ reactively. For example, we can log the value of `count` whenever it changes:
5+
We're not limited to declaring reactive _values_ — we can also run arbitrary [_statements_ reactively]($docs#component-format-script-3-$-marks-a-statement-as-reactive). For example, we can log the value of `count` whenever it changes:
66

77
```js
88
let count = 0;

content/tutorial/01-svelte/03-props/01-declaring-props/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Declaring props
44

55
So far, we've dealt exclusively with internal state — that is to say, the values are only accessible within a given component.
66

7-
In any real application, you'll need to pass data from one component down to its children. To do that, we need to declare _properties_, generally shortened to 'props'. In Svelte, we do that with the `export` keyword. Edit the `Nested.svelte` component:
7+
In any real application, you'll need to pass data from one component down to its children. To do that, we need to declare [_properties_]($docs#component-format-script-1-export-creates-a-component-prop), generally shortened to 'props'. In Svelte, we do that with the `export` keyword. Edit the `Nested.svelte` component:
88

99
```svelte
1010
<script>

content/tutorial/01-svelte/04-logic/01-if-blocks/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: If blocks
44

55
HTML doesn't have a way of expressing _logic_, like conditionals and loops. Svelte does.
66

7-
To conditionally render some markup, we wrap it in an `if` block:
7+
To conditionally render some markup, we wrap it in an [`if` block]($docs#template-syntax-if):
88

99
```svelte
1010
+++{#if user.loggedIn}+++

content/tutorial/01-svelte/04-logic/04-each-blocks/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Each blocks
33
---
44

5-
If you need to loop over lists of data, use an `each` block:
5+
If you need to loop over lists of data, use an [`each` block]($docs#template-syntax-each):
66

77
```svelte
88
<ul>

content/tutorial/01-svelte/04-logic/06-await-blocks/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Await blocks
33
---
44

5-
Most web applications have to deal with asynchronous data at some point. Svelte makes it easy to _await_ the value of [promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises) directly in your markup:
5+
Most web applications have to deal with asynchronous data at some point. Svelte makes it easy to [_await_]($docs#template-syntax-await) the value of [promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises) directly in your markup:
66

77
```svelte
88
{#await promise}

content/tutorial/01-svelte/05-events/01-dom-events/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: DOM events
33
---
44

5-
As we've briefly seen already, you can listen to any event on an element with the `on:` directive:
5+
As we've briefly seen already, you can listen to any event on an element with the `on:` [directive]($docs#template-syntax-element-directives):
66

77
```svelte
88
<div on:mousemove={handleMousemove}>

content/tutorial/01-svelte/05-events/02-inline-handlers/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Inline handlers
33
---
44

5-
You can also declare event handlers inline:
5+
You can also declare [event handlers]($docs#template-syntax-element-directives) inline:
66

77
```svelte
88
<div on:mousemove="{e => m = { x: e.clientX, y: e.clientY }}">

content/tutorial/01-svelte/05-events/03-event-modifiers/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Event modifiers
33
---
44

5-
DOM event handlers can have _modifiers_ that alter their behaviour. For example, a handler with a `once` modifier will only run a single time:
5+
DOM [event handlers]($docs#template-syntax-element-directives) can have _modifiers_ that alter their behaviour. For example, a handler with a `once` modifier will only run a single time:
66

77
```svelte
88
<script>

content/tutorial/01-svelte/05-events/04-component-events/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Component events
33
---
44

5-
Components can also dispatch events. To do so, they must create an event dispatcher. Update `Inner.svelte`:
5+
Components can also dispatch events. To do so, they must create an [event dispatcher]($docs#run-time-svelte-createeventdispatcher). Update `Inner.svelte`:
66

77
```svelte
88
<script>

content/tutorial/01-svelte/05-events/05-event-forwarding/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
title: Event forwarding
33
---
44

5-
Unlike DOM events, component events don't _bubble_. If you want to listen to an event on some deeply nested component, the intermediate components must _forward_ the event.
5+
Unlike DOM events, [component events]($docs#template-syntax-component-directives-on-eventname) don't _bubble_. If you want to listen to an event on some deeply nested component, the intermediate components must _forward_ the event.
66

77
In this case, we have the same `App.svelte` and `Inner.svelte` as in the [previous chapter](/tutorial/component-events), but there's now an `Outer.svelte` component that contains `<Inner/>`.
88

9-
One way we could solve the problem is adding `createEventDispatcher` to `Outer.svelte`, listening for the `message` event, and creating a handler for it:
9+
One way we could solve the problem is adding [`createEventDispatcher`]($docs#run-time-svelte-createeventdispatcher) to `Outer.svelte`, listening for the `message` event, and creating a handler for it:
1010

1111
```svelte
1212
<script>

content/tutorial/01-svelte/06-bindings/01-text-inputs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ As a general rule, data flow in Svelte is _top down_ — a parent component can
66

77
Sometimes it's useful to break that rule. Take the case of the `<input>` element in this component — we _could_ add an `on:input` event handler that sets the value of `name` to `event.target.value`, but it's a bit... boilerplatey. It gets even worse with other form elements, as we'll see.
88

9-
Instead, we can use the `bind:value` directive:
9+
Instead, we can use the [`bind:value` directive](docs#template-syntax-element-directives-bind-property):
1010

1111
```svelte
1212
<input bind:value={name}>

content/tutorial/01-svelte/06-bindings/04-group-inputs/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
title: Group inputs
33
---
44

5-
If you have multiple inputs relating to the same value, you can use `bind:group` along with the `value` attribute. Radio inputs in the same group are mutually exclusive; checkbox inputs in the same group form an array of selected values.
5+
If you have multiple inputs relating to the same value, you can use [`bind:group`](docs#template-syntax-element-directives-bind-group) along with the `value` attribute. Radio inputs in the same group are mutually exclusive; checkbox inputs in the same group form an array of selected values.
66

7-
Add `bind:group` to each input:
7+
Add [`bind:group`](docs#template-syntax-element-directives-bind-group) to each input:
88

99
```svelte
1010
<input type=radio bind:group={scoops} name="scoops" value={1}>

content/tutorial/01-svelte/06-bindings/06-select-bindings/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Select bindings
33
---
44

5-
We can also use `bind:value` with `<select>` elements. Update line 20:
5+
We can also use [`bind:value` with `<select>`]($docs#template-syntax-element-directives-bind-property-binding-select-value) elements. Update line 20:
66

77
```svelte
88
<select bind:value={selected} on:change="{() => answer = ''}">

content/tutorial/01-svelte/07-lifecycle/01-onmount/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: onMount
44

55
Every component has a _lifecycle_ that starts when it is created, and ends when it is destroyed. There are a handful of functions that allow you to run code at key moments during that lifecycle.
66

7-
The one you'll use most frequently is `onMount`, which runs after the component is first rendered to the DOM. We briefly encountered it [earlier](/tutorial/bind-this) when we needed to interact with a `<canvas>` element after it had been rendered.
7+
The one you'll use most frequently is [`onMount`]($docs#run-time-svelte-onmount), which runs after the component is first rendered to the DOM. We briefly encountered it [earlier](/tutorial/bind-this) when we needed to interact with a `<canvas>` element after it had been rendered.
88

99
We'll add an `onMount` handler that loads some data over the network:
1010

content/tutorial/01-svelte/07-lifecycle/02-ondestroy/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: onDestroy
33
---
44

5-
To run code when your component is destroyed, use `onDestroy`.
5+
To run code when your component is destroyed, use [`onDestroy`]($docs#run-time-svelte-ondestroy).
66

77
For example, we can add a `setInterval` function when our component initialises, and clean it up when it's no longer relevant. Doing so prevents memory leaks.
88

content/tutorial/01-svelte/07-lifecycle/03-update/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: beforeUpdate and afterUpdate
33
---
44

5-
The `beforeUpdate` function schedules work to happen immediately before the DOM is updated. `afterUpdate` is its counterpart, used for running code once the DOM is in sync with your data.
5+
The [`beforeUpdate`]($docs#run-time-svelte-beforeupdate) function schedules work to happen immediately before the DOM is updated. [`afterUpdate`]($docs#run-time-svelte-afterupdate) is its counterpart, used for running code once the DOM is in sync with your data.
66

77
Together, they're useful for doing things imperatively that are difficult to achieve in a purely state-driven way, like updating the scroll position of an element.
88

content/tutorial/01-svelte/07-lifecycle/04-tick/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: tick
33
---
44

5-
The `tick` function is unlike other lifecycle functions in that you can call it any time, not just when the component first initialises. It returns a promise that resolves as soon as any pending state changes have been applied to the DOM (or immediately, if there are no pending state changes).
5+
The [`tick`]($docs#run-time-svelte-tick) function is unlike other lifecycle functions in that you can call it any time, not just when the component first initialises. It returns a promise that resolves as soon as any pending state changes have been applied to the DOM (or immediately, if there are no pending state changes).
66

77
When you update component state in Svelte, it doesn't update the DOM immediately. Instead, it waits until the next _microtask_ to see if there are any other changes that need to be applied, including in other components. Doing so avoids unnecessary work and allows the browser to batch things more effectively.
88

content/tutorial/01-svelte/08-stores/01-writable-stores/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ title: Writable stores
44

55
Not all application state belongs inside your application's component hierarchy. Sometimes, you'll have values that need to be accessed by multiple unrelated components, or by a regular JavaScript module.
66

7-
In Svelte, we do this with _stores_. A store is simply an object with a `subscribe` method that allows interested parties to be notified whenever the store value changes. In `App.svelte`, `count` is a store, and we're setting `count_value` in the `count.subscribe` callback.
7+
In Svelte, we do this with [_stores_]($docs#run-time-svelte-store). A store is simply an object with a `subscribe` method that allows interested parties to be notified whenever the store value changes. In `App.svelte`, `count` is a store, and we're setting `count_value` in the `count.subscribe` callback.
88

9-
Click the `stores.js` tab to see the definition of `count`. It's a _writable_ store, which means it has `set` and `update` methods in addition to `subscribe`.
9+
Click the `stores.js` tab to see the definition of `count`. It's a [_writable_]($docs#run-time-svelte-store-writable) store, which means it has `set` and `update` methods in addition to `subscribe`.
1010

1111
Now go to the `Incrementer.svelte` tab so that we can wire up the `+` button:
1212

content/tutorial/01-svelte/08-stores/02-auto-subscriptions/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const unsubscribe = count.subscribe((value) => {
1414

1515
> Calling a `subscribe` method returns an `unsubscribe` function.
1616
17-
You now declared `unsubscribe`, but it still needs to be called, for example through the `onDestroy` [lifecycle hook](/tutorial/ondestroy):
17+
You now declared `unsubscribe`, but it still needs to be called, for example through the [`onDestroy`]($docs#run-time-svelte-ondestroy) [lifecycle hook](/tutorial/ondestroy):
1818

1919
```svelte
2020
<script>
@@ -36,7 +36,7 @@ You now declared `unsubscribe`, but it still needs to be called, for example thr
3636
<h1>The count is {count_value}</h1>
3737
```
3838

39-
It starts to get a bit boilerplatey though, especially if your component subscribes to multiple stores. Instead, Svelte has a trick up its sleeve — you can reference a store value by prefixing the store name with `$`:
39+
It starts to get a bit boilerplatey though, especially if your component subscribes to multiple stores. Instead, Svelte has a trick up its sleeve — you can reference a store value by [prefixing the store name with `$`]($docs#component-format-script-4-prefix-stores-with-$-to-access-their-values):
4040

4141
```svelte
4242
<script>

content/tutorial/01-svelte/08-stores/03-readable-stores/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Readable stores
33
---
44

5-
Not all stores should be writable by whoever has a reference to them. For example, you might have a store representing the mouse position or the user's geolocation, and it doesn't make sense to be able to set those values from 'outside'. For those cases, we have _readable_ stores.
5+
Not all stores should be writable by whoever has a reference to them. For example, you might have a store representing the mouse position or the user's geolocation, and it doesn't make sense to be able to set those values from 'outside'. For those cases, we have [_readable_ stores]($docs#run-time-svelte-store-readable).
66

77
Click over to the `stores.js` tab. The first argument to `readable` is an initial value, which can be `null` or `undefined` if you don't have one yet. The second argument is a `start` function that takes a `set` callback and returns a `stop` function. The `start` function is called when the store gets its first subscriber; `stop` is called when the last subscriber unsubscribes.
88

content/tutorial/01-svelte/08-stores/04-derived-stores/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Derived stores
33
---
44

5-
You can create a store whose value is based on the value of one or more _other_ stores with `derived`. Building on our previous example, we can create a store that derives the time the page has been open:
5+
You can create a store whose value is based on the value of one or more _other_ stores with [`derived`]($docs#run-time-svelte-store-derived). Building on our previous example, we can create a store that derives the time the page has been open:
66

77
```js
88
export const elapsed = derived(time, ($time) => Math.round(($time - start) / 1000));

content/tutorial/01-svelte/08-stores/05-custom-stores/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Custom stores
33
---
44

5-
As long as an object correctly implements the `subscribe` method, it's a store. Beyond that, anything goes. It's very easy, therefore, to create custom stores with domain-specific logic.
5+
As long as an object correctly implements the `subscribe` method, it's a store. Beyond that, anything goes. It's very easy, therefore, to create [custom stores]($docs#component-format-script-4-prefix-stores-with-$-to-access-their-values-store-contract) with domain-specific logic.
66

77
For example, the `count` store from our earlier example could include `increment`, `decrement` and `reset` methods and avoid exposing `set` and `update`:
88

content/tutorial/03-advanced-svelte/01-motion/01-tweens/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
title: Tweens
33
---
44

5-
Now that we've covered the basics of SvelteKit, it's time to learn some advanced Svelte techniques, starting with _motion_.
5+
Now that we've covered the basics of SvelteKit, it's time to learn some advanced Svelte techniques, starting with [_motion_]($docs#run-time-svelte-motion).
66

77
Setting values and watching the DOM update automatically is cool. Know what's even cooler? Tweening those values. Svelte includes tools to help you build slick user interfaces that use animation to communicate changes.
88

9-
Let's start by changing the `progress` store to a `tweened` value:
9+
Let's start by changing the `progress` store to a [`tweened`]($docs#run-time-svelte-motion-tweened) value:
1010

1111
```svelte
1212
<script>
@@ -16,7 +16,7 @@ Let's start by changing the `progress` store to a `tweened` value:
1616
</script>
1717
```
1818

19-
Clicking the buttons causes the progress bar to animate to its new value. It's a bit robotic and unsatisfying though. We need to add an easing function:
19+
Clicking the buttons causes the progress bar to animate to its new value. It's a bit robotic and unsatisfying though. We need to add an [easing]($docs#run-time-svelte-easing) function:
2020

2121
```svelte
2222
<script>
@@ -30,9 +30,9 @@ Clicking the buttons causes the progress bar to animate to its new value. It's a
3030
</script>
3131
```
3232

33-
> The `svelte/easing` module contains the [Penner easing equations](https://web.archive.org/web/20190805215728/http://robertpenner.com/easing/), or you can supply your own `p => t` function where `p` and `t` are both values between 0 and 1.
33+
> The [`svelte/easing`]($docs#run-time-svelte-easing) module contains the [Penner easing equations](https://web.archive.org/web/20190805215728/http://robertpenner.com/easing/), or you can supply your own `p => t` function where `p` and `t` are both values between 0 and 1.
3434
35-
The full set of options available to `tweened`:
35+
The full set of options available to [`tweened`]($docs#run-time-svelte-motion-tweened):
3636

3737
- `delay` — milliseconds before the tween starts
3838
- `duration` — either the duration of the tween in milliseconds, or a `(from, to) => milliseconds` function allowing you to (e.g.) specify longer tweens for larger changes in value

content/tutorial/03-advanced-svelte/01-motion/02-springs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Springs
33
---
44

5-
The `spring` function is an alternative to `tweened` that often works better for values that are frequently changing.
5+
The [`spring`]($docs#run-time-svelte-motion-spring) function is an alternative to [`tweened`]($docs#run-time-svelte-motion-tweened) that often works better for values that are frequently changing.
66

77
In this example we have two stores — one representing the circle's coordinates, and one representing its size. Let's convert them to springs:
88

content/tutorial/03-advanced-svelte/02-transitions/01-transition/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
title: The transition directive
33
---
44

5-
We can make more appealing user interfaces by gracefully transitioning elements into and out of the DOM. Svelte makes this very easy with the `transition` directive.
5+
We can make more appealing user interfaces by gracefully transitioning elements into and out of the DOM. Svelte makes this very easy with the [`transition`]($docs#template-syntax-element-directives-transition-fn) directive.
66

7-
First, import the `fade` function from `svelte/transition`...
7+
First, import the [`fade`]($docs#run-time-svelte-transition-fade) function from [`svelte/transition`]($docs#run-time-svelte-transition)...
88

99
```svelte
1010
<script>

content/tutorial/03-advanced-svelte/02-transitions/02-adding-parameters-to-transitions/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Adding parameters
33
---
44

5-
Transition functions can accept parameters. Replace the `fade` transition with `fly`...
5+
Transition functions can accept [parameters]($docs#template-syntax-element-directives-transition-fn-transition-parameters). Replace the [`fade`]($docs#run-time-svelte-transition-fade) transition with [`fly`]($docs#run-time-svelte-transition-fly)...
66

77
```svelte
88
<script>

0 commit comments

Comments
 (0)