tada: First commit
This commit is contained in:
parent
e02c8badfe
commit
cefae51c06
9 changed files with 6497 additions and 3 deletions
13
packages/plugin-cutonfold/.editorconfig
Normal file
13
packages/plugin-cutonfold/.editorconfig
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# editorconfig.org
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
indent_size = 2
|
||||||
|
indent_style = space
|
||||||
|
end_of_line = lf
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
62
packages/plugin-cutonfold/.gitignore
vendored
Normal file
62
packages/plugin-cutonfold/.gitignore
vendored
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
dist
|
||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
# Runtime data
|
||||||
|
pids
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
*.pid.lock
|
||||||
|
|
||||||
|
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||||
|
lib-cov
|
||||||
|
|
||||||
|
# Coverage directory used by tools like istanbul
|
||||||
|
coverage
|
||||||
|
|
||||||
|
# nyc test coverage
|
||||||
|
.nyc_output
|
||||||
|
|
||||||
|
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
||||||
|
.grunt
|
||||||
|
|
||||||
|
# Bower dependency directory (https://bower.io/)
|
||||||
|
bower_components
|
||||||
|
|
||||||
|
# node-waf configuration
|
||||||
|
.lock-wscript
|
||||||
|
|
||||||
|
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||||
|
build/Release
|
||||||
|
|
||||||
|
# Dependency directories
|
||||||
|
node_modules/
|
||||||
|
jspm_packages/
|
||||||
|
|
||||||
|
# TypeScript v1 declaration files
|
||||||
|
typings/
|
||||||
|
|
||||||
|
# Optional npm cache directory
|
||||||
|
.npm
|
||||||
|
|
||||||
|
# Optional eslint cache
|
||||||
|
.eslintcache
|
||||||
|
|
||||||
|
# Optional REPL history
|
||||||
|
.node_repl_history
|
||||||
|
|
||||||
|
# Output of 'npm pack'
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
# Yarn Integrity file
|
||||||
|
.yarn-integrity
|
||||||
|
|
||||||
|
# dotenv environment variables file
|
||||||
|
.env
|
||||||
|
|
||||||
|
# next.js build output
|
||||||
|
.next
|
4
packages/plugin-cutonfold/.npmignore
Normal file
4
packages/plugin-cutonfold/.npmignore
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
src
|
||||||
|
.editorconfig
|
||||||
|
.babelrc
|
||||||
|
webpack.config.js
|
|
@ -1,6 +1,6 @@
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2018 freesewing / plugins
|
Copyright (c) 2018 Joost De Cock
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -1,2 +1,51 @@
|
||||||
# macro-cutonfold
|
<p align="center">
|
||||||
A freesewing macro to add cut-on-fold indicators to your patterns
|
<a title="Go to freesewing.org" href="https://freesewing.org/"><img src="https://freesewing.org/img/logo/black.svg" align="center" width="150px" alt="Freesewing logo"/></a>
|
||||||
|
</p>
|
||||||
|
<h4 align="center"><em> <a title="Go to freesewing.org" href="https://freesewing.org/">freesewing</a></em>
|
||||||
|
<br><sup>a library for made-to-measure sewing patterns</sup>
|
||||||
|
</h4>
|
||||||
|
|
||||||
|
# freesewing / plugins / macro-cutonfold
|
||||||
|
|
||||||
|
This is a macro for [freesewing](https://github.com/freesewing/freesewing)
|
||||||
|
to add cut-on-fold indicators on your patterns.
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm install @freesewing-plugins/macro-cutonfold --save
|
||||||
|
```
|
||||||
|
|
||||||
|
## Loading the plugin
|
||||||
|
|
||||||
|
Plugins are loaded by the `withpPlugin` method of an instantiated freesewing pattern:
|
||||||
|
|
||||||
|
```js
|
||||||
|
import F from 'freesewing';
|
||||||
|
import cutonfold from '@freesewing-plugins/macro-cutonfold';
|
||||||
|
|
||||||
|
var pattern = new F.pattern()
|
||||||
|
.withPlugin(cutonfold);
|
||||||
|
```
|
||||||
|
|
||||||
|
## Using the plugin
|
||||||
|
|
||||||
|
This plugin provides the `cutonfold` macro which you can call with the `macro` method on an instantiated pattern part:
|
||||||
|
|
||||||
|
```js
|
||||||
|
part.macro('cutonfold', {
|
||||||
|
from: points.cbNeck
|
||||||
|
, to: points.cbHips
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
|
||||||
|
- `to`: A point object at the start of the cut-on-fold indicator
|
||||||
|
- `from`: A point object at the end of the cut-on-fold indicator
|
||||||
|
|
||||||
|
As all freesewing macros, bundle these parameters into a single object.
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
FIXME: include example
|
||||||
|
|
6258
packages/plugin-cutonfold/package-lock.json
generated
Normal file
6258
packages/plugin-cutonfold/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
43
packages/plugin-cutonfold/package.json
Normal file
43
packages/plugin-cutonfold/package.json
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
{
|
||||||
|
"name": "@freesewing-plugins/macro-cutonfold",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
|
||||||
|
"license": "MIT",
|
||||||
|
"description": "A freesewing macro to add cut-on-fold indicators on your patterns",
|
||||||
|
"keywords": [
|
||||||
|
"freesewing",
|
||||||
|
"macro",
|
||||||
|
"sewing",
|
||||||
|
"patterns",
|
||||||
|
"cut on fold"
|
||||||
|
],
|
||||||
|
"homepage": "https://github.com/freesewing-plugins/macro-cutonfold#readme",
|
||||||
|
"repository": "github:freesewing-plugins/macro-cutonfold",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/joostdecock/macro-cof/issues"
|
||||||
|
},
|
||||||
|
"main": "dist/node/index.js",
|
||||||
|
"unpkg": "dist/browser/bundle.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
"clean": "rimraf dist",
|
||||||
|
"nodebuild": "babel src -d dist/node",
|
||||||
|
"browserbuild": "npx webpack-cli --config webpack.config.js",
|
||||||
|
"build": "npm run clean && npm run nodebuild && npm run browserbuild"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@babel/core": "7.0.0-beta.53",
|
||||||
|
"@babel/preset-env": "7.0.0-beta.53",
|
||||||
|
"rimraf": "^2.6.2",
|
||||||
|
"babel-cli": "6.26.0",
|
||||||
|
"babel-loader": "8.0.0-beta.4",
|
||||||
|
"webpack": "4.16.0",
|
||||||
|
"webpack-cli": "3.0.8"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"dist/*",
|
||||||
|
"README.md",
|
||||||
|
"package-lock.json",
|
||||||
|
"package.json"
|
||||||
|
]
|
||||||
|
}
|
27
packages/plugin-cutonfold/src/index.js
Normal file
27
packages/plugin-cutonfold/src/index.js
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
module.exports = {
|
||||||
|
hooks: {
|
||||||
|
preRenderSvg: function(next) {
|
||||||
|
// Without this, our custom attribute won't be valid
|
||||||
|
this.attributes.add("xmlns:freesewing", "http://freesewing.org/namespaces/freesewing");
|
||||||
|
// VERSION is injected by webpack from package.json
|
||||||
|
this.attributes.add("freesewing:plugin-macro-cof", VERSION);
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
, macros: {
|
||||||
|
cof: function(next, so) {
|
||||||
|
let points = this.points;
|
||||||
|
points.cofStart = so.from.shiftTowards(so.to, 30);
|
||||||
|
points.cofEnd = so.to.shiftTowards(so.from, 30);
|
||||||
|
points.cofVia1 = so.from.shiftTowards(so.to, 50).rotate(90,points.cofStart);
|
||||||
|
points.cofVia2 = so.to.shiftTowards(so.from, 50).rotate(-90,points.cofEnd);
|
||||||
|
this.paths.cof = new this.path()
|
||||||
|
.move(points.cofStart)
|
||||||
|
.line(points.cofVia1)
|
||||||
|
.line(points.cofVia2)
|
||||||
|
.line(points.cofEnd)
|
||||||
|
.attr('class', 'cut-on-fold');
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
38
packages/plugin-cutonfold/webpack.config.js
Normal file
38
packages/plugin-cutonfold/webpack.config.js
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
const path = require('path');
|
||||||
|
var webpack = require('webpack');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
mode: 'production',
|
||||||
|
target: 'web',
|
||||||
|
entry: './src/index.js',
|
||||||
|
output: {
|
||||||
|
path: path.resolve(__dirname, 'dist/browser'),
|
||||||
|
filename: 'bundle.js',
|
||||||
|
libraryTarget: 'var',
|
||||||
|
library: 'freesewing_macro_cutonfold'
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
new webpack.DefinePlugin({
|
||||||
|
VERSION: JSON.stringify(require("./package.json").version)
|
||||||
|
})
|
||||||
|
],
|
||||||
|
module: {
|
||||||
|
rules:[
|
||||||
|
{
|
||||||
|
test: /\.js$/,
|
||||||
|
exclude: /node_modules/,
|
||||||
|
use: {
|
||||||
|
loader: 'babel-loader',
|
||||||
|
options: {
|
||||||
|
presets: ['@babel/preset-env']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.txt$/,
|
||||||
|
exclude: /node_modules/,
|
||||||
|
use: 'raw-loader'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
Loading…
Add table
Add a link
Reference in a new issue