1
0
Fork 0
freesewing/packages/freesewing.dev/prebuild/mdx.en.js
2021-12-12 12:04:38 +01:00

2541 lines
No EOL
88 KiB
JavaScript

export default {
"contributors/code-of-conduct": {
"title": "Code of Conduct",
"for": "contributors",
"icons": [
"face",
"heart"
],
"about": "FreeSewing's code of conduct is based on the [contributor covenant](https://www.contributor-covenant.org/)\n",
"intro": "Upholding our Code of Conduct is a requirement for all FreeSewing contributors",
"slug": "contributors/code-of-conduct",
"order": "Code of Conduct"
},
"contributors/code-of-conduct/enforcement-guidelines/correction": {
"slug": "contributors/code-of-conduct/enforcement-guidelines/correction"
},
"contributors/code-of-conduct/enforcement-guidelines": {
"slug": "contributors/code-of-conduct/enforcement-guidelines"
},
"contributors/code-of-conduct/enforcement-guidelines/permanent-ban": {
"slug": "contributors/code-of-conduct/enforcement-guidelines/permanent-ban"
},
"contributors/code-of-conduct/enforcement-guidelines/temporary-ban": {
"slug": "contributors/code-of-conduct/enforcement-guidelines/temporary-ban"
},
"contributors/code-of-conduct/enforcement-guidelines/warning": {
"title": "Warning",
"order": "20Warning",
"intro": "A violation through a single incident or series of actions.",
"slug": "contributors/code-of-conduct/enforcement-guidelines/warning"
},
"contributors/code-of-conduct/enforcement-responsibilities": {
"slug": "contributors/code-of-conduct/enforcement-responsibilities"
},
"contributors/code-of-conduct/enforcement": {
"slug": "contributors/code-of-conduct/enforcement"
},
"contributors/code-of-conduct/our-pledge": {
"slug": "contributors/code-of-conduct/our-pledge"
},
"contributors/code-of-conduct/our-standards": {
"title": "Our standards",
"order": "20Our standards",
"intro": "Examples of behavior that contributes to a positive environment for our community include:",
"slug": "contributors/code-of-conduct/our-standards"
},
"contributors/code-of-conduct/scope": {
"slug": "contributors/code-of-conduct/scope"
},
"contributors": {
"title": "For contributors",
"order": "1110For contributors",
"intro": "Thank you for being part of our community, and for wanting to contribute! ❤️",
"slug": "contributors"
},
"contributors/help": {
"slug": "contributors/help"
},
"contributors/terms/backend": {
"title": "Backend",
"intro": "The FreeSewing backend handles all user data for freesewing.org.",
"slug": "contributors/terms/backend",
"order": "Backend"
},
"contributors/terms/commit": {
"title": "Commit",
"intro": "A commit is made every time somebody published an update to our source code.",
"slug": "contributors/terms/commit",
"order": "Commit"
},
"contributors/terms/contributor-call": {
"slug": "contributors/terms/contributor-call"
},
"contributors/terms/contributor": {
"slug": "contributors/terms/contributor"
},
"contributors/terms/design-pattern": {
"slug": "contributors/terms/design-pattern"
},
"contributors/terms/developer": {
"title": "Developer",
"intro": "Anybody who works with software code or wants to learn to do so.",
"slug": "contributors/terms/developer",
"order": "Developer"
},
"contributors/terms/discord": {
"title": "Discord",
"intro": "The name of our chat provider that powers our chat at https://discord.freesewing.org/",
"slug": "contributors/terms/discord",
"order": "Discord"
},
"contributors/terms/editor": {
"slug": "contributors/terms/editor"
},
"contributors/terms": {
"slug": "contributors/terms"
},
"contributors/terms/express": {
"title": "Express",
"intro": "Express is a web framework for NodeJS.",
"slug": "contributors/terms/express",
"order": "Express"
},
"contributors/terms/freesewing.dev": {
"title": "freesewing.dev",
"intro": "Our website for developers.",
"slug": "contributors/terms/freesewing.dev",
"order": "freesewing.dev"
},
"contributors/terms/freesewing.org": {
"title": "freesewing.org",
"intro": "Our website for makers.",
"slug": "contributors/terms/freesewing.org",
"order": "freesewing.org"
},
"contributors/terms/freesewing": {
"title": "FreeSewing",
"intro": "FreeSewing refers to the community-driven open source project.",
"slug": "contributors/terms/freesewing",
"order": "FreeSewing"
},
"contributors/terms/frontend": {
"title": "Frontend",
"intro": "A user-facing interface. Can refer to one of our websites, or our development environment.",
"slug": "contributors/terms/frontend",
"order": "Frontend"
},
"contributors/terms/gatsby": {
"title": "Gatsby",
"intro": "Gatsby is a static-site generator for React.",
"slug": "contributors/terms/gatsby",
"order": "Gatsby"
},
"contributors/terms/i18n": {
"slug": "contributors/terms/i18n"
},
"contributors/terms/issue": {
"slug": "contributors/terms/issue"
},
"contributors/terms/javascript": {
"slug": "contributors/terms/javascript"
},
"contributors/terms/made-to-measure": {
"title": "Made-to-measure",
"intro": "Made to someone's (body) measurements, rather than based on specific sizes.",
"slug": "contributors/terms/made-to-measure",
"order": "Made-to-measure"
},
"contributors/terms/markdown": {
"slug": "contributors/terms/markdown"
},
"contributors/terms/monorepo": {
"slug": "contributors/terms/monorepo"
},
"contributors/terms/node": {
"title": "Node",
"intro": "Node (or NodeJS) is a Javascript runtime that allows to use the language outside the browser.",
"slug": "contributors/terms/node",
"order": "Node"
},
"contributors/terms/parametric-pattern-design": {
"slug": "contributors/terms/parametric-pattern-design"
},
"contributors/terms/patron": {
"title": "Patron",
"intro": "A person who supports FreeSewing financially.",
"slug": "contributors/terms/patron",
"order": "Patron"
},
"contributors/terms/plugin": {
"title": "Plugin",
"intro": "An extension to FreeSewing core that provides an extra feature of functionality.",
"slug": "contributors/terms/plugin",
"order": "Plugin"
},
"contributors/terms/pull-request": {
"title": "Pull request",
"intro": "A pull request is a proposal to commit changes to a repository.",
"slug": "contributors/terms/pull-request",
"order": "Pull request"
},
"contributors/terms/react": {
"title": "React",
"intro": "React is a Javascript framework to build user interfaces on the web.",
"slug": "contributors/terms/react",
"order": "React"
},
"contributors/terms/repo": {
"title": "Repo",
"intro": "Short for repository .",
"slug": "contributors/terms/repo",
"order": "Repo"
},
"contributors/terms/repository": {
"title": "Repository",
"intro": "We develop our software collaboratively, and all code is available in Github in so-called repositories.",
"slug": "contributors/terms/repository",
"order": "Repository"
},
"contributors/terms/tiler": {
"slug": "contributors/terms/tiler"
},
"contributors/terms/translator": {
"title": "Translator",
"intro": "Somebody who helps with our i18n efforts by translating from English to other languages.",
"slug": "contributors/terms/translator",
"order": "Translator"
},
"contributors/ways-to-contribute/body-ambassador": {
"slug": "contributors/ways-to-contribute/body-ambassador"
},
"contributors/ways-to-contribute/community-building": {
"slug": "contributors/ways-to-contribute/community-building"
},
"contributors/ways-to-contribute/design-patterns": {
"title": "Design sewing patterns",
"intro": "Everybody wants us to add more patterns. But somebody has to design them.",
"slug": "contributors/ways-to-contribute/design-patterns",
"order": "Design sewing patterns"
},
"contributors/ways-to-contribute/develop-patterns": {
"slug": "contributors/ways-to-contribute/develop-patterns"
},
"contributors/ways-to-contribute/devops": {
"slug": "contributors/ways-to-contribute/devops"
},
"contributors/ways-to-contribute": {
"slug": "contributors/ways-to-contribute"
},
"contributors/ways-to-contribute/illustrations": {
"slug": "contributors/ways-to-contribute/illustrations"
},
"contributors/ways-to-contribute/language-ambassador": {
"slug": "contributors/ways-to-contribute/language-ambassador"
},
"contributors/ways-to-contribute/pattern-ambassador": {
"title": "Pattern ambassador",
"intro": "You could take charge of a specific FreeSewing design/pattern.",
"slug": "contributors/ways-to-contribute/pattern-ambassador",
"order": "Pattern ambassador"
},
"contributors/ways-to-contribute/pattern-testing": {
"title": "Pattern testing",
"intro": "You could make (a muslin for) our patterns prior to release to make sure everything is ok.",
"slug": "contributors/ways-to-contribute/pattern-testing",
"order": "Pattern testing"
},
"contributors/ways-to-contribute/project-management": {
"title": "Project management",
"intro": "There's a lot going on within the FreeSewing project and it's easy to forget about something.",
"slug": "contributors/ways-to-contribute/project-management",
"order": "Project management"
},
"contributors/ways-to-contribute/proofreading": {
"slug": "contributors/ways-to-contribute/proofreading"
},
"contributors/ways-to-contribute/report-bugs": {
"slug": "contributors/ways-to-contribute/report-bugs"
},
"contributors/ways-to-contribute/showcase-our-patterns": {
"title": "Showcase our patterns",
"intro": "Anytime somebody has made one of our patterns, we like to showcase it on freesewing.org .",
"slug": "contributors/ways-to-contribute/showcase-our-patterns",
"order": "Showcase our patterns"
},
"contributors/ways-to-contribute/technical-writing/code": {
"title": "Writing for freesewing.dev",
"intro": "You could write documentation for freesewing.dev, our developers website.",
"slug": "contributors/ways-to-contribute/technical-writing/code",
"order": "Writing for freesewing.dev"
},
"contributors/ways-to-contribute/technical-writing": {
"title": "Technical writing",
"intro": "FIXME_no_intro",
"slug": "contributors/ways-to-contribute/technical-writing",
"order": "Technical writing"
},
"contributors/ways-to-contribute/technical-writing/patterns": {
"title": "Writing for freesewing.org",
"intro": "You could write documentation for freesewing.org, our makers website.",
"slug": "contributors/ways-to-contribute/technical-writing/patterns",
"order": "Writing for freesewing.org"
},
"contributors/ways-to-contribute/translation": {
"slug": "contributors/ways-to-contribute/translation"
},
"contributors/ways-to-contribute/triage-issues": {
"title": "Triage issues",
"intro": "Triaging issues is a great way to get involved in FreeSewing. You can do tasks such as:",
"slug": "contributors/ways-to-contribute/triage-issues",
"order": "Triage issues"
},
"contributors/ways-to-contribute/webdesign": {
"title": "UI / UX Webdesign",
"intro": "You could help us make our website and tools pretty and improve the user experience.",
"slug": "contributors/ways-to-contribute/webdesign",
"order": "UI / UX Webdesign"
},
"developers/backend": {
"title": "The freesewing backend",
"intro": "Under construction",
"slug": "developers/backend",
"order": "The freesewing backend"
},
"developers/dev": {
"title": "The freesewing.dev website",
"intro": "Under construction",
"slug": "developers/dev",
"order": "The freesewing.dev website"
},
"developers": {
"title": "For developers",
"order": "1120For developers",
"intro": "Welcome to the FreeSewing documentation for developers.",
"slug": "developers"
},
"developers/org": {
"title": "The freesewing.org website",
"intro": "Under construction",
"slug": "developers/org",
"order": "The freesewing.org website"
},
"developers/svg2pdf": {
"title": "The freesewing on-demand tiler",
"intro": "Under construction",
"slug": "developers/svg2pdf",
"order": "The freesewing on-demand tiler"
},
"developers/tiler": {
"title": "Our tile command line tool",
"intro": "Under construction",
"slug": "developers/tiler",
"order": "Our tile command line tool"
},
"editors/content": {
"title": "Content sources",
"intro": "As an editor, you need to know where you can find/edit what type of content.",
"slug": "editors/content",
"order": "Content sources"
},
"editors": {
"title": "For editors",
"order": "1130For editors",
"intro": "Content is king, and as an content is your baby.",
"slug": "editors"
},
"editors/howtos/blogpost": {
"title": "Adding a blog post",
"for": "editors",
"intro": "Blog posts have been migrated to Strapi , a headless CMS system.",
"slug": "editors/howtos/blogpost",
"order": "Adding a blog post"
},
"editors/howtos": {
"title": "Common tasks for editors",
"intro": "Below is a list of commons tasks for editors",
"slug": "editors/howtos",
"order": "Common tasks for editors"
},
"editors/howtos/frontmatter/about": {
"title": "About frontmatter",
"order": "10About frontmatter",
"intro": "Frontmatter is a way to add metadata to markdown documents.",
"slug": "editors/howtos/frontmatter/about"
},
"editors/howtos/frontmatter": {
"slug": "editors/howtos/frontmatter"
},
"editors/howtos/frontmatter/lists": {
"slug": "editors/howtos/frontmatter/lists"
},
"editors/howtos/frontmatter/multi-line": {
"slug": "editors/howtos/frontmatter/multi-line"
},
"editors/howtos/frontmatter/structure": {
"slug": "editors/howtos/frontmatter/structure"
},
"editors/howtos/showcase": {
"title": "Adding a showcase on freesewing.org",
"for": "editors",
"intro": "Showcase posts have been migrated to Strapi , a headless CMS system.",
"slug": "editors/howtos/showcase",
"order": "Adding a showcase on freesewing.org"
},
"editors/markdown/code-blocks": {
"slug": "editors/markdown/code-blocks"
},
"editors/markdown/custom-components": {
"title": "Custom components",
"order": "90Custom components",
"intro": "The way we render markdown on our websites is through the use of MDX . This allows us to extend Markdown with our own so-called .",
"slug": "editors/markdown/custom-components"
},
"editors/markdown/custom-components/example": {
"slug": "editors/markdown/custom-components/example"
},
"editors/markdown/custom-components/fixme": {
"title": "Fixme",
"order": "40Fixme",
"intro": "I indicate that something needs work or improvement",
"slug": "editors/markdown/custom-components/fixme"
},
"editors/markdown/custom-components/hashtag": {
"title": "Hashtag",
"order": "60Hashtag",
"intro": "Typically used on our community pages:",
"slug": "editors/markdown/custom-components/hashtag"
},
"editors/markdown/custom-components/note": {
"title": "Note",
"order": "10Note",
"intro": "I point out things",
"slug": "editors/markdown/custom-components/note"
},
"editors/markdown/custom-components/readmore": {
"title": "ReadMore",
"order": "70ReadMore",
"intro": "This component will list child pages of the current page.",
"slug": "editors/markdown/custom-components/readmore"
},
"editors/markdown/custom-components/readmore/example-1": {
"title": "Example page 1",
"intro": "This page is here to illustrate the use of the .",
"slug": "editors/markdown/custom-components/readmore/example-1",
"order": "Example page 1"
},
"editors/markdown/custom-components/readmore/example-2": {
"title": "Example page 2",
"intro": "This page is here to illustrate the use of the .",
"slug": "editors/markdown/custom-components/readmore/example-2",
"order": "Example page 2"
},
"editors/markdown/custom-components/readmore/example-2/sub-example-2-1": {
"title": "Sub-example page 1",
"intro": "This page is here to illustrate the use of the .",
"slug": "editors/markdown/custom-components/readmore/example-2/sub-example-2-1",
"order": "Sub-example page 1"
},
"editors/markdown/custom-components/readmore/example-2/sub-example-2-2": {
"title": "Sub-example page 2",
"intro": "This page is here to illustrate the use of the .",
"slug": "editors/markdown/custom-components/readmore/example-2/sub-example-2-2",
"order": "Sub-example page 2"
},
"editors/markdown/custom-components/tip": {
"title": "Tip",
"order": "20Tip",
"intro": "I give great advice",
"slug": "editors/markdown/custom-components/tip"
},
"editors/markdown/custom-components/warning": {
"title": "Warning",
"order": "30Warning",
"intro": "Ignore me at your own peril",
"slug": "editors/markdown/custom-components/warning"
},
"editors/markdown/custom-components/youtube": {
"title": "YouTube",
"order": "50YouTube",
"intro": "This components will embed videos and playlists responsively.",
"slug": "editors/markdown/custom-components/youtube"
},
"editors/markdown": {
"slug": "editors/markdown"
},
"editors/markdown/headings": {
"title": "Headings",
"order": "40Headings",
"intro": "Prefix your line with a number of # characters to determine the header level.",
"slug": "editors/markdown/headings"
},
"editors/markdown/images": {
"slug": "editors/markdown/images"
},
"editors/markdown/italic-and-bold": {
"title": "Italics and bold",
"order": "30Italics and bold",
"intro": "You can make text or by wrapping it in 1 or 2 asterisk respectively:",
"slug": "editors/markdown/italic-and-bold"
},
"editors/markdown/line-breaks": {
"slug": "editors/markdown/line-breaks"
},
"editors/markdown/links": {
"title": "Links",
"order": "60Links",
"intro": "Links combine square brackets for the link text with round brackets for the destination.",
"slug": "editors/markdown/links"
},
"editors/markdown/lists": {
"title": "Lists",
"order": "50Lists",
"intro": "To make a list, just do as you would in plain text:",
"slug": "editors/markdown/lists"
},
"editors/markdown/tables": {
"title": "Tables",
"order": "70Tables",
"intro": "If you need them, you can create tables too, using a structure as shown below:",
"slug": "editors/markdown/tables"
},
"editors/markdown/text-and-paragraphs": {
"title": "Text and paragraphs",
"order": "10Text and paragraphs",
"intro": "For the most part, you can just write as you would in any other format.",
"slug": "editors/markdown/text-and-paragraphs"
},
"editors/style/colors": {
"slug": "editors/style/colors"
},
"editors/style": {
"title": "Style guide",
"order": "910Style guide",
"intro": "FIXME_no_intro",
"slug": "editors/style"
},
"editors/style/typography": {
"title": "Typography",
"intro": "FIXME_no_intro",
"slug": "editors/style/typography",
"order": "Typography"
},
"editors/style/typography/fonts": {
"title": "Fonts",
"order": "10Fonts",
"intro": "We use three types of fonts:",
"slug": "editors/style/typography/fonts"
},
"editors/style/typography/headings": {
"title": "Headings",
"order": "30Headings",
"intro": "Headings serve two different purposes:",
"slug": "editors/style/typography/headings"
},
"editors/style/typography/text": {
"title": "Text and paragraphs",
"order": "20Text and paragraphs",
"intro": "Text is one of the most important things on the website, so we try to make it look good.",
"slug": "editors/style/typography/text"
},
"guides/best-practices": {
"title": "Design guide",
"order": "300Design guide",
"for": "developers",
"icons": [
"thumbup",
"pattern"
],
"about": "There's often many different ways to do things. Learn about our conventions and best practices",
"goals": [
"Re-using measurement and options names",
"Re-using CSS classes",
"Respecting draft settings",
"Using percentage options where possible",
"Using translation keys for text",
"Constructing paths counter-clockwise"
],
"intro": "Here is a list of best practices when designing patterns:",
"slug": "guides/best-practices"
},
"guides/best-practices/go-counter-clockwise": {
"slug": "guides/best-practices/go-counter-clockwise"
},
"guides/best-practices/respect-draft-settings": {
"slug": "guides/best-practices/respect-draft-settings"
},
"guides/best-practices/reuse-css-classes": {
"slug": "guides/best-practices/reuse-css-classes"
},
"guides/best-practices/reuse-measurements": {
"slug": "guides/best-practices/reuse-measurements"
},
"guides/best-practices/reuse-options": {
"title": "Re-use options",
"order": "20Re-use options",
"intro": "The same arguments for re-using measurements are also (somewhat) true for options.",
"slug": "guides/best-practices/reuse-options"
},
"guides/best-practices/use-percentages": {
"title": "Use percentage options where possible",
"order": "50Use percentage options where possible",
"intro": "When designing patterns, you should refrain from using absolute values.",
"slug": "guides/best-practices/use-percentages"
},
"guides/best-practices/use-translation-keys": {
"title": "Use translation keys, not text",
"order": "60Use translation keys, not text",
"intro": "Don't insert literal text in your patterns. Instead, insert a key that can then be translated.",
"slug": "guides/best-practices/use-translation-keys"
},
"guides": {
"title": "Guides",
"order": "1020Guides",
"intro": "FIXME_no_intro",
"slug": "guides"
},
"guides/patterns/config": {
"slug": "guides/patterns/config"
},
"guides/patterns": {
"slug": "guides/patterns"
},
"guides/patterns/parts": {
"slug": "guides/patterns/parts"
},
"guides/patterns/paths": {
"slug": "guides/patterns/paths"
},
"guides/patterns/pattern": {
"slug": "guides/patterns/pattern"
},
"guides/patterns/points": {
"slug": "guides/patterns/points"
},
"guides/patterns/snippets": {
"slug": "guides/patterns/snippets"
},
"guides/patterns/store": {
"slug": "guides/patterns/store"
},
"guides/plugins/conditionally-loading-build-time-plugins": {
"title": "Conditionally loading build-time plugins",
"order": "30Conditionally loading build-time plugins",
"intro": "You can choose to load your build-time plugin conditionally based on run-time data.",
"slug": "guides/plugins/conditionally-loading-build-time-plugins"
},
"guides/plugins": {
"title": "Plugin guide",
"order": "400Plugin guide",
"icons": [
"logo",
"plugin"
],
"for": "developers",
"about": "This guide shows you everything you need to know to understand plugins in FreeSewing, and create your own.\n",
"goals": [
"Know about build-time plugins vs run-time plugins",
"Understanding plugin structure",
"Hooks and how to use them",
"Using hooks without a plugin",
"Using macros"
],
"intro": "Plugins allow you to extend FreeSewing.",
"slug": "guides/plugins"
},
"guides/plugins/hooks": {
"title": "Hooks",
"order": "60Hooks",
"intro": "A is a lifecycle event. The available hooks are:",
"slug": "guides/plugins/hooks"
},
"guides/plugins/loading-build-time-plugins": {
"slug": "guides/plugins/loading-build-time-plugins"
},
"guides/plugins/loading-run-time-plugins": {
"slug": "guides/plugins/loading-run-time-plugins"
},
"guides/plugins/macros": {
"title": "Macros",
"order": "90Macros",
"intro": "Plugin structure for macros is similar, with a few changes:",
"slug": "guides/plugins/macros"
},
"guides/plugins/plugin-structure": {
"title": "Plugin structure",
"order": "50Plugin structure",
"intro": "Plugins can do two things:",
"slug": "guides/plugins/plugin-structure"
},
"guides/plugins/types-of-plugins": {
"title": "Types of plugins",
"order": "10Types of plugins",
"intro": "Plugins come in two flavours:",
"slug": "guides/plugins/types-of-plugins"
},
"guides/plugins/using-hooks-more-than-once": {
"slug": "guides/plugins/using-hooks-more-than-once"
},
"guides/plugins/using-hooks-without-plugin": {
"slug": "guides/plugins/using-hooks-without-plugin"
},
"guides/plugins/using-hooks": {
"slug": "guides/plugins/using-hooks"
},
"guides/prerequisites/bezier-curves": {
"slug": "guides/prerequisites/bezier-curves"
},
"guides/prerequisites/coordinate-system": {
"slug": "guides/prerequisites/coordinate-system"
},
"guides/prerequisites": {
"slug": "guides/prerequisites"
},
"guides/prerequisites/parametric-pattern-design": {
"slug": "guides/prerequisites/parametric-pattern-design"
},
"guides/prerequisites/svg": {
"slug": "guides/prerequisites/svg"
},
"guides/prerequisites/units": {
"slug": "guides/prerequisites/units"
},
"howtos/code/accessing-measurements": {
"title": "Accessing measurements",
"for": "developers",
"about": "Shows you how to access user measurements from inside your pattern",
"intro": "Measurements are stored in pattern.settings.measurements .",
"slug": "howtos/code/accessing-measurements",
"order": "Accessing measurements"
},
"howtos/code/accessing-options": {
"title": "Accessing user options",
"for": "developers",
"about": "Shows you how to access user options from inside your pattern",
"intro": "Options are stored in pattern.settings.options .",
"slug": "howtos/code/accessing-options",
"order": "Accessing user options"
},
"howtos/code/adding-instructions": {
"slug": "howtos/code/adding-instructions"
},
"howtos/code/adding-parts": {
"slug": "howtos/code/adding-parts"
},
"howtos/code/adding-paths": {
"slug": "howtos/code/adding-paths"
},
"howtos/code/adding-points": {
"slug": "howtos/code/adding-points"
},
"howtos/code/adding-snippets": {
"slug": "howtos/code/adding-snippets"
},
"howtos/code/adding-text": {
"title": "Adding text",
"for": "developers",
"about": "Shows you how to add text to your pattern",
"intro": "SVG is pretty great, but its text handling leaves much to be desired.",
"slug": "howtos/code/adding-text",
"order": "Adding text"
},
"howtos/code/attributes": {
"slug": "howtos/code/attributes"
},
"howtos/code/create-new-design": {
"slug": "howtos/code/create-new-design"
},
"howtos/code/dependencies": {
"slug": "howtos/code/dependencies"
},
"howtos/code/drawing-circles": {
"slug": "howtos/code/drawing-circles"
},
"howtos/code": {
"title": "Common code challenges",
"intro": "Below is a list of examples of how to implement common tasks in code:",
"slug": "howtos/code",
"order": "Common code challenges"
},
"howtos/code/extend-pattern": {
"title": "Create a new design based on an existing design",
"for": "developers",
"about": "Shows how to create a variation of a pre-existing design",
"intro": "To be able to extend existing patterns, you will have to access them on your local machine. There are two ways to do this:",
"slug": "howtos/code/extend-pattern",
"order": "Create a new design based on an existing design"
},
"howtos/code/hide-paths": {
"title": "Hide paths from an inherited part",
"for": "developers",
"about": "When you inherit a part, it comes with a bunch of paths. Here'show to hide them",
"intro": "The example below is from Aaron which inherits from Brian.",
"slug": "howtos/code/hide-paths",
"order": "Hide paths from an inherited part"
},
"howtos/code/inheritance": {
"slug": "howtos/code/inheritance"
},
"howtos/code/inject": {
"slug": "howtos/code/inject"
},
"howtos/code/macros": {
"slug": "howtos/code/macros"
},
"howtos/code/remove-paths": {
"title": "Remove paths from an inherited part",
"for": "developers",
"about": "When you inherit a part, it comes with a bunch of paths. Here'show to remove them",
"intro": "FIXME_no_intro",
"slug": "howtos/code/remove-paths",
"order": "Remove paths from an inherited part"
},
"howtos/code/shared-dimensions": {
"slug": "howtos/code/shared-dimensions"
},
"howtos/code/shorthand": {
"title": "Using shorthand",
"for": "developers",
"about": "Shows you how to use our shorthand method and notation",
"intro": "The Part.shorthand() method will become your best friend.",
"slug": "howtos/code/shorthand",
"order": "Using shorthand"
},
"howtos/code/store": {
"slug": "howtos/code/store"
},
"howtos/code/storing-path-length": {
"slug": "howtos/code/storing-path-length"
},
"howtos/design": {
"title": "Common design challenges",
"intro": "Below is a list of examples of how to implement common design challenges in code:",
"slug": "howtos/design",
"order": "Common design challenges"
},
"howtos/design/fit-sleeve": {
"slug": "howtos/design/fit-sleeve"
},
"howtos/design/seam-allowance": {
"slug": "howtos/design/seam-allowance"
},
"howtos/design/slash-spread": {
"slug": "howtos/design/slash-spread"
},
"howtos/design/sprinkle-snippets": {
"title": "Add several of the same snippets with the sprinkle macro",
"for": "developers",
"about": "Adding multiple snippets doesn't need to be a chore with this handy macro",
"intro": "Adding multiple snippets at the same time results in a lot of repetitive code.",
"slug": "howtos/design/sprinkle-snippets",
"order": "Add several of the same snippets with the sprinkle macro"
},
"howtos/dev": {
"title": "Setting up your development environment",
"intro": "FIXME_no_intro",
"slug": "howtos/dev",
"order": "Setting up your development environment"
},
"howtos/dev/freesewing-dev": {
"title": "Working on freesewing.dev",
"for": "developers",
"about": "Shows you how to setup your development environment to work on freesewing.dev, our website for developers",
"intro": "To work on freesewing.dev, checkout the repository:",
"slug": "howtos/dev/freesewing-dev",
"order": "Working on freesewing.dev"
},
"howtos/dev/freesewing-org": {
"title": "Working on freesewing.org",
"for": "developers",
"about": "Shows you how to setup your development environment to work on freesewing.org, our website for makers",
"intro": "To work on freesewing.org, checkout the repository:",
"slug": "howtos/dev/freesewing-org",
"order": "Working on freesewing.org"
},
"howtos": {
"title": "Howtos",
"order": "1020Howtos",
"intro": "FIXME_no_intro",
"slug": "howtos"
},
"reference/api/attributes/add": {
"title": "add()",
"intro": "Adds value to the attribute identified by key .",
"slug": "reference/api/attributes/add",
"order": "add()"
},
"reference/api/attributes/clone": {
"title": "clone()",
"intro": "Returns a new Attributes object that is a deep copy of this one.",
"slug": "reference/api/attributes/clone",
"order": "clone()"
},
"reference/api/attributes": {
"title": "Attributes",
"order": "40Attributes",
"intro": "Attributes is an object that holds attributes for a variety of other objects.",
"slug": "reference/api/attributes"
},
"reference/api/attributes/get": {
"title": "get()",
"intro": "Will return the value of attribute stored under key , or false if it's not set.",
"slug": "reference/api/attributes/get",
"order": "get()"
},
"reference/api/attributes/getasarray": {
"title": "getAsArray()",
"intro": "Will return an array with the value of attribute stored under key , or false if it's not set.",
"slug": "reference/api/attributes/getasarray",
"order": "getAsArray()"
},
"reference/api/attributes/remove": {
"title": "remove()",
"intro": "Removes the attribute values under key and returns the Attributes object.",
"slug": "reference/api/attributes/remove",
"order": "remove()"
},
"reference/api/attributes/set": {
"title": "set()",
"intro": "Sets the attribute identified by key to value value .",
"slug": "reference/api/attributes/set",
"order": "set()"
},
"reference/api/attributes/setifunset": {
"title": "setIfUnset()",
"intro": "Sets the attribute identified by key to value value but only if it's currently unset ( undefined ).",
"slug": "reference/api/attributes/setifunset",
"order": "setIfUnset()"
},
"reference/api/design": {
"slug": "reference/api/design"
},
"reference/api": {
"slug": "reference/api"
},
"reference/api/part": {
"slug": "reference/api/part"
},
"reference/api/part/getid": {
"slug": "reference/api/part/getid"
},
"reference/api/part/raise/debug": {
"slug": "reference/api/part/raise/debug"
},
"reference/api/part/raise": {
"slug": "reference/api/part/raise"
},
"reference/api/part/raise/error": {
"slug": "reference/api/part/raise/error"
},
"reference/api/part/raise/info": {
"slug": "reference/api/part/raise/info"
},
"reference/api/part/raise/warning": {
"slug": "reference/api/part/raise/warning"
},
"reference/api/part/shorthand": {
"slug": "reference/api/part/shorthand"
},
"reference/api/part/units": {
"slug": "reference/api/part/units"
},
"reference/api/path/_curve": {
"slug": "reference/api/path/_curve"
},
"reference/api/path/attr": {
"title": "attr()",
"intro": "This Path.attr() method calls this.attributes.add() under the hood, but returns the Path object.",
"slug": "reference/api/path/attr",
"order": "attr()"
},
"reference/api/path/clone": {
"title": "clone()",
"intro": "Returns a new Path that is a deep copy of this path.",
"slug": "reference/api/path/clone",
"order": "clone()"
},
"reference/api/path/close": {
"title": "close()",
"intro": "Closes a path by drawing a straight line from the current position to the path's start.",
"slug": "reference/api/path/close",
"order": "close()"
},
"reference/api/path/curve": {
"title": "curve()",
"intro": "Draws a cubic Bezier curve from the current position via two control points to a given endpoint.",
"slug": "reference/api/path/curve",
"order": "curve()"
},
"reference/api/path/curve_": {
"slug": "reference/api/path/curve_"
},
"reference/api/path/divide": {
"slug": "reference/api/path/divide"
},
"reference/api/path/edge": {
"title": "edge()",
"intro": "Returns the Point object at the edge of the path you specify. Edge must be one of:",
"slug": "reference/api/path/edge",
"order": "edge()"
},
"reference/api/path": {
"title": "Path",
"order": "30Path",
"intro": "A path represents an SVG path; The lines and curves on our pattern.",
"slug": "reference/api/path"
},
"reference/api/path/end": {
"title": "end()",
"intro": "Returns the Point object at the end of the path.",
"slug": "reference/api/path/end",
"order": "end()"
},
"reference/api/path/insop": {
"title": "insop()",
"intro": "Injects a Path into the noop with id id .",
"slug": "reference/api/path/insop",
"order": "insop()"
},
"reference/api/path/intersects": {
"title": "intersects()",
"intro": "Returns the Point object(s) where the path intersects with a path you pass it.",
"slug": "reference/api/path/intersects",
"order": "intersects()"
},
"reference/api/path/intersectsx": {
"title": "intersectsX()",
"intro": "Returns the Point object(s) where the path intersects with a given X-value.",
"slug": "reference/api/path/intersectsx",
"order": "intersectsX()"
},
"reference/api/path/intersectsy": {
"title": "intersectsY()",
"intro": "Returns the Point object(s) where the path intersects with a given Y-value.",
"slug": "reference/api/path/intersectsy",
"order": "intersectsY()"
},
"reference/api/path/join": {
"title": "join()",
"intro": "Joins this path with another path.",
"slug": "reference/api/path/join",
"order": "join()"
},
"reference/api/path/length": {
"title": "length()",
"intro": "Returns the length of the path.",
"slug": "reference/api/path/length",
"order": "length()"
},
"reference/api/path/line": {
"title": "line()",
"intro": "Draws a straight line from the current position to a given point.",
"slug": "reference/api/path/line",
"order": "line()"
},
"reference/api/path/move": {
"title": "move()",
"intro": "Moves to a given point without drawing a line.",
"slug": "reference/api/path/move",
"order": "move()"
},
"reference/api/path/noop": {
"title": "noop()",
"intro": "Adds a placeholder path opertion. A noop operation does nothing, but is intended to be replaced later with Path.insop() .",
"slug": "reference/api/path/noop",
"order": "noop()"
},
"reference/api/path/offset": {
"title": "offset()",
"intro": "Returns a new Path that is offset by distance from the original path.",
"slug": "reference/api/path/offset",
"order": "offset()"
},
"reference/api/path/reverse": {
"title": "reverse()",
"intro": "Returns a path that is the reversed version of this path. As in, start becomes end, and end becomes start.",
"slug": "reference/api/path/reverse",
"order": "reverse()"
},
"reference/api/path/setrender": {
"slug": "reference/api/path/setrender"
},
"reference/api/path/shiftalong": {
"title": "shiftAlong()",
"intro": "Returns a point that lies at distance travelled along the path.",
"slug": "reference/api/path/shiftalong",
"order": "shiftAlong()"
},
"reference/api/path/shiftfractionalong": {
"title": "shiftFractionAlong()",
"intro": "Returns a point that lies at fraction of the length of the path travelled along the path.",
"slug": "reference/api/path/shiftfractionalong",
"order": "shiftFractionAlong()"
},
"reference/api/path/split": {
"title": "split",
"intro": "Splits a path in two halves, on a point along that path that you pass it.",
"slug": "reference/api/path/split",
"order": "split"
},
"reference/api/path/start": {
"title": "start()",
"intro": "Returns the Point object at the start of the path.",
"slug": "reference/api/path/start",
"order": "start()"
},
"reference/api/path/translate": {
"title": "translate()",
"intro": "Returns a path with a translate transform applied.",
"slug": "reference/api/path/translate",
"order": "translate()"
},
"reference/api/path/trim": {
"title": "trim()",
"intro": "Returns a new Path that is this path with overlapping parts removed.",
"slug": "reference/api/path/trim",
"order": "trim()"
},
"reference/api/pattern/draft": {
"slug": "reference/api/pattern/draft"
},
"reference/api/pattern": {
"slug": "reference/api/pattern"
},
"reference/api/pattern/getrenderprops": {
"slug": "reference/api/pattern/getrenderprops"
},
"reference/api/pattern/on": {
"slug": "reference/api/pattern/on"
},
"reference/api/pattern/render": {
"slug": "reference/api/pattern/render"
},
"reference/api/pattern/sample": {
"slug": "reference/api/pattern/sample"
},
"reference/api/pattern/samplemeasurement": {
"slug": "reference/api/pattern/samplemeasurement"
},
"reference/api/pattern/samplemodels": {
"slug": "reference/api/pattern/samplemodels"
},
"reference/api/pattern/sampleoption": {
"slug": "reference/api/pattern/sampleoption"
},
"reference/api/pattern/use": {
"slug": "reference/api/pattern/use"
},
"reference/api/point/angle": {
"slug": "reference/api/point/angle"
},
"reference/api/point/attr": {
"slug": "reference/api/point/attr"
},
"reference/api/point/clone": {
"title": "Point.clone()",
"intro": "Returns a new Point with the same coordinates and attributes as the original point.",
"slug": "reference/api/point/clone",
"order": "Point.clone()"
},
"reference/api/point/copy": {
"slug": "reference/api/point/copy"
},
"reference/api/point/dist": {
"title": "Point.dist()",
"intro": "A point's dist() method returns the distance (in mm) between this point and the point you pass it.",
"slug": "reference/api/point/dist",
"order": "Point.dist()"
},
"reference/api/point/dx": {
"title": "Point.dx()",
"intro": "A point's dx() method returns the delta (in mm) along the X-axis between this point and the point you pass it.",
"slug": "reference/api/point/dx",
"order": "Point.dx()"
},
"reference/api/point/dy": {
"title": "Point.dy()",
"intro": "A point's dy() method returns the delta (in mm) along the Y-axis between this point and the point you pass it.",
"slug": "reference/api/point/dy",
"order": "Point.dy()"
},
"reference/api/point": {
"title": "Point",
"order": "25Point",
"intro": "A Point object represents a point on a 2D plane with an X and Y axis.",
"slug": "reference/api/point"
},
"reference/api/point/flipx": {
"slug": "reference/api/point/flipx"
},
"reference/api/point/flipy": {
"slug": "reference/api/point/flipy"
},
"reference/api/point/rotate": {
"slug": "reference/api/point/rotate"
},
"reference/api/point/shift": {
"slug": "reference/api/point/shift"
},
"reference/api/point/shiftfractiontowards": {
"slug": "reference/api/point/shiftfractiontowards"
},
"reference/api/point/shiftoutwards": {
"title": "Point.shiftOutwards()",
"intro": "Returns a new Point that is shifted distance (mm) beyond the target in the direction of the target point.",
"slug": "reference/api/point/shiftoutwards",
"order": "Point.shiftOutwards()"
},
"reference/api/point/shifttowards": {
"title": "Point.shiftTowards()",
"intro": "Returns a new Point that is shifted distance (mm) in the direction of the target .",
"slug": "reference/api/point/shifttowards",
"order": "Point.shiftTowards()"
},
"reference/api/point/sitson": {
"title": "Point.sitsOn()",
"intro": "Returns true if this point has the same coordinates as the point you pass to it.",
"slug": "reference/api/point/sitson",
"order": "Point.sitsOn()"
},
"reference/api/point/sitsroughlyon": {
"title": "Point.sitsRoughlyOn()",
"intro": "Returns true if this point has roughly (rounded to the nearest millimeter) the same coordinates as the one you pass to it.",
"slug": "reference/api/point/sitsroughlyon",
"order": "Point.sitsRoughlyOn()"
},
"reference/api/point/translate": {
"title": "Point.translate()",
"intro": "Returns a new Point with a translate transform applied.",
"slug": "reference/api/point/translate",
"order": "Point.translate()"
},
"reference/api/snippet/attr": {
"slug": "reference/api/snippet/attr"
},
"reference/api/snippet/clone": {
"title": "clone()",
"intro": "Returns a new Snippets object that is a deep copy of this one.",
"slug": "reference/api/snippet/clone",
"order": "clone()"
},
"reference/api/snippet": {
"slug": "reference/api/snippet"
},
"reference/api/store": {
"slug": "reference/api/store"
},
"reference/api/store/get": {
"title": "get()",
"intro": "Returnes the value stored under key .",
"slug": "reference/api/store/get",
"order": "get()"
},
"reference/api/store/set": {
"title": "set()",
"intro": "Stores the value of value in the store under key key .",
"slug": "reference/api/store/set",
"order": "set()"
},
"reference/api/store/setifunset": {
"slug": "reference/api/store/setifunset"
},
"reference/api/svg/attributes": {
"title": "attributes",
"intro": "An Attributes instance that controls the attributes of the SVG tag.",
"slug": "reference/api/svg/attributes",
"order": "attributes"
},
"reference/api/svg/defs": {
"slug": "reference/api/svg/defs"
},
"reference/api/svg": {
"slug": "reference/api/svg"
},
"reference/api/svg/head": {
"slug": "reference/api/svg/head"
},
"reference/api/svg/layout": {
"slug": "reference/api/svg/layout"
},
"reference/api/svg/pattern": {
"title": "pattern",
"intro": "A reference to the Pattern object .",
"slug": "reference/api/svg/pattern",
"order": "pattern"
},
"reference/api/svg/prefix": {
"title": "prefix",
"intro": "A string that will be rendered before the opening SVG tag.",
"slug": "reference/api/svg/prefix",
"order": "prefix"
},
"reference/api/svg/script": {
"title": "script",
"intro": "A string that will be rendered as the script section of the SVG document.",
"slug": "reference/api/svg/script",
"order": "script"
},
"reference/api/svg/style": {
"title": "style",
"intro": "A string that will be rendered as the style section of the SVG document.",
"slug": "reference/api/svg/style",
"order": "style"
},
"reference/api/svg/tail": {
"title": "tail",
"intro": "A string that closes both the group opened by Pattern.svg.head and the SVG tag.",
"slug": "reference/api/svg/tail",
"order": "tail"
},
"reference/api/utils/beamintersectscircle": {
"title": "beamIntersectsCircle()",
"intro": "Finds the intersection between an endless line through points point1 and point2 and a circle with its center at point center and a radius of radius mm.",
"slug": "reference/api/utils/beamintersectscircle",
"order": "beamIntersectsCircle()"
},
"reference/api/utils/beamintersectsx": {
"slug": "reference/api/utils/beamintersectsx"
},
"reference/api/utils/beamintersectsy": {
"slug": "reference/api/utils/beamintersectsy"
},
"reference/api/utils/beamsintersect": {
"slug": "reference/api/utils/beamsintersect"
},
"reference/api/utils/circlesintersect": {
"title": "circlesIntersect()",
"intro": "Finds the intersections between two circles described by their center point and radius.",
"slug": "reference/api/utils/circlesintersect",
"order": "circlesIntersect()"
},
"reference/api/utils/curveintersectsx": {
"title": "curveIntersectsX()",
"intro": "Finds the point(s) where a curve intersects a given X-value.",
"slug": "reference/api/utils/curveintersectsx",
"order": "curveIntersectsX()"
},
"reference/api/utils/curveintersectsy": {
"title": "curveIntersectsY()",
"intro": "Finds the point(s) where a curve intersects a given Y-value.",
"slug": "reference/api/utils/curveintersectsy",
"order": "curveIntersectsY()"
},
"reference/api/utils/curvesintersect": {
"title": "curvesIntersect()",
"intro": "Finds the intersections between two curves described by 4 points each.",
"slug": "reference/api/utils/curvesintersect",
"order": "curvesIntersect()"
},
"reference/api/utils/deg2rad": {
"title": "deg2rad()",
"intro": "Returns the degrees you pass to it as radians.",
"slug": "reference/api/utils/deg2rad",
"order": "deg2rad()"
},
"reference/api/utils": {
"title": "Utils",
"order": "95Utils",
"intro": "The Utils object provides the following utility methods to facilitate your work:",
"slug": "reference/api/utils"
},
"reference/api/utils/lineintersectscircle": {
"title": "lineIntersectsCircle()",
"intro": "Finds the intersection between a line segment from point from to point to and a circle with its center at point center and a radius of radius mm.",
"slug": "reference/api/utils/lineintersectscircle",
"order": "lineIntersectsCircle()"
},
"reference/api/utils/lineintersectscurve": {
"title": "lineIntersectsCurve()",
"intro": "Finds the intersection between a line segment from point from to point to and a curve described by points start , cp1 , cp2, and end`.",
"slug": "reference/api/utils/lineintersectscurve",
"order": "lineIntersectsCurve()"
},
"reference/api/utils/linesintersect": {
"slug": "reference/api/utils/linesintersect"
},
"reference/api/utils/pointonbeam": {
"slug": "reference/api/utils/pointonbeam"
},
"reference/api/utils/pointoncurve": {
"title": "pointOnCurve()",
"intro": "Returns true if the point check lies on a curve described by points start , cp1 , cp2 , and end .",
"slug": "reference/api/utils/pointoncurve",
"order": "pointOnCurve()"
},
"reference/api/utils/pointonline": {
"title": "pointOnLine()",
"intro": "Returns true if the point check lies on a line segment from point from to point to .",
"slug": "reference/api/utils/pointonline",
"order": "pointOnLine()"
},
"reference/api/utils/rad2deg": {
"title": "rad2deg()",
"intro": "Returns the radians you pass to it as degrees.",
"slug": "reference/api/utils/rad2deg",
"order": "rad2deg()"
},
"reference/api/utils/round": {
"title": "round()",
"intro": "Rounds a value to two decimals. For example:",
"slug": "reference/api/utils/round",
"order": "round()"
},
"reference/api/utils/stretchtoscale": {
"title": "stretchToScale()",
"intro": "The way people measure stretch intuitively is different from the way we handle stretch in code.",
"slug": "reference/api/utils/stretchtoscale",
"order": "stretchToScale()"
},
"reference/api/utils/units": {
"title": "units()",
"intro": "Converts the units value you pass it into a formatted string for the format you pass it.",
"slug": "reference/api/utils/units",
"order": "units()"
},
"reference/backend/account": {
"slug": "reference/backend/account"
},
"reference/backend": {
"title": "Backend API",
"for": "developers",
"about": "Documentation for our backend REST API",
"intro": "This documentation is outdated",
"slug": "reference/backend",
"order": "Backend API"
},
"reference/backend/login": {
"slug": "reference/backend/login"
},
"reference/backend/models": {
"title": "Models",
"intro": "On success:",
"slug": "reference/backend/models",
"order": "Models"
},
"reference/backend/oauth": {
"title": "Oauth",
"intro": "On success:",
"slug": "reference/backend/oauth",
"order": "Oauth"
},
"reference/backend/recipes": {
"title": "Recipes",
"intro": "On success:",
"slug": "reference/backend/recipes",
"order": "Recipes"
},
"reference/backend/signup": {
"title": "Sign up",
"intro": "On success:",
"slug": "reference/backend/signup",
"order": "Sign up"
},
"reference/backend/users": {
"title": "Users",
"intro": "On success:",
"slug": "reference/backend/users",
"order": "Users"
},
"reference/config/dependencies": {
"title": "dependencies",
"intro": "An object of key - value pairs that controls the order in which pattern parts will get drafted.",
"slug": "reference/config/dependencies",
"order": "dependencies"
},
"reference/config": {
"title": "Pattern configuration file",
"for": "developers",
"about": "Reference documentation for the pattern configuration file",
"intro": "A pattern configuration file exports a default object with the following properties:",
"slug": "reference/config",
"order": "Pattern configuration file"
},
"reference/config/hide": {
"title": "hide",
"intro": "An array that lists pattern parts that should be hidden by default.",
"slug": "reference/config/hide",
"order": "hide"
},
"reference/config/inject": {
"title": "inject",
"intro": "An object of key/value pairs of parts. The value part will be injected in the key part.",
"slug": "reference/config/inject",
"order": "inject"
},
"reference/config/measurements": {
"title": "measurements",
"intro": "An array with the names of the measurements required to draft this pattern.",
"slug": "reference/config/measurements",
"order": "measurements"
},
"reference/config/name": {
"title": "name",
"intro": "A string with the name of your pattern.",
"slug": "reference/config/name",
"order": "name"
},
"reference/config/optionalmeasurements": {
"title": "optionalMeasurements",
"intro": "An array with the names of optional measurements that can be used to draft this pattern.",
"slug": "reference/config/optionalmeasurements",
"order": "optionalMeasurements"
},
"reference/config/options/boolean": {
"title": "boolean",
"intro": "If your option is either true or false , or or or or , you can use a boolean:",
"slug": "reference/config/options/boolean",
"order": "boolean"
},
"reference/config/options/constant": {
"title": "constant",
"intro": "If your option is a scalar value (like a string or a number), it will be treated as a constant:",
"slug": "reference/config/options/constant",
"order": "constant"
},
"reference/config/options/counter": {
"slug": "reference/config/options/counter"
},
"reference/config/options/degrees": {
"title": "degrees",
"intro": "For angles, use degrees.",
"slug": "reference/config/options/degrees",
"order": "degrees"
},
"reference/config/options": {
"title": "options",
"intro": "Options come in 6 varities:",
"slug": "reference/config/options",
"order": "options"
},
"reference/config/options/list": {
"title": "list",
"intro": "Use a list option when you want to offer an array of choices.",
"slug": "reference/config/options/list",
"order": "list"
},
"reference/config/options/millimeter": {
"title": "millimeter",
"intro": "While we recommend using percentages where possible, sometimes that doesn't make sense.",
"slug": "reference/config/options/millimeter",
"order": "millimeter"
},
"reference/config/options/percentage": {
"title": "percentage",
"intro": "Percentage options are the bread and butter of freesewing.",
"slug": "reference/config/options/percentage",
"order": "percentage"
},
"reference/config/parts": {
"title": "parts",
"intro": "An array that lists your (additional) pattern parts. The name must be the key the pattern.parts object.",
"slug": "reference/config/parts",
"order": "parts"
},
"reference/config/version": {
"title": "version",
"intro": "The version of your pattern.",
"slug": "reference/config/version",
"order": "version"
},
"reference/designs": {
"title": "Designs",
"for": "contributors",
"about": "Complete list of FreeSewing designs that we've put out",
"intro": "We have a growing number of designs (sewing patterns).",
"slug": "reference/designs",
"order": "Designs"
},
"reference": {
"title": "Reference",
"order": "1040Reference",
"intro": "FIXME_no_intro",
"slug": "reference"
},
"reference/hooks": {
"title": "Hooks API",
"for": "developers",
"about": "Documents the available lifecycle hooks in Core and how to use them",
"intro": "A is a lifecycle event.",
"slug": "reference/hooks",
"order": "Hooks API"
},
"reference/hooks/inserttext": {
"title": "insertText",
"intro": "The insertText hook is called when text is about to be inserted during rendering.",
"slug": "reference/hooks/inserttext",
"order": "insertText"
},
"reference/hooks/postdraft": {
"title": "postDraft",
"intro": "The postDraft hook runs just after your pattern is drafted.",
"slug": "reference/hooks/postdraft",
"order": "postDraft"
},
"reference/hooks/postrender": {
"title": "postRender",
"intro": "The postRender hook is triggered after the SVG is rendered.",
"slug": "reference/hooks/postrender",
"order": "postRender"
},
"reference/hooks/postsample": {
"slug": "reference/hooks/postsample"
},
"reference/hooks/predraft": {
"title": "preDraft",
"intro": "The preDraft hook runs just before your pattern is drafted.",
"slug": "reference/hooks/predraft",
"order": "preDraft"
},
"reference/hooks/prerender": {
"title": "preRender",
"intro": "The preRender hook is triggered just before your pattern is rendered to SVG.",
"slug": "reference/hooks/prerender",
"order": "preRender"
},
"reference/hooks/presample": {
"title": "preSample",
"intro": "The preSample hook runs just before your pattern is sampled.",
"slug": "reference/hooks/presample",
"order": "preSample"
},
"reference/macros/bartack": {
"slug": "reference/macros/bartack"
},
"reference/macros/bartackalong": {
"slug": "reference/macros/bartackalong"
},
"reference/macros/bartackfractionalong": {
"slug": "reference/macros/bartackfractionalong"
},
"reference/macros/cutonfold": {
"title": "cutonfold",
"intro": "The cutonfold macro adds a indicator to your pattern. It is provided by the cutonfold plugin .",
"slug": "reference/macros/cutonfold",
"order": "cutonfold"
},
"reference/macros": {
"slug": "reference/macros"
},
"reference/macros/flip": {
"title": "flip",
"intro": "The flip macro flips (mirrors) an entire part vertically around the Y-axis. It takes no arguments, and is provided by the flip plugin .",
"slug": "reference/macros/flip",
"order": "flip"
},
"reference/macros/grainline": {
"title": "grainline",
"intro": "The grainline macro adds a indicator to your pattern. It is provided by the grainline plugin .",
"slug": "reference/macros/grainline",
"order": "grainline"
},
"reference/macros/hd": {
"title": "hd",
"intro": "The hd macro adds a to your pattern. It is provided by the dimension plugin .",
"slug": "reference/macros/hd",
"order": "hd"
},
"reference/macros/ld": {
"title": "ld",
"intro": "The ld macro adds a to your pattern. It is provided by the dimension plugin .",
"slug": "reference/macros/ld",
"order": "ld"
},
"reference/macros/miniscale": {
"slug": "reference/macros/miniscale"
},
"reference/macros/mirror": {
"slug": "reference/macros/mirror"
},
"reference/macros/pd": {
"title": "pd",
"intro": "The pd macro adds a to your pattern, indicating the length of a path. It is provided by the dimension plugin .",
"slug": "reference/macros/pd",
"order": "pd"
},
"reference/macros/rmad": {
"slug": "reference/macros/rmad"
},
"reference/macros/rmd": {
"slug": "reference/macros/rmd"
},
"reference/macros/round": {
"title": "round",
"intro": "The round macro rounds a corner. It is provided by the round plugin .",
"slug": "reference/macros/round",
"order": "round"
},
"reference/macros/scalebox": {
"slug": "reference/macros/scalebox"
},
"reference/macros/sprinkle": {
"title": "sprinkle",
"intro": "The sprinkle macro facilitates adding snippets to your pattern in bulk. It is by the sprinkle plugin .",
"slug": "reference/macros/sprinkle",
"order": "sprinkle"
},
"reference/macros/title": {
"title": "title",
"intro": "The title macro adds a title to a pattern part. It is provided by the title plugin .",
"slug": "reference/macros/title",
"order": "title"
},
"reference/macros/vd": {
"title": "vd",
"intro": "The vd macro adds a to your pattern. It is provided by the dimension plugin .",
"slug": "reference/macros/vd",
"order": "vd"
},
"reference/packages/aaron": {
"title": "@freesewing/aaron",
"intro": "FIXME_no_intro",
"slug": "reference/packages/aaron",
"order": "@freesewing/aaron"
},
"reference/packages/benjamin": {
"title": "@freesewing/benjamin",
"intro": "FIXME_no_intro",
"slug": "reference/packages/benjamin",
"order": "@freesewing/benjamin"
},
"reference/packages/bent": {
"title": "@freesewing/bent",
"intro": "FIXME_no_intro",
"slug": "reference/packages/bent",
"order": "@freesewing/bent"
},
"reference/packages/breanna": {
"title": "@freesewing/breanna",
"intro": "FIXME_no_intro",
"slug": "reference/packages/breanna",
"order": "@freesewing/breanna"
},
"reference/packages/brian": {
"title": "@freesewing/brian",
"intro": "FIXME_no_intro",
"slug": "reference/packages/brian",
"order": "@freesewing/brian"
},
"reference/packages/bruce": {
"title": "@freesewing/bruce",
"intro": "FIXME_no_intro",
"slug": "reference/packages/bruce",
"order": "@freesewing/bruce"
},
"reference/packages/carlita": {
"title": "@freesewing/carlita",
"intro": "FIXME_no_intro",
"slug": "reference/packages/carlita",
"order": "@freesewing/carlita"
},
"reference/packages/carlton": {
"title": "@freesewing/carlton",
"intro": "FIXME_no_intro",
"slug": "reference/packages/carlton",
"order": "@freesewing/carlton"
},
"reference/packages/cathrin": {
"title": "@freesewing/cathrin",
"intro": "FIXME_no_intro",
"slug": "reference/packages/cathrin",
"order": "@freesewing/cathrin"
},
"reference/packages/components/blockquote": {
"slug": "reference/packages/components/blockquote"
},
"reference/packages/components/draft": {
"title": "Draft",
"intro": "The Draft component renders a FreeSewing pattern in the browser as SVG.",
"slug": "reference/packages/components/draft",
"order": "Draft"
},
"reference/packages/components/draftconfgurator": {
"slug": "reference/packages/components/draftconfgurator"
},
"reference/packages/components/emblem": {
"title": "Emblem",
"intro": "The Emblem component renders the freesewing word in the top-left of our navigation bar.",
"slug": "reference/packages/components/emblem",
"order": "Emblem"
},
"reference/packages/components": {
"title": "@freesewing/components",
"intro": "This is a collection for React components for FreeSewing's websites:",
"slug": "reference/packages/components",
"order": "@freesewing/components"
},
"reference/packages/components/example": {
"slug": "reference/packages/components/example"
},
"reference/packages/components/footer": {
"title": "Footer",
"intro": "The Footer component is the shared footer we use on our websites.",
"slug": "reference/packages/components/footer",
"order": "Footer"
},
"reference/packages/components/icon": {
"slug": "reference/packages/components/icon"
},
"reference/packages/components/linedrawing": {
"title": "Linedrawing",
"intro": "The Linedrawing component renders linedrawings for the FreeSewing patterns.",
"slug": "reference/packages/components/linedrawing",
"order": "Linedrawing"
},
"reference/packages/components/logo": {
"title": "Logo",
"intro": "The Logo component renders the FreeSewing logo.",
"slug": "reference/packages/components/logo",
"order": "Logo"
},
"reference/packages/components/navbar": {
"title": "Navbar",
"intro": "The Navbar component is the shared navigation bar we use at the top of our websites.",
"slug": "reference/packages/components/navbar",
"order": "Navbar"
},
"reference/packages/components/render": {
"slug": "reference/packages/components/render"
},
"reference/packages/components/robot": {
"slug": "reference/packages/components/robot"
},
"reference/packages/components/sampleconfigurator": {
"slug": "reference/packages/components/sampleconfigurator"
},
"reference/packages/components/spinner": {
"title": "Spinner",
"intro": "The Spinner component renders a loading indicator with the FreeSewing logo.",
"slug": "reference/packages/components/spinner",
"order": "Spinner"
},
"reference/packages/components/withgist": {
"slug": "reference/packages/components/withgist"
},
"reference/packages/components/withlanguage": {
"slug": "reference/packages/components/withlanguage"
},
"reference/packages/components/withstorage": {
"slug": "reference/packages/components/withstorage"
},
"reference/packages/components/workbench": {
"slug": "reference/packages/components/workbench"
},
"reference/packages/core": {
"title": "@freesewing/core",
"intro": "This is the main FreeSewing library.",
"slug": "reference/packages/core",
"order": "@freesewing/core"
},
"reference/packages/create-freesewing-pattern": {
"title": "create-freesewing-pattern",
"intro": "This is an npm initializer package to jump-start your FreeSewing pattern designs with:",
"slug": "reference/packages/create-freesewing-pattern",
"order": "create-freesewing-pattern"
},
"reference/packages/css-theme": {
"title": "@freesewing/css-theme",
"intro": "This is the CSS that's used on FreeSewing's websites.",
"slug": "reference/packages/css-theme",
"order": "@freesewing/css-theme"
},
"reference/packages": {
"title": "Packages",
"for": "developers",
"about": "Complete list of all the packages we publish on NPM",
"intro": "FreeSewing publishes the following JavaScript packages on NPM :",
"slug": "reference/packages",
"order": "Packages"
},
"reference/packages/examples": {
"title": "@freesewing/examples",
"intro": "This pattern holds examples used throughout the documentation. Examples like this one:",
"slug": "reference/packages/examples",
"order": "@freesewing/examples"
},
"reference/packages/florence": {
"title": "@freesewing/florence",
"intro": "FIXME_no_intro",
"slug": "reference/packages/florence",
"order": "@freesewing/florence"
},
"reference/packages/florent": {
"title": "@freesewing/florent",
"intro": "FIXME_no_intro",
"slug": "reference/packages/florent",
"order": "@freesewing/florent"
},
"reference/packages/gatsby-remark-jargon": {
"title": "gatsby-remark-jargon",
"intro": "This is a Gatsby plugin that wraps our remark-jargon plugin for Remark .",
"slug": "reference/packages/gatsby-remark-jargon",
"order": "gatsby-remark-jargon"
},
"reference/packages/holmes": {
"title": "@freesewing/holmes",
"intro": "FIXME_no_intro",
"slug": "reference/packages/holmes",
"order": "@freesewing/holmes"
},
"reference/packages/huey": {
"title": "@freesewing/huey",
"intro": "FIXME_no_intro",
"slug": "reference/packages/huey",
"order": "@freesewing/huey"
},
"reference/packages/hugo": {
"title": "@freesewing/hugo",
"intro": "FIXME_no_intro",
"slug": "reference/packages/hugo",
"order": "@freesewing/hugo"
},
"reference/packages/i18n": {
"title": "@freesewing/i18n",
"intro": "These are the string translations for FreeSewing's websites and patterns.",
"slug": "reference/packages/i18n",
"order": "@freesewing/i18n"
},
"reference/packages/jaeger": {
"title": "@freesewing/jaeger",
"intro": "FIXME_no_intro",
"slug": "reference/packages/jaeger",
"order": "@freesewing/jaeger"
},
"reference/packages/models": {
"title": "@freesewing/models",
"intro": "This package provides a set of standard-sized measurements to test your patterns with.",
"slug": "reference/packages/models",
"order": "@freesewing/models"
},
"reference/packages/mui-theme": {
"title": "@freesewing/mui-theme",
"intro": "This is the Material-ui theme that's used on FreeSewing's websites.",
"slug": "reference/packages/mui-theme",
"order": "@freesewing/mui-theme"
},
"reference/packages/pattern-info": {
"title": "@freesewing/pattern-info",
"intro": "This package provides information about FreeSewing patterns.",
"slug": "reference/packages/pattern-info",
"order": "@freesewing/pattern-info"
},
"reference/packages/penelope": {
"title": "@freesewing/penelope",
"intro": "FIXME_no_intro",
"slug": "reference/packages/penelope",
"order": "@freesewing/penelope"
},
"reference/packages/plugin-bundle": {
"title": "@freesewing/plugin-bundle",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-bundle",
"order": "@freesewing/plugin-bundle"
},
"reference/packages/plugin-bust": {
"title": "@freesewing/plugin-bust",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-bust",
"order": "@freesewing/plugin-bust"
},
"reference/packages/plugin-buttons": {
"title": "@freesewing/plugin-buttons",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-buttons",
"order": "@freesewing/plugin-buttons"
},
"reference/packages/plugin-cutonfold": {
"title": "@freesewing/plugin-cutonfold",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-cutonfold",
"order": "@freesewing/plugin-cutonfold"
},
"reference/packages/plugin-dimension": {
"title": "@freesewing/plugin-dimension",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-dimension",
"order": "@freesewing/plugin-dimension"
},
"reference/packages/plugin-flip": {
"title": "@freesewing/plugin-flip",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-flip",
"order": "@freesewing/plugin-flip"
},
"reference/packages/plugin-gore": {
"title": "@freesewing/plugin-gore",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-gore",
"order": "@freesewing/plugin-gore"
},
"reference/packages/plugin-grainline": {
"title": "@freesewing/plugin-grainline",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-grainline",
"order": "@freesewing/plugin-grainline"
},
"reference/packages/plugin-i18n": {
"title": "@freesewing/plugin-i18n",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-i18n",
"order": "@freesewing/plugin-i18n"
},
"reference/packages/plugin-logo": {
"title": "@freesewing/plugin-logo",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-logo",
"order": "@freesewing/plugin-logo"
},
"reference/packages/plugin-round": {
"title": "@freesewing/plugin-round",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-round",
"order": "@freesewing/plugin-round"
},
"reference/packages/plugin-scalebox": {
"title": "@freesewing/plugin-scalebox",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-scalebox",
"order": "@freesewing/plugin-scalebox"
},
"reference/packages/plugin-sprinkle": {
"title": "@freesewing/plugin-sprinkle",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-sprinkle",
"order": "@freesewing/plugin-sprinkle"
},
"reference/packages/plugin-svgattr": {
"title": "@freesewing/plugin-svgattr",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-svgattr",
"order": "@freesewing/plugin-svgattr"
},
"reference/packages/plugin-theme": {
"title": "@freesewing/plugin-theme",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-theme",
"order": "@freesewing/plugin-theme"
},
"reference/packages/plugin-title": {
"title": "@freesewing/plugin-title",
"intro": "FIXME_no_intro",
"slug": "reference/packages/plugin-title",
"order": "@freesewing/plugin-title"
},
"reference/packages/prettier-config": {
"title": "@freesewing/prettier-config",
"intro": "This is FreeSewing's Prettier configuration, to be shared across projects.",
"slug": "reference/packages/prettier-config",
"order": "@freesewing/prettier-config"
},
"reference/packages/remark-jargon": {
"title": "remark-jargon",
"intro": "This is a Remark plugin for jargon terms.",
"slug": "reference/packages/remark-jargon",
"order": "remark-jargon"
},
"reference/packages/rendertest": {
"slug": "reference/packages/rendertest"
},
"reference/packages/sandy": {
"title": "@freesewing/sandy",
"intro": "FIXME_no_intro",
"slug": "reference/packages/sandy",
"order": "@freesewing/sandy"
},
"reference/packages/shin": {
"title": "@freesewing/shin",
"intro": "FIXME_no_intro",
"slug": "reference/packages/shin",
"order": "@freesewing/shin"
},
"reference/packages/simon": {
"title": "@freesewing/simon",
"intro": "FIXME_no_intro",
"slug": "reference/packages/simon",
"order": "@freesewing/simon"
},
"reference/packages/simone": {
"title": "@freesewing/simone",
"intro": "FIXME_no_intro",
"slug": "reference/packages/simone",
"order": "@freesewing/simone"
},
"reference/packages/sven": {
"title": "@freesewing/sven",
"intro": "FIXME_no_intro",
"slug": "reference/packages/sven",
"order": "@freesewing/sven"
},
"reference/packages/tamiko": {
"title": "@freesewing/tamiko",
"intro": "FIXME_no_intro",
"slug": "reference/packages/tamiko",
"order": "@freesewing/tamiko"
},
"reference/packages/theo": {
"title": "@freesewing/theo",
"intro": "FIXME_no_intro",
"slug": "reference/packages/theo",
"order": "@freesewing/theo"
},
"reference/packages/trayvon": {
"title": "@freesewing/trayvon",
"intro": "FIXME_no_intro",
"slug": "reference/packages/trayvon",
"order": "@freesewing/trayvon"
},
"reference/packages/tutorial": {
"title": "@freesewing/tutorial",
"intro": "FIXME_no_intro",
"slug": "reference/packages/tutorial",
"order": "@freesewing/tutorial"
},
"reference/packages/utils": {
"title": "@freesewing/utils",
"intro": "A collection of utilities shared between different FreeSewing projects.",
"slug": "reference/packages/utils",
"order": "@freesewing/utils"
},
"reference/packages/wahid": {
"title": "@freesewing/wahid",
"intro": "FIXME_no_intro",
"slug": "reference/packages/wahid",
"order": "@freesewing/wahid"
},
"reference/packages/waralee": {
"title": "@freesewing/waralee",
"intro": "FIXME_no_intro",
"slug": "reference/packages/waralee",
"order": "@freesewing/waralee"
},
"reference/plugins/bartack": {
"title": "bartack",
"intro": " ",
"slug": "reference/plugins/bartack",
"order": "bartack"
},
"reference/plugins/bundle": {
"title": "bundle",
"intro": " ",
"slug": "reference/plugins/bundle",
"order": "bundle"
},
"reference/plugins/bust": {
"title": "bust",
"intro": " ",
"slug": "reference/plugins/bust",
"order": "bust"
},
"reference/plugins/buttons": {
"title": "buttons",
"intro": " ",
"slug": "reference/plugins/buttons",
"order": "buttons"
},
"reference/plugins/cutonfold": {
"title": "cutonfold",
"intro": " ",
"slug": "reference/plugins/cutonfold",
"order": "cutonfold"
},
"reference/plugins/dimension": {
"title": "dimension",
"intro": " ",
"slug": "reference/plugins/dimension",
"order": "dimension"
},
"reference/plugins": {
"title": "Plugins",
"for": "developers",
"about": "Complete list of all the plugins available for FreeSewing core",
"intro": "The following FreeSewing plugins are available:",
"slug": "reference/plugins",
"order": "Plugins"
},
"reference/plugins/flip": {
"title": "flip",
"intro": " ",
"slug": "reference/plugins/flip",
"order": "flip"
},
"reference/plugins/grainline": {
"title": "grainline",
"intro": " ",
"slug": "reference/plugins/grainline",
"order": "grainline"
},
"reference/plugins/i18n": {
"title": "i18n",
"intro": " ",
"slug": "reference/plugins/i18n",
"order": "i18n"
},
"reference/plugins/logo": {
"title": "logo",
"intro": " ",
"slug": "reference/plugins/logo",
"order": "logo"
},
"reference/plugins/mirror": {
"title": "mirror",
"intro": " ",
"slug": "reference/plugins/mirror",
"order": "mirror"
},
"reference/plugins/round": {
"title": "round",
"intro": " ",
"slug": "reference/plugins/round",
"order": "round"
},
"reference/plugins/scalebox": {
"title": "scalebox",
"intro": " ",
"slug": "reference/plugins/scalebox",
"order": "scalebox"
},
"reference/plugins/sprinkle": {
"title": "sprinkle",
"intro": " ",
"slug": "reference/plugins/sprinkle",
"order": "sprinkle"
},
"reference/plugins/svgattr": {
"title": "svgattr",
"intro": " ",
"slug": "reference/plugins/svgattr",
"order": "svgattr"
},
"reference/plugins/theme": {
"title": "theme",
"intro": " ",
"slug": "reference/plugins/theme",
"order": "theme"
},
"reference/plugins/title": {
"title": "title",
"intro": " ",
"slug": "reference/plugins/title",
"order": "title"
},
"reference/repos/backend": {
"title": "backend",
"intro": "See also: The backend API reference",
"slug": "reference/repos/backend",
"order": "backend"
},
"reference/repos": {
"title": "Repositories",
"for": "contributors",
"about": "Complete list of all FreeSewing software repositories",
"intro": "FreeSewing uses the following repositories:",
"slug": "reference/repos",
"order": "Repositories"
},
"reference/repos/freesewing.dev": {
"slug": "reference/repos/freesewing.dev"
},
"reference/repos/freesewing.org": {
"title": "freesewing.org",
"intro": "This is the source code for FreeSewing.org , our main website.",
"slug": "reference/repos/freesewing.org",
"order": "freesewing.org"
},
"reference/repos/freesewing": {
"slug": "reference/repos/freesewing"
},
"reference/repos/svgtopdf": {
"slug": "reference/repos/svgtopdf"
},
"reference/repos/tile": {
"title": "tile",
"intro": "This is a PostScript tiler, a command line utility written in C.",
"slug": "reference/repos/tile",
"order": "tile"
},
"reference/settings/complete": {
"slug": "reference/settings/complete"
},
"reference/settings/embed": {
"title": "embed",
"intro": "Set to true to make SVG output suitable for embedding in a web page.",
"slug": "reference/settings/embed",
"order": "embed"
},
"reference/settings": {
"title": "Settings",
"for": "developers",
"about": "Documents all the settings your pattern can receive, including the pattern options, measurmeents, and design options",
"intro": "Settings are what the user passes to your pattern at run-time.",
"slug": "reference/settings",
"order": "Settings"
},
"reference/settings/idprefix": {
"title": "idPrefix",
"intro": "Prefixes all IDs in the SVG with the string you pass it. (defaults to fs- ).",
"slug": "reference/settings/idprefix",
"order": "idPrefix"
},
"reference/settings/layout": {
"slug": "reference/settings/layout"
},
"reference/settings/locale": {
"title": "locale",
"intro": "A 2-letter language code that indicates what language the user wants.",
"slug": "reference/settings/locale",
"order": "locale"
},
"reference/settings/margin": {
"title": "margin",
"intro": "Allows you to specify a part margin (in mm). The default is 2mm. Each part will have this margin applied. This means that:",
"slug": "reference/settings/margin",
"order": "margin"
},
"reference/settings/measurements": {
"title": "measurements",
"intro": "The measurements to draft for. The pattern configuration lists all required measurements.",
"slug": "reference/settings/measurements",
"order": "measurements"
},
"reference/settings/only": {
"title": "only",
"intro": "Allows you to specify one or more parts to draft/render, rather than the entire pattern.",
"slug": "reference/settings/only",
"order": "only"
},
"reference/settings/options": {
"title": "options",
"intro": "The pattern options as specified in the pattern configuration.",
"slug": "reference/settings/options",
"order": "options"
},
"reference/settings/paperless": {
"title": "paperless",
"intro": "Set this to true to draft a paperless pattern. The default is false .",
"slug": "reference/settings/paperless",
"order": "paperless"
},
"reference/settings/sa": {
"title": "sa",
"intro": "The seam allowance in mm.",
"slug": "reference/settings/sa",
"order": "sa"
},
"reference/settings/units": {
"title": "units",
"intro": "Either metric (the default) or imperial .",
"slug": "reference/settings/units",
"order": "units"
},
"reference/snippets/bnotch": {
"slug": "reference/snippets/bnotch"
},
"reference/snippets/button": {
"slug": "reference/snippets/button"
},
"reference/snippets/buttonhole-end": {
"slug": "reference/snippets/buttonhole-end"
},
"reference/snippets/buttonhole-start": {
"slug": "reference/snippets/buttonhole-start"
},
"reference/snippets/buttonhole": {
"slug": "reference/snippets/buttonhole"
},
"reference/snippets": {
"title": "Snippets",
"for": "developers",
"about": "Complete list of all the available snippets",
"intro": "Snippets are provided by plugins. Follow the links below for more info on and an example of a specific snippet:",
"slug": "reference/snippets",
"order": "Snippets"
},
"reference/snippets/logo": {
"slug": "reference/snippets/logo"
},
"reference/snippets/notch": {
"slug": "reference/snippets/notch"
},
"reference/snippets/snap-socket": {
"title": "snap-socket",
"intro": "The snap-socket snippet is used to mark the socket part of a snap button.",
"slug": "reference/snippets/snap-socket",
"order": "snap-socket"
},
"reference/snippets/snap-stud": {
"title": "snap-stud",
"intro": "The snap-stud snippet is used to mark the stud part of a snap button.",
"slug": "reference/snippets/snap-stud",
"order": "snap-stud"
},
"translators/empty": {
"title": " ",
"intro": "This page was intentionally left blank.",
"slug": "translators/empty",
"order": " "
},
"translators": {
"title": "For translators",
"order": "1140For translators",
"intro": "Freesewing is proudly multilingual. We currently support 5 languges:",
"slug": "translators"
},
"tutorials": {
"title": "Tutorials",
"order": "1010Tutorials",
"intro": "FIXME_no_intro",
"slug": "tutorials"
},
"tutorials/getting-started-linux/create-freesewing-pattern": {
"title": "Setting up the FreeSewing development environment",
"order": "40Setting up the FreeSewing development environment",
"intro": "FreeSewing provides a development environment to help you design and develop patterns.",
"slug": "tutorials/getting-started-linux/create-freesewing-pattern"
},
"tutorials/getting-started-linux": {
"slug": "tutorials/getting-started-linux"
},
"tutorials/getting-started-linux/installing-node": {
"title": "Installing Node",
"order": "20Installing Node",
"intro": "Now we will use nvm to install Node JS. Run the following command:",
"slug": "tutorials/getting-started-linux/installing-node"
},
"tutorials/getting-started-linux/installing-nvm": {
"title": "Installing nvm",
"order": "10Installing nvm",
"intro": "FreeSewing is built with Node.js , a JavaScript runtime.",
"slug": "tutorials/getting-started-linux/installing-nvm"
},
"tutorials/getting-started-linux/node-versions": {
"slug": "tutorials/getting-started-linux/node-versions"
},
"tutorials/getting-started-linux/start-development-environment": {
"slug": "tutorials/getting-started-linux/start-development-environment"
},
"tutorials/getting-started-mac/create-freesewing-pattern": {
"title": "Setting up the FreeSewing development environment",
"order": "50Setting up the FreeSewing development environment",
"intro": "FreeSewing provides a development environment to help you design and develop patterns.",
"slug": "tutorials/getting-started-mac/create-freesewing-pattern"
},
"tutorials/getting-started-mac": {
"slug": "tutorials/getting-started-mac"
},
"tutorials/getting-started-mac/installing-node": {
"title": "Installing Node",
"order": "30Installing Node",
"intro": "Now we will use nvm to install Node JS. Run the following command:",
"slug": "tutorials/getting-started-mac/installing-node"
},
"tutorials/getting-started-mac/installing-nvm": {
"title": "Installing nvm",
"order": "20Installing nvm",
"intro": "FreeSewing is built with Node.js , a JavaScript runtime.",
"slug": "tutorials/getting-started-mac/installing-nvm"
},
"tutorials/getting-started-mac/installing-xcode": {
"slug": "tutorials/getting-started-mac/installing-xcode"
},
"tutorials/getting-started-mac/node-versions": {
"slug": "tutorials/getting-started-mac/node-versions"
},
"tutorials/getting-started-mac/start-development-environment": {
"slug": "tutorials/getting-started-mac/start-development-environment"
},
"tutorials/getting-started-windows": {
"title": "Getting started on Windows",
"order": "30Getting started on Windows",
"for": "developers",
"icons": [
"start",
"windows"
],
"about": "You'll learn how to setup Node JS on a Windows system, \nas well as initialize the FreeSewing development environment.\n",
"goals": [
"Install Node JS using nvm",
"Chosing a Node version to use",
"Initializing the FreeSewing development environment",
"Starting the FreeSewing development environment"
],
"intro": "If you already have a working WSL environment and VSCode Remote configured you can follow the getting started on Linux guide or skip ahead to Setting up the FreeSewing development environment (WSL) . If not, the following process is very similar but has some differences to avoid quirks specific to this environment.",
"slug": "tutorials/getting-started-windows"
},
"tutorials/pattern-design/adding-measurements": {
"slug": "tutorials/pattern-design/adding-measurements"
},
"tutorials/pattern-design/adding-options": {
"slug": "tutorials/pattern-design/adding-options"
},
"tutorials/pattern-design/avoiding-overlap": {
"slug": "tutorials/pattern-design/avoiding-overlap"
},
"tutorials/pattern-design/completing-the-neck-opening": {
"slug": "tutorials/pattern-design/completing-the-neck-opening"
},
"tutorials/pattern-design/completing-your-pattern": {
"title": "Completing your pattern",
"order": "260Completing your pattern",
"intro": "When we started out, we said a good part boilerplate looks like this:",
"slug": "tutorials/pattern-design/completing-your-pattern"
},
"tutorials/pattern-design/conclusion": {
"slug": "tutorials/pattern-design/conclusion"
},
"tutorials/pattern-design/constructing-the-neck-opening": {
"slug": "tutorials/pattern-design/constructing-the-neck-opening"
},
"tutorials/pattern-design/create-freesewing-pattern": {
"title": "Setting up the development environment",
"order": "100Setting up the development environment",
"intro": "If you already set up the FreeSewing development environment and created a pattern, you can use that pattern and skip these steps. You can move on to Your first part .",
"slug": "tutorials/pattern-design/create-freesewing-pattern"
},
"tutorials/pattern-design/creating-the-closure": {
"slug": "tutorials/pattern-design/creating-the-closure"
},
"tutorials/pattern-design/drawing-the-bib-outline": {
"title": "Drawing the bib outline",
"order": "190Drawing the bib outline",
"intro": "With our neck opening in place, let's draw the basic outline of our bib:",
"slug": "tutorials/pattern-design/drawing-the-bib-outline"
},
"tutorials/pattern-design/drawing-the-straps": {
"slug": "tutorials/pattern-design/drawing-the-straps"
},
"tutorials/pattern-design": {
"slug": "tutorials/pattern-design"
},
"tutorials/pattern-design/fitting-the-neck-opening": {
"title": "Fitting the neck opening",
"order": "170Fitting the neck opening",
"intro": "Here's how we'll make sure the neck opening is :",
"slug": "tutorials/pattern-design/fitting-the-neck-opening"
},
"tutorials/pattern-design/paperless-bib": {
"title": "Making your pattern paperless",
"order": "270Making your pattern paperless",
"intro": "Users can request paperless patterns by setting the paperless setting to true .",
"slug": "tutorials/pattern-design/paperless-bib"
},
"tutorials/pattern-design/part-structure": {
"slug": "tutorials/pattern-design/part-structure"
},
"tutorials/pattern-design/rounding-the-corners": {
"title": "Rounding the corners",
"order": "240Rounding the corners",
"intro": "We already know how to round corners, let the round macro do it:",
"slug": "tutorials/pattern-design/rounding-the-corners"
},
"tutorials/pattern-design/shaping-the-straps": {
"slug": "tutorials/pattern-design/shaping-the-straps"
},
"tutorials/pattern-design/testing-your-pattern": {
"slug": "tutorials/pattern-design/testing-your-pattern"
},
"tutorials/pattern-design/your-first-part": {
"title": "Your first part",
"order": "120Your first part",
"intro": "Much like garments themselves, patterns are made up of .",
"slug": "tutorials/pattern-design/your-first-part"
}
}