-
Notifications
You must be signed in to change notification settings - Fork 30
/
Copy pathchangelog.txt
312 lines (255 loc) · 14 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
+ new
* changed
- removed
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js x.x.x DAY MONTH YEAR
+ basil works without the b. prefix now
+ function draw() works without b.go() now, function loop() replaces b.loop()
+ User settings (units, anchor point etc.) are now saved before and restored after script execution
+ Added mode() to set performance modes (VISIBLE, HIDDEN, SILENT) during script execution
+ Added frameRate() to set frame rate during looping scripts
+ Added transform() function to transform page items independent of the current matrix
and to measure current transforms of page items
+ Added point(), quad() and triangle() to draw the corresponding shapes
+ Added referencePoint() function to set the reference point for transform()
+ Added file() and folder()
gets files and folders or creates them
+ Added files()
gets all files of a folder
+ Added selectFile(), selectFiles() and selectFolder()
opens a selection dialog to select files or folders
+ Added applyParagraphStyle(), applyCharacterStyle(), applyObjectStyle(),
set the style of a text object/page item.
see examples/typography/styles.jsx
+ Added applyMasterPage()
applies a master page to a page
+ Added masterPage()
activates and returns a master page
+ Added arrange()
allows to arrange page items or layers in z-space
+ Added JSON.parse() and JSON.stringify() to replace JSON.decode() and JSON.encode()
parsing and stringifying are much more reliable now and can be controlled via
additional options
+ Added loadJSON() to load an parse JSON files one step
+ Added saveJSON() to stringify data and save it as JSON file in one step
+ Added property()
sets a property of an object to a given value
+ Added graphics() to loop over graphics in a given container
+ Added textFrames() to loop over text frames in a given container
+ Added linkedTextFrames() to loop over all linked text frames of a text frame chain
+ Added textStyleRanges() to loop over text style ranges in a given container
+ Added swatch()
returns a color or gradient of a given name
+ Added background() for Processing compatibility
adds a background of the given color
+ Added revert()
reverts the document to a fresh state
+ Added contains()
checks if a string or an array contain specific values
+ Added SCRIPTNAME
holds the name of the current script
+ Added isInteger()
checks if a given variable is an integer
+ basil scripts don't try to start ExtendScript Toolkit in the background anymore
+ Added week() to return week number of the year
+ Added createOutlines() to convert text + textPaths to outlines paths
+ Added pathToPoints() to get points, beziers, and both isolated by paths, from pageItems
+ Added loadCSV() to load an parse CSV files one step
+ Added saveCSV() to stringify data and save it as CSV file in one step
+ Added CSV.parse() and CSV.stringify() to replace CSV.decode() and CSV.encode()
parse and stringify accept optional 2nd parameter for custom delimiter.
+ Added pasteInto() enabling using page items as clipping masks
* translate(), rotate() and scale() now behave like they do in Processing and change the current matrix
* basil scripts will by default use the user's default units or the current units of the document,
as well as the transformation reference point set by the user
* text() can be used to place text into shapes or as text paths on graphic lines
* image() now allows to place images into text frames as well
* canvasMode() behaves a lot more reliable now
FACING_PAGES, FACING_MARGINS, FACING_BLEEDS, fixed for 3+ page spreads
BLEED, MARGIN, FACING_MARGINS, FACING_BLEEDS, fixed for single page in facing_pages mode
all modes work now for margins or bleeds of different sizes
resetMatrix() does not reset the canvas mode anymore
* performance constants are called VISIBLE, HIDDEN and SILENT now and are used together with the new mode() function
* rect() now allows additional parameters to add rounded corners
* paragraphStyle(), characterStyle() and objectStyle() are expanded:
They can now get an applied style from a text object/page item and can
make use of an optional object with property name/value pairs to set
the properties of the style.
* inspect() has been completely reworked:
Much faster, especially for complex objects.
Nicer presentation of results (tree style).
Options to show or hide properties, values and/or methods.
Option to show only certain properties.
Lots of minor fixes.
* random(), now allows return a random item from an array or collection
* page(), pageNumber() and removePage() now also accept page name strings as parameters
* pageCount() can now also be used to set the doc's page count
* previousPage() and nextPage() now work as expected
* when drawing closed vertex paths, endShape() instead of beginShape() now takes the
CLOSE constant as argument
* println() and print() can now print multiple parameters to console
* trimWord() now correctly trims all punctuation from word borders
* text() now respects the currently set rectangle mode
* rectMode() now works with RADIUS
* Improved the speed of clear() considerably
* textFont() does no longer stop the script if a font is missing, but gives a console warning instead
* isText() now correctly identifies collections of multiple text objects as text
(Characters, Words, Lines etc.)
* size() now can use existing page size presets as a parameter with an optional
second parameter for page orientation (introducing PORTRAIT and LANDSCAPE)
* duplicate() now duplicates page items reliably in place, even when in FACING canvas modes and jumps to the new page if a page is duplicated
* selection() can now be used to set the selection
* label() can now be used to assign a label to a page item
* endsWith() and startsWith() now also work for arrays
* guideX() and guideY() now correctly place guides in facing canvas modes
* guideY() now places a guide spanning the entire spread when in facing canvas modes
* Updated categories and sub-categories of many functions to better align to Processing/p5.js categories
or – in case of non-Processing functions – to better reflect the InDesign categories they belong to
* Changed all include/includepath/targetengine statements from # to //@
This allows linting with eslint of all files
* Linted all the test files
* Changed the location of the basil.js library from `~/Documents/basiljs/bundle/basil.js` to `~/Documents/basiljs/basil.js` in all the example files.
The user is allowed to have his files wherever he wants.
* bounds() now correctly measures bounds in different canvas modes(MARGIN/BLEED etc.)
* loadJSON(), loadString(), loadStrings() when passed a URL, can receive custom user-agent as 2nd parameter
* weekday() now returns number day of the week (0 - 6)
* margins() getter fixed to use current page
- b.go() and b.loop() are removed (use function draw() or function loop() instead)
- b.itemX(), b.itemY(), b.itemWidth(), b.itemHeight(), b.itemPosition() and b.itemSize() are removed
and replaced by the new transform() function
- b.transformImage() is removed as it can be replaced by the new transform function()
- JSON.decode() and JSON.encode() are removed and replaced by JSON.parse()
and JSON.stringfy()
- b.storyCount() is removed (use stories(doc()).length instead)
- Array.map() and Array.filter() are removed
- b.Random.nextGaussian() is removed
- CSV.decode() and CSV.encode() are removed and replaced by CSV.parse()
and CSV.stringfy()
- CSV.delimiter() is removed and integrated as optional parameter of CSV.parse() and CSV.stringify()
Special thanks to Hartmut Bohnacker for making the transform functions work in Processing style!
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 1.1.0 - 11 November 2016
+ Added b.size() to set and get the document size
+ Added b.gradient() to great colourful gradients
+ Added b.gradientMode() to set gradient type b.LINEAR or b.RADIAL
+ Added b.placeholder() to fill a textFrame with random placeholder text
+ Added b.LOREM constant holding a lorem ipsum string
+ Added npm script for better tooling and development
npm run watch
npm run release (insert timestamp + version string in first line of bundle)
npm run bundle (without timestamp + version string)
+ Added .eslintrc file (linting rules) to reflect current coding style
* The basil.js file is bundled from /src to a single file:
It is no longer required to have the basil.js file at a certain path.
Break out with your project folders to any location w/o breaking things!
* Entire source code is linted, wrong line breaks fixed
* Source code reorganised to /src folder
* Readme files updated to acknowledge new contributors
* Bugfix: b.color("colorName") error when using resulting color in b.fill() twice
* Bugfix: b.layer() did not set active layer to given argument
* Bugfix: b.image() error/warning handling if incomplete arguments
* Bugfix: b.isText() did not work for instances of Text
* Bugfix: b.words(), b.lines() etc. were broken
* Bugfix: b.objectStyle(), b.characterStyle() and b.paragraphStyle() were broken
Shout outs to Timo Rychert and Fabian Morón Zirfas!
This release is entirely based on your hard work!
Many thanks for this massive contributions!
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 1.0.10 -
+ Added package.json definition
* Changed versioning scheme to npm style
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 1.09 -
+ Added installer scripts for OS X and Windows
* Added some better error reporting for null objects
* Minor bug fixes
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 1.08 - 11 November 2013
+ Added b.arc() by Ken Frederick, cheers mate!
+ Added b.weekday(), b.timestamp() and b.millisecond()
* Fixed output to progress panel
* Added auto save to MODEHIDDEN
* Added 15s timeout to loadStrings via TCP/IP
* Improved error reporting
* Bugfix to b.addStory()
* Changed default folder for b.download() to data/
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 1.07-experimental - 22 October 2013
* Fixed buggy b.noise()
* Urgent bug fix to b.color() and others
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 1.06-experimental - 21 October 2013
* Internal refactorings (split basil.js into many includes)
* Changed to FAST_ENTIRE_SCRIPT execution mode
Please note that this release is still experimental.
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 1.05 - 9 October 2013
* Bugfix to b.endShape()
* Bugfix to b.loadString() and b.download(),
now supports more than one GET parameter
* changed default anchor to center for transforms with line()
* internal safety improvements
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 1.04 - 23 September 2013
+ added b.addShape() in order to create multi-component shapes with b.vertex();
+ added b.nameOnPage(), get a pageitem on the active page by name.
see examples/document/nameOnPage.jsx
+ added b.download(). Downloads an URL to a file, currently Mac only.
see examples/output/download.jsx
+ added b.shellExecute(), currently Mac only.
see examples/input/shellExecute.jsx
+ added b.group() and b.ungroup()
+ added b.isURL() validator checker function
+ added string helpers b.endsWith() and b.startsWith()
+ added b.projectPath() to get the folder of the active document
+ added b.saveString() to save a singe string to a file
* Extended loadString() and loadStrings() to handle URLs. Happy GET URL!
see examples/input/loadStringURL.jsx
* all export functions can handle now sub-folders
e.g. exportPNG("swiss/basel/snap.png")
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 1.03 - 3 July 2013
* added missing support for layer and stroke settings to b.image()
+ added b.savePNG()
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 1.02 - 3 June 2013
* fixed a bug with b.constrain()
* added constraints for b.color() and b.fill(), where illegal channel
values would previously produce strange results
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 1.01 - 23 May 2013
+ added b.transform() and b.matrix()
+ added b.remove() for the removal of objects
+ added b.duplicate() for duplicating page items and pages
+ added b.label() and b.selection() as single item alternatives
+ added demos to examples folder
* changed default image fit behaviour to FitOptions.FILL_PROPORTIONALLY
* corrected credits for the processing.js team
* Several JSDOC updates and updated reference on website
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 1.00 - 28 Feb 2013
First public release!
+ new functions to work conveniently with stories (indesign model of linked
content or many textframes), e.g. b.addToStory(), b.storyCount() ...
see: examples/document/story.jsx
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 0.22 - 25 Feb 2013
+ new computation modes MODESILENT, MODEHIDDEN, MODEVISIBLE.
HIDDEN is very handy for working with large files, as the document is
processed completely in background, performance is a lot better.
* Changes for b.go().
You can switch between the computation modes via b.go( b.MODESILENT ),
b.go( b.MODEHIDDEN ) and b.go( b.MODEVISIBLE ). If b.go() is called
without a paramter, then the default mode MODESILENT is used.
Special thanks to be:screen GmbH for the new computation modes and
performance optimization!
+ new functions for creating shapes. you can create arbitrary lines,
bezier curves, polygones with beginShape(), endShape() and vertex()
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js 0.21 - 21 Dec 2012
basil.js goes semi public with a private beta release
..- --.- ..- -.... -..-- .-..-. -.-..---.-.-....--.-- -....-.... -..-- .-
basil.js pre 0.21 - May to Dec 2012
basil.js is developed over the Summer by Ted Davis, Benedikt Groß,
Stefan Landsbek and Ludwig Zeller.
Special thanks to Stefan Landsbek for the inital code architecture!