1
0
Fork 0

feat: Flat import of markdown repo

This is a flat (without history) import of (some of) the content
from our markdown module.

We've imported this without history because the repo contains our
blog posts and showcases posts content prior to porting them to strapi.

Since this contains many images, it would balloon the size of this repo
to import the full history.

Instead, please refer to the history of the (archived) markdown repo
at: https://github.com/freesewing/markdown
This commit is contained in:
Joost De Cock 2021-08-25 16:09:31 +02:00
parent 1671a896b5
commit b34a2ee2ed
6132 changed files with 244167 additions and 0 deletions

View file

@ -0,0 +1,12 @@
---
title: Hooks API
---
A **hook** is a lifecycle event.
You can register a method for a hook. When the hook is triggered, your method will be called. It will receive two parameters:
- An object relevant to the hook (see the specific hook for details)
- Data passed when the hook was registered (optional)
<ReadMore root='reference/hooks' title="Available hooks"/>

View file

@ -0,0 +1,17 @@
---
title: Hooks API
for: developers
about: Documents the available lifecycle hooks in Core and how to use them
---
A **hook** is a lifecycle event.
You can register a method for a hook. When the hook is triggered, your method will be
called. It will receive two parameters:
- An object relevant to the hook (see the specific hook for details)
- Data passed when the hook was registered (optional)
Below is a list of all available hooks:
<ReadMore list />

View file

@ -0,0 +1,12 @@
---
title: Hooks API
---
A **hook** is a lifecycle event.
You can register a method for a hook. When the hook is triggered, your method will be called. It will receive two parameters:
- An object relevant to the hook (see the specific hook for details)
- Data passed when the hook was registered (optional)
<ReadMore root='reference/hooks' title="Available hooks"/>

View file

@ -0,0 +1,12 @@
---
title: Hooks API
---
A **hook** is a lifecycle event.
You can register a method for a hook. When the hook is triggered, your method will be called. It will receive two parameters:
- An object relevant to the hook (see the specific hook for details)
- Data passed when the hook was registered (optional)
<ReadMore root='reference/hooks' title="Available hooks"/>

View file

@ -0,0 +1,42 @@
---
title: insertText
---
The `insertText` hook is called when text is about to be inserted during rendering.
Methods attached to the `insertText` hook will receive 2 parameters:
- `locale` : The language code of the language requested by the user (defaults to `en`)
- `text`: The text to be inserted
Unlike most hooks that receive an object that you can make changes to, for this hook you need to return a string.
This hook is typically used for translation, as is the case in [our i18n plugin](/reference/plugins/i18n/).
## Understanding the insertText hook
When we say that *this hook is called when text is about to be inserted*, that is a simplified view. In reality, this hook is called:
- For every value set on data-text
- For the combined result of these values, joined together with spaces
Let's use an example to clarify things:
```js
points.example
.attr('data-text', "seamAllowance")
.attr('data-text', ": 1cm")
```
For the example point above, the `insertText` hook will end up being called 3 times:
- First it will pass `seamAllowance` to the plugin
- Then it will pass `: 1cm` to the plugin
- Finally it will pass `seamAllowance : 1cm` to the plugin
Having the `insertText` hook only run once with `Seam allowance: 1cm` would be problematic because the seam allowance may differ, or perhaps we're using imperial units, and so on.
Instead, you can (and should) divide your text into chunks that need translating, and chunks that do not.
This is also why we're not inserting **Seam allowance** but rather **seamAllowance**; It is merely a key to indicate what translation we want to replace this text with.

View file

@ -0,0 +1,47 @@
---
title: insertText
---
The `insertText` hook is called when text is about to be inserted during rendering.
Methods attached to the `insertText` hook will receive 2 parameters:
- `locale` : The language code of the language requested by the user (defaults to `en`)
- `text`: The text to be inserted
Unlike most hooks that receive an object that you can make changes to,
for this hook you need to return a string.
This hook is typically used for translation, as is the case
in [our i18n plugin](/reference/plugins/i18n/).
## Understanding the insertText hook
When we say that *this hook is called when text is about to be inserted*, that is a simplified view.
In reality, this hook is called:
- For every value set on data-text
- For the combined result of these values, joined together with spaces
Let's use an example to clarify things:
```js
points.example
.attr('data-text', "seamAllowance")
.attr('data-text', ": 1cm")
```
For the example point above, the `insertText` hook will end up being called 3 times:
- First it will pass `seamAllowance` to the plugin
- Then it will pass `: 1cm` to the plugin
- Finally it will pass `seamAllowance : 1cm` to the plugin
Having the `insertText` hook only run once with `Seam allowance: 1cm` would be problematic because
the seam allowance may differ, or perhaps we're using imperial units, and so on.
Instead, you can (and should) divide your text into chunks that need translating, and chunks that do not.
This is also why we're not inserting **Seam allowance** but rather **seamAllowance**;
It is merely a key to indicate what translation we want to replace this text with.

View file

@ -0,0 +1,42 @@
---
title: insertText
---
The `insertText` hook is called when text is about to be inserted during rendering.
Methods attached to the `insertText` hook will receive 2 parameters:
- `locale` : The language code of the language requested by the user (defaults to `en`)
- `text`: The text to be inserted
Unlike most hooks that receive an object that you can make changes to, for this hook you need to return a string.
This hook is typically used for translation, as is the case in [our i18n plugin](/reference/plugins/i18n/).
## Understanding the insertText hook
When we say that *this hook is called when text is about to be inserted*, that is a simplified view. In reality, this hook is called:
- For every value set on data-text
- For the combined result of these values, joined together with spaces
Let's use an example to clarify things:
```js
points.example
.attr('data-text', "seamAllowance")
.attr('data-text', ": 1cm")
```
For the example point above, the `insertText` hook will end up being called 3 times:
- First it will pass `seamAllowance` to the plugin
- Then it will pass `: 1cm` to the plugin
- Finally it will pass `seamAllowance : 1cm` to the plugin
Having the `insertText` hook only run once with `Seam allowance: 1cm` would be problematic because the seam allowance may differ, or perhaps we're using imperial units, and so on.
Instead, you can (and should) divide your text into chunks that need translating, and chunks that do not.
This is also why we're not inserting **Seam allowance** but rather **seamAllowance**; It is merely a key to indicate what translation we want to replace this text with.

View file

@ -0,0 +1,42 @@
---
title: insertText
---
The `insertText` hook is called when text is about to be inserted during rendering.
Methods attached to the `insertText` hook will receive 2 parameters:
- `locale` : The language code of the language requested by the user (defaults to `en`)
- `text`: The text to be inserted
Unlike most hooks that receive an object that you can make changes to, for this hook you need to return a string.
This hook is typically used for translation, as is the case in [our i18n plugin](/reference/plugins/i18n/).
## Understanding the insertText hook
When we say that *this hook is called when text is about to be inserted*, that is a simplified view. In reality, this hook is called:
- For every value set on data-text
- For the combined result of these values, joined together with spaces
Let's use an example to clarify things:
```js
points.example
.attr('data-text', "seamAllowance")
.attr('data-text', ": 1cm")
```
For the example point above, the `insertText` hook will end up being called 3 times:
- First it will pass `seamAllowance` to the plugin
- Then it will pass `: 1cm` to the plugin
- Finally it will pass `seamAllowance : 1cm` to the plugin
Having the `insertText` hook only run once with `Seam allowance: 1cm` would be problematic because the seam allowance may differ, or perhaps we're using imperial units, and so on.
Instead, you can (and should) divide your text into chunks that need translating, and chunks that do not.
This is also why we're not inserting **Seam allowance** but rather **seamAllowance**; It is merely a key to indicate what translation we want to replace this text with.

View file

@ -0,0 +1,42 @@
---
title: insertText
---
The `insertText` hook is called when text is about to be inserted during rendering.
Methods attached to the `insertText` hook will receive 2 parameters:
- `locale` : The language code of the language requested by the user (defaults to `en`)
- `text`: The text to be inserted
Unlike most hooks that receive an object that you can make changes to, for this hook you need to return a string.
This hook is typically used for translation, as is the case in [our i18n plugin](/reference/plugins/i18n/).
## Understanding the insertText hook
When we say that *this hook is called when text is about to be inserted*, that is a simplified view. In reality, this hook is called:
- For every value set on data-text
- For the combined result of these values, joined together with spaces
Let's use an example to clarify things:
```js
points.example
.attr('data-text', "seamAllowance")
.attr('data-text', ": 1cm")
```
For the example point above, the `insertText` hook will end up being called 3 times:
- First it will pass `seamAllowance` to the plugin
- Then it will pass `: 1cm` to the plugin
- Finally it will pass `seamAllowance : 1cm` to the plugin
Having the `insertText` hook only run once with `Seam allowance: 1cm` would be problematic because the seam allowance may differ, or perhaps we're using imperial units, and so on.
Instead, you can (and should) divide your text into chunks that need translating, and chunks that do not.
This is also why we're not inserting **Seam allowance** but rather **seamAllowance**; It is merely a key to indicate what translation we want to replace this text with.

View file

@ -0,0 +1,12 @@
---
title: Hooks API
---
A **hook** is a lifecycle event.
You can register a method for a hook. When the hook is triggered, your method will be called. It will receive two parameters:
- An object relevant to the hook (see the specific hook for details)
- Data passed when the hook was registered (optional)
<ReadMore root='reference/hooks' title="Available hooks"/>

View file

@ -0,0 +1,14 @@
---
title: postDraft
---
The `postDraft` hook runs just after your pattern is drafted.
Your plugin will receive the Pattern object.
<Note>
The `postDraft` hook is rarely used.
</Note>

View file

@ -0,0 +1,13 @@
---
title: postDraft
---
The `postDraft` hook runs just after your pattern is drafted.
Your plugin will receive the Pattern object.
<Note>
The `postDraft` hook is rarely used.
</Note>

View file

@ -0,0 +1,14 @@
---
title: postDraft
---
The `postDraft` hook runs just after your pattern is drafted.
Your plugin will receive the Pattern object.
<Note>
The `postDraft` hook is rarely used.
</Note>

View file

@ -0,0 +1,14 @@
---
title: postDraft
---
The `postDraft` hook runs just after your pattern is drafted.
Your plugin will receive the Pattern object.
<Note>
The `postDraft` hook is rarely used.
</Note>

View file

@ -0,0 +1,14 @@
---
title: postDraft
---
The `postDraft` hook runs just after your pattern is drafted.
Your plugin will receive the Pattern object.
<Note>
The `postDraft` hook is rarely used.
</Note>

View file

@ -0,0 +1,16 @@
---
title: postRender
---
The `postRender` hook is triggered after the SVG is rendered.
Like the `preRender` hook, it receives [the SVG object](/api/svg) as its first parameter.
<Note>
The `postRender` hooks is rarely used.
</Note>

View file

@ -0,0 +1,14 @@
---
title: postRender
---
The `postRender` hook is triggered after the SVG is rendered.
Like the `preRender` hook, it receives [the SVG object](/api/svg) as its first parameter.
<Note>
The `postRender` hooks is rarely used.
</Note>

View file

@ -0,0 +1,16 @@
---
title: postRender
---
The `postRender` hook is triggered after the SVG is rendered.
Like the `preRender` hook, it receives [the SVG object](/api/svg) as its first parameter.
<Note>
The `postRender` hooks is rarely used.
</Note>

View file

@ -0,0 +1,16 @@
---
title: postRender
---
The `postRender` hook is triggered after the SVG is rendered.
Like the `preRender` hook, it receives [the SVG object](/api/svg) as its first parameter.
<Note>
The `postRender` hooks is rarely used.
</Note>

View file

@ -0,0 +1,16 @@
---
title: postRender
---
The `postRender` hook is triggered after the SVG is rendered.
Like the `preRender` hook, it receives [the SVG object](/api/svg) as its first parameter.
<Note>
The `postRender` hooks is rarely used.
</Note>

View file

@ -0,0 +1,20 @@
---
title: postSample
---
The `postSample` hook runs just after your pattern is sampled. Your plugin will receive the Pattern object.
It is triggered just before the end of either:
- the [Pattern.sampleOption()](/reference/api/pattern/#sampleoption) method
- the [Pattern.sampleMeasurement()](/reference/api/pattern/#samplemeasurement) method
- the [Pattern.sampleModels()](/reference/api/pattern/#samplemodels) method
<Note>
The `postSample` hook is rarely used.
</Note>

View file

@ -0,0 +1,19 @@
---
title: postSample
---
The `postSample` hook runs just after your pattern is sampled.
Your plugin will receive the Pattern object.
It is triggered just before the end of either:
- the [Pattern.sampleOption()](/reference/api/pattern/#sampleoption) method
- the [Pattern.sampleMeasurement()](/reference/api/pattern/#samplemeasurement) method
- the [Pattern.sampleModels()](/reference/api/pattern/#samplemodels) method
<Note>
The `postSample` hook is rarely used.
</Note>

View file

@ -0,0 +1,20 @@
---
title: postSample
---
The `postSample` hook runs just after your pattern is sampled. Your plugin will receive the Pattern object.
It is triggered just before the end of either:
- the [Pattern.sampleOption()](/reference/api/pattern/#sampleoption) method
- the [Pattern.sampleMeasurement()](/reference/api/pattern/#samplemeasurement) method
- the [Pattern.sampleModels()](/reference/api/pattern/#samplemodels) method
<Note>
The `postSample` hook is rarely used.
</Note>

View file

@ -0,0 +1,20 @@
---
title: postSample
---
The `postSample` hook runs just after your pattern is sampled. Your plugin will receive the Pattern object.
It is triggered just before the end of either:
- the [Pattern.sampleOption()](/reference/api/pattern/#sampleoption) method
- the [Pattern.sampleMeasurement()](/reference/api/pattern/#samplemeasurement) method
- the [Pattern.sampleModels()](/reference/api/pattern/#samplemodels) method
<Note>
The `postSample` hook is rarely used.
</Note>

View file

@ -0,0 +1,20 @@
---
title: postSample
---
The `postSample` hook runs just after your pattern is sampled. Your plugin will receive the Pattern object.
It is triggered just before the end of either:
- the [Pattern.sampleOption()](/reference/api/pattern/#sampleoption) method
- the [Pattern.sampleMeasurement()](/reference/api/pattern/#samplemeasurement) method
- the [Pattern.sampleModels()](/reference/api/pattern/#samplemodels) method
<Note>
The `postSample` hook is rarely used.
</Note>

View file

@ -0,0 +1,14 @@
---
title: preDraft
---
The `preDraft` hook runs just before your pattern is drafted.
Your plugin will receive the Pattern object.
<Note>
The `preDraft` hook is rarely used.
</Note>

View file

@ -0,0 +1,13 @@
---
title: preDraft
---
The `preDraft` hook runs just before your pattern is drafted.
Your plugin will receive the Pattern object.
<Note>
The `preDraft` hook is rarely used.
</Note>

View file

@ -0,0 +1,14 @@
---
title: preDraft
---
The `preDraft` hook runs just before your pattern is drafted.
Your plugin will receive the Pattern object.
<Note>
The `preDraft` hook is rarely used.
</Note>

View file

@ -0,0 +1,14 @@
---
title: preDraft
---
The `preDraft` hook runs just before your pattern is drafted.
Your plugin will receive the Pattern object.
<Note>
The `preDraft` hook is rarely used.
</Note>

View file

@ -0,0 +1,14 @@
---
title: preDraft
---
The `preDraft` hook runs just before your pattern is drafted.
Your plugin will receive the Pattern object.
<Note>
The `preDraft` hook is rarely used.
</Note>

View file

@ -0,0 +1,9 @@
---
title: preRender
---
The `preRender` hook is triggered just before your pattern is rendered to SVG.
Your hook method will receive [the SVG object](/api/svg) as its first parameter.
It is typically used to change the result of the render, for example by adding CSS to the SVG output.

View file

@ -0,0 +1,9 @@
---
title: preRender
---
The `preRender` hook is triggered just before your pattern is rendered to SVG.
Your hook method will receive [the SVG object](/api/svg) as its first parameter.
It is typically used to change the result of the render, for example by adding CSS to the SVG output.

View file

@ -0,0 +1,9 @@
---
title: preRender
---
The `preRender` hook is triggered just before your pattern is rendered to SVG.
Your hook method will receive [the SVG object](/api/svg) as its first parameter.
It is typically used to change the result of the render, for example by adding CSS to the SVG output.

View file

@ -0,0 +1,9 @@
---
title: preRender
---
The `preRender` hook is triggered just before your pattern is rendered to SVG.
Your hook method will receive [the SVG object](/api/svg) as its first parameter.
It is typically used to change the result of the render, for example by adding CSS to the SVG output.

View file

@ -0,0 +1,9 @@
---
title: preRender
---
The `preRender` hook is triggered just before your pattern is rendered to SVG.
Your hook method will receive [the SVG object](/api/svg) as its first parameter.
It is typically used to change the result of the render, for example by adding CSS to the SVG output.

View file

@ -0,0 +1,20 @@
---
title: preSample
---
The `preSample` hook runs just before your pattern is sampled.
It is triggered at the very start of either:
- the [Pattern.sampleOption()](/reference/api/pattern/#sampleoption) method
- the [Pattern.sampleMeasurement()](/reference/api/pattern/#samplemeasurement) method
- the [Pattern.sampleModels()](/reference/api/pattern/#samplemodels) method
Your plugin will receive the Pattern object.
<Note>
The `preSample` hook is rarely used.
</Note>

View file

@ -0,0 +1,19 @@
---
title: preSample
---
The `preSample` hook runs just before your pattern is sampled.
It is triggered at the very start of either:
- the [Pattern.sampleOption()](/reference/api/pattern/#sampleoption) method
- the [Pattern.sampleMeasurement()](/reference/api/pattern/#samplemeasurement) method
- the [Pattern.sampleModels()](/reference/api/pattern/#samplemodels) method
Your plugin will receive the Pattern object.
<Note>
The `preSample` hook is rarely used.
</Note>

View file

@ -0,0 +1,20 @@
---
title: preSample
---
The `preSample` hook runs just before your pattern is sampled.
It is triggered at the very start of either:
- the [Pattern.sampleOption()](/reference/api/pattern/#sampleoption) method
- the [Pattern.sampleMeasurement()](/reference/api/pattern/#samplemeasurement) method
- the [Pattern.sampleModels()](/reference/api/pattern/#samplemodels) method
Your plugin will receive the Pattern object.
<Note>
The `preSample` hook is rarely used.
</Note>

View file

@ -0,0 +1,20 @@
---
title: preSample
---
The `preSample` hook runs just before your pattern is sampled.
It is triggered at the very start of either:
- the [Pattern.sampleOption()](/reference/api/pattern/#sampleoption) method
- the [Pattern.sampleMeasurement()](/reference/api/pattern/#samplemeasurement) method
- the [Pattern.sampleModels()](/reference/api/pattern/#samplemodels) method
Your plugin will receive the Pattern object.
<Note>
The `preSample` hook is rarely used.
</Note>

View file

@ -0,0 +1,20 @@
---
title: preSample
---
The `preSample` hook runs just before your pattern is sampled.
It is triggered at the very start of either:
- the [Pattern.sampleOption()](/reference/api/pattern/#sampleoption) method
- the [Pattern.sampleMeasurement()](/reference/api/pattern/#samplemeasurement) method
- the [Pattern.sampleModels()](/reference/api/pattern/#samplemodels) method
Your plugin will receive the Pattern object.
<Note>
The `preSample` hook is rarely used.
</Note>