tada: First commit
This commit is contained in:
parent
3d82690400
commit
6efda92f63
11 changed files with 6455 additions and 3 deletions
13
packages/plugin-title/.editorconfig
Normal file
13
packages/plugin-title/.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
|
1
packages/plugin-title/.gitignore
vendored
1
packages/plugin-title/.gitignore
vendored
|
@ -1,3 +1,4 @@
|
|||
dist
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
|
|
4
packages/plugin-title/.npmignore
Normal file
4
packages/plugin-title/.npmignore
Normal file
|
@ -0,0 +1,4 @@
|
|||
src
|
||||
.editorconfig
|
||||
.babelrc
|
||||
webpack.config.js
|
|
@ -1,6 +1,6 @@
|
|||
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
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
@ -1,2 +1,55 @@
|
|||
# macro-title
|
||||
A freesewing macro to add a tile to your pattern parts
|
||||
<p align="center">
|
||||
<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-title
|
||||
|
||||
This is a macro for [freesewing](https://github.com/freesewing/freesewing)
|
||||
to add a title to your pattern part.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
npm install @freesewing-plugins/macro-title --save
|
||||
```
|
||||
|
||||
## Loading the plugin
|
||||
|
||||
Plugins are loaded by the `withPlugin` method of an instantiated freesewing pattern:
|
||||
|
||||
```js
|
||||
import F from 'freesewing';
|
||||
import partTitle from '@freesewing-plugins/macro-title';
|
||||
|
||||
var pattern = new F.pattern()
|
||||
.withPlugin(partTitle);
|
||||
```
|
||||
|
||||
## Using the plugin
|
||||
|
||||
This plugin provides the `title` macro which you can call with the `macro` method on an instantiated pattern part:
|
||||
|
||||
```js
|
||||
part.macro('title', {
|
||||
at: points.titleAnchor
|
||||
, nr: 2
|
||||
, name: 'backBlock'
|
||||
, pattern: 'brian'
|
||||
});
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
- `at`: A point object to anchor the title on
|
||||
- `nr`: The part number
|
||||
- `name`: The part name
|
||||
- `pattern`: The name of the pattern
|
||||
|
||||
As all freesewing macros, bundle these parameters into a single object.
|
||||
|
||||
## Example
|
||||
|
||||
FIXME: include example
|
||||
|
|
6258
packages/plugin-title/package-lock.json
generated
Normal file
6258
packages/plugin-title/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
43
packages/plugin-title/package.json
Normal file
43
packages/plugin-title/package.json
Normal file
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"name": "@freesewing-plugins/macro-title",
|
||||
"version": "0.1.0",
|
||||
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
|
||||
"license": "MIT",
|
||||
"description": "A freesewing macro to add a title to your pattern parts",
|
||||
"keywords": [
|
||||
"freesewing",
|
||||
"macro",
|
||||
"sewing",
|
||||
"patterns",
|
||||
"title"
|
||||
],
|
||||
"homepage": "https://github.com/freesewing-plugins/macro-title#readme",
|
||||
"repository": "github:freesewing-plugins/macro-title",
|
||||
"bugs": {
|
||||
"url": "https://github.com/freesewing-plugins/macro-title/issues"
|
||||
},
|
||||
"main": "dist/index.js",
|
||||
"unpkg": "dist/_bundle.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"clean": "rimraf dist",
|
||||
"nodebuild": "babel src -d dist --no-babelrc",
|
||||
"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"
|
||||
]
|
||||
}
|
28
packages/plugin-title/src/index.js
Normal file
28
packages/plugin-title/src/index.js
Normal file
|
@ -0,0 +1,28 @@
|
|||
import style from './lib/style';
|
||||
const VERSION = require('../package.json').version;
|
||||
|
||||
module.exports = {
|
||||
hooks: {
|
||||
preRenderSvg: function(next) {
|
||||
// Without this, our custom attribute won't be valid
|
||||
this.attributes.add("xmlns:freesewing-plugins", "http://freesewing.org/namespaces/freesewing-plugins");
|
||||
this.attributes.add("freesewing-plugins:macro-title", VERSION);
|
||||
this.style += style;
|
||||
next();
|
||||
}
|
||||
}
|
||||
, macros: {
|
||||
title: function(next, so) {
|
||||
let points = this.points;
|
||||
so.at.attr('data-text', so.nr)
|
||||
.attr('data-text-class', 'title-nr');
|
||||
points.titleName = so.at.shift(-90, 20)
|
||||
.attr('data-text', title)
|
||||
.attr('data-text-class', 'title-name');
|
||||
points.titlePattern = so.at.shift(-90, 40)
|
||||
.attr('data-text', pattern)
|
||||
.attr('data-text-class', 'title-pattern');
|
||||
next();
|
||||
}
|
||||
}
|
||||
}
|
8
packages/plugin-title/src/lib/markers.js
Normal file
8
packages/plugin-title/src/lib/markers.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
module.exports = `
|
||||
<marker orient="auto" refY="0.0" refX="0.0" id="cutonfoldFrom" style="overflow:visible;" >
|
||||
<path style="stroke: #ff5b77; fill: #ff5b77;" d="M 0,0 L 12,-4 C 10,-2 10,2 12, 4 z" />
|
||||
</marker>
|
||||
<marker orient="auto" refY="0.0" refX="0.0" id="cutonfoldTo" style="overflow:visible;" >
|
||||
<path style="stroke: #ff5b77; fill: #ff5b77;" d="M 0,0 L -12,-4 C -10,-2 -10,2 -12, 4 z" />
|
||||
</marker>
|
||||
`;
|
5
packages/plugin-title/src/lib/style.js
Normal file
5
packages/plugin-title/src/lib/style.js
Normal file
|
@ -0,0 +1,5 @@
|
|||
module.exports = `
|
||||
text.title-nr{ font-size: 24; }
|
||||
text.title-name{ font-size: 16; }
|
||||
text.title-pattern{ font-size: 6; }
|
||||
`;
|
39
packages/plugin-title/webpack.config.js
Normal file
39
packages/plugin-title/webpack.config.js
Normal file
|
@ -0,0 +1,39 @@
|
|||
const path = require('path');
|
||||
var webpack = require('webpack');
|
||||
|
||||
module.exports = {
|
||||
mode: 'production',
|
||||
target: 'web',
|
||||
entry: './src/index.js',
|
||||
output: {
|
||||
path: path.resolve(__dirname, 'dist'),
|
||||
filename: '_bundle.js',
|
||||
libraryTarget: 'var',
|
||||
library: 'freesewing_macro_title'
|
||||
},
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
VERSION: JSON.stringify(require("./package.json").version)
|
||||
}),
|
||||
new webpack.IgnorePlugin(/^\.\.\/package.json$/)
|
||||
],
|
||||
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