/
releaseNotes.scroll
1441 lines (1038 loc) · 53.5 KB
/
releaseNotes.scroll
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
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
import header.scroll
title Scroll Release Notes
## A list of what has changed in Scroll releases.
thinColumns
# 84.2.0 5/06/2024
- 🎉 added `****` as an "end of post dinkus" which prints ⁂
- 🎉 tabular tables now support aftertext!
- 🏥 allow multiword strings to be used as an `id` in concepts
# 84.1.0 5/04/2024
- 🎉 snippets now export some content in plain text
- 🎉 improved the default site generated by `scroll init`
# 84.0.0 5/04/2024
- 🎉 Datasets (aka "Concept files") version 2! Much simpler.
- 🎉 Added the `id` keyword for using datasets.
- 🎉 Removed the `[measureName]: ` syntax introduced in version 77. You no longer have to worry about the annoyance that introduced when writing a paragraph such as "Sidenote: yada yada".
- 🎉 Added `belowAsCodeUntil` keyword
- ⚠️ BREAKING: removed `::` keyword. Now concepts are simply identified by the keyword `id`.
- ⚠️ BREAKING: `writeDataset` is now `writeConcepts` and `printDataset` is now `printConcepts`.
- ⚠️ BREAKING: Removed the `[measureName]: ` syntax introduced in version 77. To use datasets (aka Concept files) now, just extend Scroll parsers like you normally would. See this blog post for an example.
link blog/datasets.html this blog post for an example
# 83.3.0 5/04/2024
- 🎉 repeating the baseUrl after `openGraphImage` is no longer required. Will be auto-added if not present.
# 83.2.0 5/04/2024
- 🎉 added `link` under `image`. Also added `target`.
- 🎉 for posts with multiple images, you can now put `openGraph` under an `image` node as an alternative to adding a separate `openGraphImage` line
- 🎉 added `mediumColumns` keyword
- 🎉 added `thinColumns` keyword.
* Note: `startColumns` will eventually be removed. You can now safely switch those to `thinColumns`.
# 83.1.0 5/03/2024
- 🎉 added `expander` keyword
expander Click me
Anything in the section will show up here. A blank line ends a section.
# 83.0.0 5/03/2024
- 🎉 all tables now print in plain text outputs
- 🎉 added `printTable` keyword
- ⚠️ BREAKING: root level tabular tables no longer produce output. Add a `printTable [index]` to print any existing tabular tables.
`printTable` will look for a table to print using this strategy:
- If an index is provided, print that table.
- Else, is there a table right below this line?
- Else, is there a table right before this line?
- Else, print the first table in the file.
# 82.2.0 5/03/2024
- 🎉 pruned more files from `npm install`
# 82.1.0 5/03/2024
- 🎉 pruned dependencies to make `npm install -g scroll-cli --production` fast
# 82.0.1 5/01/2024
- 🏥 fixed regression where `endSnippet` was showing up in html
# 82.0.0 5/01/2024
- 🎉 meta tags can now have nested comments
- 🎉 added `formatCommand` to the CLI for nicely formatting files, moving top matter to the top, cleaning up white space, etc, so you don't have to worry about that.
- 🎉 plain text files now will have a maximum of 2 blank lines in a row
- 🎉 plain text files now print date, if there's a dateline
The current formatting conventions are:
- Scroll files end in a single newline
- Trailing spaces and tabs are stripped from lines, unless the whole line is whitespace
- `importOnly`, if present, is moved to the very top
- 3 or more newlines are trimmed down to 2
- Meta tags are moved to the top of the file
- 2 newlines comes after meta tags
- Tags that print content and comments stay put
- Meta tags are sorted alphabetically with no blank lines in between [In the future, may want to allow customizing this]
Note that currently the `title` tag is a meta tag and a tag that prints content. Going to split that up into 2 tags soon.
Note that if you are doing something like a tutorial and using a `belowAsCode` where you purposely put a top matter keyword not at the top, it will currently get moved to the top by format. We can probably add a feature like treating meta nodes with `// noFormat` as if they were content nodes.
# 81.2.0 4/30/2024
- 🎉 added `related` and `relatedList` keywords
# 81.1.0 4/29/2024
- 🎉 added `plainTextOnly` for rare case when you need to include content only for the plain text version.
- 🏥 `html` should not print in text versions (since it is _html_ :)).
# 81.0.0 4/29/2024
- 🏥 links now appear in plain text output. relative links are made absolute.
- 🏥 indented lists now appear in plain text output.
- ⚠️ BREAKING: (no one should be affected) if you extended the `thoughtParser`, that is now called `paragraphParser`.
# 80.2.1 4/29/2024
- 🏥 fixed regression in tabular tables printing
// a hint that we should refactor that and make all table printing explicit :)
# 80.2.0 4/29/2024
- 🎉 added `helpfulNotFound` keyword for better 404s.
# 80.1.0 4/29/2024
- 🎉 `wordCount` in `printCsv` now measures wordCount in the text version of a post.
# 80.0.0 4/29/2024
- 🎉 Scroll now generates text files! Added the `writeText` keyword.
link blog/textFiles.html Scroll now generates text files
* Note: there are likely to be a few rapid releases to refine this.
# 79.1.0 4/27/2024
- 🎉 added `printSiteMap` keyword for text sitemap generation.
# 79.0.1 4/27/2024
- 🏥 fix npm issue
# 79.0.0 4/27/2024
- 🎉 better offline builds: if used, katex, tableSearch, and maps now copy their needed css and js into their folder and those assets are served locally rather than through CDN.
- ⚠️ BREAKING: you may need to make some slight updates, such as adding the copied files to .gitignore.
# 78.0.2 4/27/2024
- 🏥 open graph image url fix: remove the extra "/" which caused images not to show in Twitter
# 78.0.1 4/26/2024
- 🏥 style fix: ensure column splits don't separate images from their captions
# 78.0.0 4/25/2024
- 🎉 made tabular data a root level parser in Scroll.
- ⚠️ BREAKING: if you had lines with tabs that currently match the catchall paragraph, you'll need to make those explicit paragraphs to avoid them getting parsed by the tabular data parser. You should be able to find those lines with a regex like this: `^(\t|[^ ]+\t)`
Spreadsheets are great tools for working with tabular data. I want to copy/paste between Scroll docs and spreadsheets. This makes it easier.
Tabular data is better than line orientation for experimental data because it requires half the number of tokens and it's more efficient eye movement during comparisons and proofreading.
Scroll already supported tabular data using `tabTable`, but that made copy/paste workflows between spreadsheets and text editors a pain. This should be more ergonomic and make it easier to work with this useful tool of thought.
# 77.3.1 4/23/2024
- 🏥 style fix: fixed style bug where on narrow screens the post title would overlap the corner nav buttons.
# 77.3.0 4/22/2024
- 🎨 updated presentation of footnotes
# 77.2.0 4/22/2024
- 🎨 improved default table styles
# 77.1.0 4/21/2024
- 🎉 Simplified datasets further after user tests.
# 77.0.0 4/21/2024
- 🎉 Added Scroll Datasets, which consists of the `::`, `printDataset`, `writeDataset`, and `*:` and `*::` keywords.
link blog/datasets.html Scroll Datasets
- ⚠️ BREAKING: if you had lines starting with a word then colon, that used the catchall paragraph, such as `Sidenote: yada yada.`, those will now be parsed incorrectly as measures. Just explicitly make them paragraphs `* Sidenote: yada yada.`. This regex can help you find any instances: `^[^ ]+: .`
# 76.0.0 4/19/2024
- 🎨 try using "rem" in CSS to better support the "zooming out" effect on a blog
The code below added to a page will create the zoom out effect:
code
css html {font-size: var(--base-font-size, 8px);}
- ⚠️ BREAKING: There might be some slight style breaks related to this change.
# 75.2.1 4/18/2024
- 🏥 style fix: removed top margin on headers when they are in the first section
# 75.2.0 4/18/2024
- 🎨 increased the default font-size from 14px to 16px
- 🎨 changed the font-family and line height of captions which previously looked off
- 🎨 adjusted margins on question h4s
- 🏥 fix slight line-height issue with datelines
# 75.1.1 4/16/2024
- 🏥 fix bug where quick links could not be used inside a footnote definition.
# 75.1.0 4/10/2024
- 🎉 Added `***` keyword to print a Dinkus
https://en.wikipedia.org/wiki/Dinkus Dinkus
belowAsCode 6
Now I will show an example.
***
Above is a dinkus.
# 75.0.0 4/06/2024
- 🏥 Revert version 74. There was a simpler way to fix that pattern.
# 74.0.0 4/06/2024
- (Reverted)
# 73.2.0 4/05/2024
- 🎉 added `thanksTo` keyword
# 73.1.0 4/05/2024
- 🎉 added `plainText` keyword
- 🎉 added `printSource` keyword to be able to dump the source code for a group of posts to a plain text file.
# 73.0.0 4/03/2024
- 🎉 added `printCsv` keyword to make it as easy to generate a CSV of a blog as it is to generate an RSS feed
# 72.4.4 2/07/2024
- 🏥 do not print "undefined" in tables in rows missing columns
# 72.4.3 11/04/2023
- 🏥 fix extra indentation in nested lists. Browser already adds it.
# 72.4.2 11/04/2023
- 🏥 do not compile aftertext nodes having the "hidden" attribute
# 72.4.1 11/04/2023
- 🏥 fixed regression where `<!DOCTYPE html>` was present in RSS pages. Thank you to Joao for the report.
# 72.4.0 6/27/2023
- 🎉 provide "dropcap" CSS class.
- 🎉 tweaked default styling of images and captions
This paragraph has a dropcap. It can be a useful visual aid for the reader to break up sections. You can read more about dropcaps on Wikipedia.
class dropcap
https://en.wikipedia.org/wiki/Initial dropcaps on Wikipedia
# 72.3.0 6/13/2023
- 🎉 if you want to disable `wrapsOn` you can now provide parameters to specify only the wraps you want, if any.
- 🏥 by default katex wraps won't run unless there is a `katex` node in a file. So any paragraph containing multiple $ will now behave as before katex wraps were added.
# 72.2.0 5/31/2023
- 🎉 added `wideColumns` keyword
# 72.1.0 5/26/2023
- 🏥 Bold and italics are no longer parsed inside inline code `2*4*2` or inline $\KaTeX$ $X_{2_i}$.
# 72.0.0 5/25/2023
- 🎉 added support for inline $\TeX$ via $\KaTeX$.
- Current implementation requires adding at least one `katex` node in your file and will load the KaTeX code.
katex
# 71.5.0 5/19/2023
- 🎉 added support for extra newlines between items in ordered lists
- 🎉 added support for custom footnote labels and move footnote link to end with new style
- 🎉 added hover style to "Built with Scroll" footer link
# 71.4.0 5/9/2023
- 🎉 style improvements to lists
# 71.3.0 5/8/2023
- 🎉 added `program` keyword for Program Links. See blog post for details.
link blog/programLinks.html blog post
# 71.2.0 5/07/2023
- 🏥 add `<!DOCTYPE html>` to improve performance on Google Lighthouse.
- 🏥 fix regression of meta description generation and add test
- 🏥 upgrade JTree to get colorized test output
# 71.1.0 5/07/2023
- 🏥 add `<html lang></html>` back as you need that to get proper hyphenation. Added test.
- 🎉 added `htmlLang` keyword for overriding the default lang which is set to "en"
- 🎉 added `text-align: justify;` on paragraphs to Gazette and Tufte themes.
# 71.0.0 5/06/2023
- 🎉 added `tufteCss` beta theme.
- 🎉 added `###`, `####` and `#####` headers.
- ⚠️ BREAKING: slight changes to the h1-h4 font sizes and margins in the default gazetteTheme.
- A single # is now h1, ## is h2, et cetera. `title` can be thought of as `h0`.
- ⚠️ BREAKING: `gazetteHeader` is now `pageHeader` and `gazetteFooter` is now `pageFooter`. Headers and footers can be independent of themes.
# 70.0.0 4/29/2023
- 🎉 Paragraphs no longer need to start with '* '. All non-blank lines that don't start with a defined keyword are now treated as a paragraph. The catch-all is no longer an error. It is recommended to start all paragraphs with a capital letter, as in the future it may become the standard that keywords start with a lowercase or symbol, and you will avoid any future keyword collisions.
- Thanks to zoeartemis for the feedback.
- No changes are needed but you can update your files with the find/replace combo: `\n\* ` `\n`.
- You may want to use the case sensitive `\n\* [a-z]` search first to find any paragraphs that start with a lowercase letter.
- You also want to be careful of any lines that would now start with `<!`, as they will be parsed as HTML nodes.
# 69.3.0 4/26/2023
- 🎉 Add `katex` keyword. KaTeX: "The fastest math typesetting library for the web."
https://katex.org/ KaTeX
# 69.2.0 4/18/2023
- 🎉 added the `tag` keyword to thought nodes so you can change the compiled html tag (needed in rare circumstances)
- 🎉 added the `thought` keyword and standardized vocab to calling the thought node the main node that most nodes extend.
- 🎉 added the `style` keyword to provide inline html styles to a thought node.
# 69.1.4 4/13/2023
- 🏥 get tfs fixes in jtree
# 69.1.3 4/13/2023
- 🏥 get tfs fixes in jtree
# 69.1.1 4/13/2023
- 🏥 Improve syntax highlighting of counters and comments
# 69.1.0 4/13/2023
- 🎉 Added counters
# 69.0.0 4/9/2023
No one should be affected. This was an internal rewrite to upstream the imports code to `TreeFileSystem` in Jtree. No changes for Scroll users.
- ⚠️ BREAKING: `scrollKeywords` is no longer exported
- ⚠️ BREAKING: `DefaultScrollCompiler` is now `DefaultScrollParser`
- ⚠️ BREAKING: `ScrollDiskFileSystem` and `ScrollInMemoryFileSystem` replaced by `ScrollFileSystem`
# 68.0.0 4/3/2023
Simplify theme building.
- ⚠️ BREAKING: `gazetteTheme` is now `gazetteCss`.
- ⚠️ BREAKING:
code
// Change `gazetteTheme noTags` to:
gazetteCss
tags false
# 67.1.0 4/3/2023
Maintenance release. Update packages and remove unused package and specify required NodeJs versions accurately.
# 67.0.0 4/2/2023
This is _The Theme Release_.
- 🎉 Introduce the idea of keywords for theming scrolls.
- ⚠️ BREAKING: `author` node is now `byLine`. `author` is kept for now but updating is recommended.
- ⚠️ BREAKING: `scrollCssTag` is gone. use `gazetteTheme` for previous behavior. `scrollCss` is gone, use `gazetteTheme noTag`.
- ⚠️ BREAKING: SCROLL_CSS has been removed. `gazetteTheme` now contains that CSS code.
- ⚠️ BREAKING: `scrollHeader` is now `gazetteHeader` and `scrollFooter` is now `gazetteFooter`
- ⚠️ BREAKING: css classes: `scrollHeaderComponent` => `gazetteHeader`, `scrollFooterComponent` => `gazetteFooter`
- ⚠️ BREAKING: `kpiTable` is now `dashboard`
# 66.0.0 4/2/2023
- ⚠️ BREAKING: This upgrades to JTree 73 and Grammar 6. Any custom grammar files need to be updated (generally this just means a find/replace of `Node` to `Parser`).
# 65.0.0 3/30/2023
- 🎉 Upgrade to Jtree 71 to get Grammar 5 wiith scoped parsers.
# 64.0.0 3/28/2023
- 🎉 Upgrade to Jtree 70 to get Grammar 4. Now comments and blank lines are okay in grammars.
# 63.1.0 3/27/2023
- 🎉 Added `abstractScrollWithRequirementsNode` and use it for `copyButtons` and `map` to only include the external JS and CSS once.
- 🎉 Added `compileSettings` as an input in all Scroll nodes rather than maintaining state on instances
- 🏥 minor code cleanup and bug fixes
# 63.0.1 3/27/2023
- 🏥 cache hotfix for embedded snippets.
# 63.0.0 3/27/2023
This was a big internal refactor to remove the outdated concept of `ScrollFolder` and rely on the file system parameter instead. This makes it easier to build webapps serving dynamic Scroll pages. It also simplifies the upcoming isomorphic release.
- ⚠️ BREAKING: Only users using Scroll as a module may be affected:
- Removed `ScrollFolder`. Exports now include `ScrollDiskFileSystem` and `ScrollInMemoryFileSystem`. To get the same behavior as `new ScrollFolder("folder").buildFiles()` use `new ScrollDiskFileSystem().buildFilesInFolder("folder")`.
- Instead of `new ScrollFolder(__dirname).defaultScrollCompiler` use `DefaultScrollCompiler`
- ⚠️ BREAKING: Only users using Scroll extensions may be affected:
- In extensions `compileSnippet` should now be `compileEmbeddedVersion`
- Instead of `file.folder.folder` use `file.folderPath`
- ⚠️ BREAKING: Only users using `loop` may be affected:
- Temporarily renamed `relativeLink` to `linkRelativeToCompileTarget`
# 62.5.1 3/27/2023
- 🏥 if something goes wrong in a nodejs block, be sure to clean up the temporary file
# 62.5.0 3/23/2023
- 🎉 New keyword `canonicalLink` if you need to include query strings in canonical link.
code
canonicalLink https://scroll.pub/tests/kitchenSink/maps.html?canonLinkTest=true
# 62.4.0 3/23/2023
- 🏥 SEO fix: metaTags now sets canonical link
# 62.3.0 3/22/2023
- 🎉 New keyword `map` using LeafletJS
https://leafletjs.com/ LeafletJS
# 62.2.0 3/15/2023
- 🎉 Added `copyButtons` keyword. Use that to give code blocks a copy-to-clipboard button on hover.
# 62.1.0 3/13/2023
- 🎉 Added `nodejs` node for including small node.js scripts inside a Scroll file, similar to a PHP snippet. <?php ?>. The snippet is written to disk and then require is used to run it. Exports variables are then replaced throughout the script.
# 62.0.1 3/13/2023
- 🏥 fixes bug when using custom grammars with in memory node types.
# 62.0.0 3/11/2023
- 🎉 Support for in memory file systems. Useful for dynamic websites and future web browser versions and versions with url imports.
- ⚠️ BREAKING: (no one should be affected). `ScrollFolder` constructor now requires an argument. You can now pass an object as a second param to use a virtual filesystem.
- ⚠️ BREAKING: (no one should be affected). Removed `DefaultScrollCompiler` export. Instead use `new ScrollFolder().defaultScrollCompiler`
# 61.0.0 3/11/2023
- ⚠️ BREAKING: (no one should be affected). Removed `buildNeeded` method only used programmatically by PLDB. Switching that to dynamic generation which is a better pattern.
# 60.0.0 3/10/2023
- 🎉 Added `quickHtml` node. A line starting with `<` will be treated as an `html` node. So these are the same:
code
html <hr>
<hr>
- ⚠️ BREAKING: (no one should be affected). The default _catch all_ node will still report as an error but will now behave as if it's a paragraph (`*`) node.
# 59.6.0 3/10/2023
- 🎉 Added Horizontal line keyword: `---`
---
# 59.5.0 3/9/2023
- 🎉 Additional shorter comment syntax: `//`. Previously it was only `comment`
// This comment won't appear in the HTML
# 59.4.0 3/7/2023
- 🏥 fix relative links when using snippets from multiple folders
- 🎉 ability to override the default home link in the default theme
# 59.3.0 3/6/2023
- 🏥 CSS fix in default theme so super elements in footnotes don't increase line-height.
# 59.2.0 3/6/2023
- 🎉 Default theme change: links are now only underlined on hover.
# 59.1.0 3/6/2023
- 🎉 `scroll init` now creates a `.gitignore` file and also runs `git init`.
# 59.0.0 3/3/2023
- 🎉 `image` keyword now supports `class` and `id` tags
- 🎉 `class` tag with just a class will now apply to the whole parent element and not insert a span
- 🏥 fix so image tag works in try.scroll.pub
# 58.5.1 3/2/2023
- 🏥 don't compile linkify node to HTML
# 58.5.0 3/2/2023
- 🎉 you can now disable linkify on a node.
# 58.4.0 3/1/2023
- 🎉 you can now create new loop item providers in extensions by extending `abstractItemsProviderNode`
# 58.3.1 2/28/2023
- 🏥 markup directives in indented lists should not compile to anything
# 58.3.0 2/28/2023
- 🎉 checklists! use `[]` and `[x]`
- 🎉 lists `-` are now indentable
## Scroll now has checklists!
[x] Support checklists
[x] Make them indentable
[] Solve world peace
- Regular Lists are also now indentable
- This is a child
- And this is a grandchild
# 58.2.3 2/22/2023
- 🏥 Windows fix
# 58.2.2 2/21/2023
- 🏥 Bug fix
# 58.2.1 2/21/2023
- 🏥 fix for empty cells
# 58.2.0 2/21/2023
- 🎉 table nodes now make cells that are just a link links
# 58.1.0 2/16/2023
- 🎉 added `loop` node type:
belowAsCode
loop
words #2a2d34ff #009ddcff #f26430ff #6761a8ff #009b72ff
javascript `<span style="background-color: ${item}; width: 30px; height: 30px; display: inline-block;"> </span>`
# 58.0.1 2/9/2023
- 🏥 made `startColumns` clear the section stack. Simpler behavior.
# 58.0.0 2/9/2023
- ⚠️ BREAKING: (no one should be affected). `getFullyExpandedFile` is no longer exported. Instead use: `new ScrollFile(undefined, filePath).importResults.code`
- ⚠️ BREAKING: (no one should be affected). Order of params to `ScrollFile` have changed. `absoluteFilePath` is now param #2, instaed of #3.
- 🏥 mtime fixes for cache builds.
# 57.0.1 2/8/2023
- 🏥 fix permalink regression
# 57.0.0 2/8/2023
- 🎉 added support for `css` one liners
class blueOneLiner
css .blueOneLiner { color: blue;}
aboveAsCode 2
- 🎉 `title` nodes are now proper aftertext nodes and can use all features of aftertext
- 🎉 the `hidden` keyword can now be used on any aftertext node
- 🏥 if there is no `permalink` on a file the `title` node won't output an a tag
- ⚠️ BREAKING: (no one should be affected). If you had put markup directives in your title tags, such as *bolds*, those will now actually be evaluated.
- ⚠️ BREAKING: `title` blocks now start a section like `#` and `##`, so you may need to add an empty line to end the section, for example if you previously had a `startColumns` right after the title tag.
# 56.1.0 2/8/2023
- 🎉 `snippets` nodes can now accept multiple groups and also groups can be in different folders. Syntax is `[folderPath]/[groupName]` For example:
scrollCode
title The Long Beach Pub
snippets 2023/index stories/index 2022/index
# 56.0.1 2/7/2023
- 🏥 fix bug with images after jtree upgrade
# 56.0.0 2/7/2023
- ⚠️ BREAKING: upgraded to `jtree` 66. If you are extending Scroll you may need to migrate extensions.
# 55.6.0 2/7/2023
- 🏥 tweaks to improve site created by `scroll init`
# 55.5.0 1/31/2023
- 🎉 `aboveAsCode` and `belowAsCode` now take an optional number for showing multiple nodes.
- 🎉 default list CSS style has been adjusted slightly to move bullets inline.
- 🎉 New list type: _ordered lists_:
belowAsCode 3
1. One
2. Two
3. Three
# 55.4.1 1/31/2023
- 🏥 fix spurious `table` grammar error message
# 55.4.0 1/30/2023
- 🎉 added `table` keyword which supports custom delimiters:
table &&
name&&score
kaia&&400
pemma&&100
aboveAsCode
# 55.3.0 1/29/2023
- 🎉 the `class` aftertext directive now inserts a span across the whole element content if no text search is provided.
css
.classDemo {color:blue;}
aboveAsCode
belowAsCode
This whole text will be blue.
class classDemo
# 55.2.0 1/26/2023
- 🏥 upgrade jtree
# 55.1.0 1/20/2023
- 🎉 added `replaceJs` keyword.
# 55.0.1 1/19/2023
- 🏥 fix bug where variables were replacing themselves, leading to possible errors.
# 55.0.0 1/19/2023
- 🏥 improve detection of piped input.
- 🏥 improve `youTube` CORS fix to work whether someone includes www.youtube or not.
- ⚠️ BREAKING: removed `watch` command. `nodemon` can be used for hot reloading. Install with `sudo npm install -g nodemon`. Then run:
bashCode
nodemon -e scroll -x "scroll build"
Or alias it:
bashCode
alias watch="nodemon -e scroll -x 'scroll build'"
You can add the following code to the page(s) you are working on to have them reload without manually refreshing the browser:
scrollCode
html <meta http-equiv="refresh" content="1;">
# 54.1.0 1/19/2023
- 🏥 `scroll init` no longer starts with a `viewSourceBaseUrl`. If not provided then the View Source link is to the scroll file, so new sites don't start with broken links.
# 54.0.0 1/19/2023
- 🎉 `link` nodes can now have `target`. This link will open in blank tab.
https://scroll.pub This link
target _blank
title Title can also be set.
aboveAsCode
- 🎉 `youTube` nodes can now have captions.
- 🏥 fix: non-embed `youTube` links are converted to proper embed links to fix CORS issues.
- ⚠️ BREAKING: ~no one should be affected. `scrollImageComponent` CSS class changed to `scrollCaptionedComponent`. If you were overwriting the previous class may need to update.
- ⚠️ BREAKING: `note` keyword under `link` nodes has been renamed to `title` and instead of it being a block just the line is used. This is to better reflect what it does. See example above.
# 53.0.2 1/18/2023
- 🏥 fix: `youTube` definition was missing a cell type for url.
# 53.0.1 1/17/2023
- 🏥 fix: `redirectTo` definition was missing a cell type for url.
# 53.0.0 1/17/2023
- ⚠️ BREAKING: there was undocumented behavior where `*` nodes previously supported multiple lines of text. This now throws an errors. If you need the old behavior you can copy/paste the old node's Grammar code into your project.
# 52.2.1 1/16/2023
- 🏥 fix: a `*` node with just a link now works correctly. Previously was rendering blank.
# 52.2.0 1/13/2023
- 🎉 `html` now also supports quick oneliners:
belowAsCode
html <b>here is some html</b>
# 52.1.1 1/12/2023
- 🏥 fix: getGroup was including files marked with `importOnly`
# 52.1.0 1/12/2023
- 🏥 Upgrade JTree.
# 52.0.0 1/10/2023
- 🎉 API usage: new getter `buildNeeded` returns whether the folder needs to be rebuilt. You can use this to skip unnecessary builds for faster perf.
- ⚠️ BREAKING: This should not break anyone however behavior has changed. `scroll build` now does not overwrite unmodified files. Now `mtime` reflects when the generated HTML last changed instead of when the `scroll build` command was last run. This speeds up `rsync` deploys.
# 51.0.0 1/9/2023
- 🎉 This version introduces the concept of `Sections`. Headers (`#`, `##` and `?`) now start a section, and a blank line ends it. A section will not be split across columns.
- ⚠️ BREAKING: This slightly changes layouts (for the better, hopefully in all cases) so do a manual inspection of output.
# 50.2.0 1/5/2023
- 🏥 fix bug where it was trying to get image dimensions of remote images when building
- 🎉 upgrade jtree to get perf improvements
# 50.1.0 1/5/2023
- 🎉 `listCommand` now much faster (~33% in pldb) because `findScrollsInDirRecursive` will now skip `node_modules` folders entirely.
# 50.0.0 1/4/2023
- 🎉 made footnotes compile faster
- ⚠️ BREAKING: simplified footnotes by removing `notes` keyword. Referencing a footnote is done the same way but now footnotes just print immediately like you'd expect.
belowAsCode
For example^exampleFootnote
^exampleFootnote This is an example footnote.
aboveAsCode
# 49.1.0 1/4/2023
- 🎉 add `viewSource` keyword.
# 49.0.0 1/4/2023
- ⚠️ BREAKING: renamed `footnote` and `caveat` directives to `hoverNote` to avoid confusion with footnotes.
- ⚠️ BREAKING: removed `startRuledColumns` which doesn't appear to be used anywhere
- 🏥 general code cleanup and refactor by splitting big grammar files into separate files.
# 48.3.0 1/2/2023
- 🎉 added `youTube` keyword for embedding youTube videos with proper responsive sizing.
# 48.2.0 1/2/2023
- 🎉 simplify default theme by removing ornamental borders
# 48.1.0 1/2/2023
- 🏥 fix: keyboardNav now only cycles through pages with keyboardNav (feed.xml files are excluded, for example)
- 🏥 fix: previous/next buttons are not shown if there is no keyboardNav
# 48.0.0 1/1/2023
This release simplifies and removes things from the default install.
- ⚠️ BREAKING: the `github` keyword is now `git` to make it clearer what it does. The git SVG is now used in the default theme.
- ⚠️ BREAKING: removed `twitter` keyword and removed the Twitter link from default theme.
- ⚠️ BREAKING: `SVGS` is no longer exported.
- 🎉 Minor style fix of header and switched email SVG with a nice svg from http://laurareen.com
# 47.4.0 12/30/2022
- 🎉 rss 2.0 now generated with `printFeed`, meaning pubDate and lastBuildDate are included.
# 47.3.0 12/29/2022
- 🎉 upstreamed `stumpNoSnippet` for advanced use case of PLDB until we have better support for custom grammars when using as a library.
# 47.2.1 12/29/2022
- 🏥 endColumns nodes should not be printed in snippets
# 47.2.0 12/29/2022
- 🎉 added `doNotPrint` class to header and footer elements for better printability.
# 47.1.2 12/05/2022
- 🏥 character encoding regression fix.
# 47.1.1 11/30/2022
- 🏥 init fixes
# 47.1.0 11/29/2022
- 🎉 you can now specify number of max columns in `startColumns` keyword
- 🏥 fixed body padding regression
# 47.0.0 11/28/2022
This is a major breaking refactor. Scroll now generates flat html. This release is NOT recommended for the feint of heart. Wait a day or two until the bugs are ironed out.
- ⚠️ BREAKING: removed automatic meta tag generation. You now need to explicitly add a `metaTags` keyword.
- ⚠️ BREAKING: removed `<!doctype>`, `<html>`, `<head>`, and `<body>` tags. Unnecessary. Modern browsers don't need them. HTML never should have had head/body split.
- ⚠️ BREAKING: removed `SCROLL_CSS` export.
# 46.2.0 11/27/2022
- 🏥 `stump` keyword works now
# 46.1.0 11/27/2022
- 🏥 `scrollCss` works now
# 46.0.0 11/27/2022
This is a major breaking refactor. *All the implicit imports are gone*. Everything must be explicitly included now (perhaps with a few slight exceptions like meta tags). This migration guide is a work in progress. This release is NOT recommended for the feint of heart. Wait a day or two until the bugs are ironed out.
- ⚠️ BREAKING: removed `maxColumns` and `columnWidth` and `template`
- ⚠️ BREAKING: headers and footers are not provided by default. You now must explicitly include them with `scrollHeader` and `scrollFooter`. The previous behavior of `scrollHeader` and `scrollFooter` has been removed.
- ⚠️ BREAKING: columns are not provided by default. You now need to wrap your content in `startColumns` and `endColumns`.
- ⚠️ BREAKING: CSS is not included by default. You need to use the snippet keyword `scrollCssTag`. The previous behavior of `scrollCss` has been removed. Also `printScrollCss` is now `scrollCss`.
# 45.0.0 11/24/2022
- 🎉 a whole new way to do footnotes/end notes.
## Footnotes example
Brockton is a city in Massachusetts^state. It was incorporated in 1881^inc.
https://en.wikipedia.org/wiki/Brockton,_Massachusetts Brockton
## Notes
^state A state in the United States.
^inc Incorporated as a city in 1881, but as a town in 1821. Wikipedia.
https://en.wikipedia.org/wiki/Brockton,_Massachusetts Wikipedia
# 44.0.1 11/24/2022
- 🏥 fix hidden title bug
# 44.0.0 11/24/2022
This is the `title` simplification refactor release.
- 🎉 new: `description` keyword for use in open graph description generation.
- 🎉 new: optional `hidden` keyword on `title` nodes for setting `title` without printing it.
- ⚠️ BREAKING: Group pages no longer have a `title` in their HTML by default. Must set manually.
- ⚠️ BREAKING: Removed `siteTitle` and `siteDescription` keywords. Those concepts no longer make sense after the introduction of `groups` concept. Generally if you rename `siteTitle` to `title` and `siteDescription` to `description` it should work well.
- ⚠️ BREAKING: Removed `htmlTitle` keyword.
# 43.1.1 2022.11.22
- 🏥 fix aftertext bug where `http` quick links were not matching.
# 43.1.0 2022.11.14
- 🎉 new: new `SVGS` export when using as a library.
# 43.0.1 2022.11.14
- 🏥 list element (`- some item`) compiler was generating an extra `p` tag.
# 43.0.0 2022.11.12
- 🎉 New: Linkify! Links like https://breckyunits.com and email addresses like feedback@scroll.pub are now compiled to HTML `a` tags automatically. Note: if an `a` tag is detected in the node Linkify will be DISABLED for that node.
- ⚠️ BREAKING: (no one should be affected) slim chance linkify may insert links where you previously did not want them.
# 42.0.0 2022.11.09
- ⚠️ BREAKING: `scroll check` is now `scroll test`
# 41.0.0 2022.11.08
- ⚠️ BREAKING: switched from date format of MM-DD-YYYY to YYYY.MM.DD
regexCode
search ^# (\d+\.\d+\.\d+) (\d+)\-(\d+)\-(\d+)
replace # $1 $4.$2.$3
# 40.0.0 2022.11.05
- ⚠️ BREAKING: (no one should be affected) `caption` now extends the thought (`*`) node.
image blog/screenshot.png
caption You can now use all aftertext directives like *bold* in caption nodes. Note: in the future we may just remove the keyword `caption` and you can just use `*` directly.
# 39.0.0 2022.11.03
- ⚠️ BREAKING: `scroll init` no longer creates a `feed.xml` file by default. You can easily add an XML feed manually with the 2 steps below:
code
comment Add the content below to feed.scroll
import settings.scroll
permalink feed.xml
template blank
printFeed index
code
comment Add the line below to your posts and/or settings import file.
rssFeedUrl feed.xml
# 38.2.0 2022.11.01
- 🎉 new dayjs aftertext directive.
# 38.1.0 2022.11.01
- 🏥 fix group page not having a header.
# 38.0.0 2022.10.31
- 🎉 add left and right buttons to default theme.
# 37.1.1 2022.10.28
- 🏥 Fixed bad table regression where table content was not printing
# 37.1.0 2022.10.28
- 🎉 Documentation improvement
# 37.0.0 2022.10.28
- ⚠️ BREAKING: Removed the original `aftertext` node in favor of `*` nodes. Regex [search replace] to upgrade: `^aftertext\n ` `* `
- ⚠️ BREAKING: Removed basic `paragraph` node. Regex [search replace] to upgrade: `^paragraph\n ` `* `
- ⚠️ BREAKING: Removed basic `question` node. Regex [search replace] to upgrade: `^question ` `? `
- ⚠️ BREAKING: Removed basic `section` node. Regex [search replace] to upgrade: `^section ` `# `
- ⚠️ BREAKING: Removed basic `subsection` node. Regex [search replace] to upgrade: `^subsection ` `## `
- ⚠️ BREAKING: Removed basic `list` node.
- ⚠️ BREAKING: Removed basic `orderedList` node.
- ⚠️ BREAKING: Removed basic `unorderedList` node.
- ⚠️ BREAKING: Removed support for 🔗 links. Regex [search replace] to upgrade: ` ([^ ]+)🔗([^ ]+)` ` <a href="https://$2">$1</a>`
The goal of this release is to simplify and speed up Scroll by removing legacy features.
This is a major release that removes a bunch of the original keywords in favor of the newer more advanced aftertext nodes.
If you don't want to upgrade at this time, it's very easy to just add the removed grammar definitions from this commit into your existing scrolls using the normal extension pattern.
You can also easily alias the newer aftertext node types with the original keywords above if you'd prefer.
# 36.1.0 2022.10.27
- 🎉 Now you can leave the "pattern" part blank in link node in aftertext to make the whole line a link.
- 🏥 Adjust estimateLines hueristics
# 36.0.1 2022.10.24
- 🏥 Fix home icon
# 36.0.0 2022.10.22
- ⚠️ BREAKING: simpler CSS and header
# 35.1.2 2022.10.12
- 🏥 cleanup previous commit
# 35.1.1 2022.10.12
- 🏥 fix duplicated text in `*` nodes bug
# 35.1.0 2022.10.05
- 🎉 Added new better way to do lists.
aboveAsCode
# 35.0.0 2022.10.04
- ⚠️ BREAKING: (no one should be affected) changed return value of api method `findScrollsInDirRecursive`.
# 34.2.0 2022.10.03
- 🎉 add `redirectTo` tag
# 34.1.0 2022.10.02
- 🎉 had an idea for a new type of text tag that blinks
# 34.0.3 2022.9.30
- 🏥 Fix github workflow building.
# 34.0.2 2022.9.30
- 🏥 !
# 34.0.1 2022.9.30
- 🏥 test fix
# 34.0.0 2022.9.30
- 🎉 add support for recursive building and checking using pipes! `scroll list | scroll build`
- ⚠️ BREAKING: (no one should be affected) renamed `execute` method on ScrollCli class to `executeUsersInstructionsFromShell`
# 33.1.0 2022.9.29
- 🎉 remove extraneous words and lines printing in CLI
# 33.0.0 2022.9.29
- ⚠️ BREAKING: (no one should be affected) removed "migrate" command. was more trouble than it was worth. better to have that as a separate module.
- ⚠️ BREAKING: (no one should be affected) `where` command is now `list`
# 32.0.0 2022.9.27
- 🎉 improved 'where' command to scan pwd and skip node_modules folders. much faster and simpler.
# 31.5.0 2022.9.9
- 🎉 new keywords: `?`, `#` and `##`
# A Header
## A Subheader
? Have you thought of the most important question?
# 31.4.1 2022.9.3
- 🏥 and that is why you always run the tests.
# 31.4.0 2022.9.3
- 🎉 New keywords: `*`, `footnote`, and `readingList`
* This is a _thought_. It's like a condensed form of aftertext with *bold* and _italics_ and `code` turned on by default.
hoverNote default
And it supports hover notes!
aboveAsCode
# Reading lists
Projects I'm very actively working on:
readingList
https://pldb.io PLDB.io
https://scroll.pub Scroll
https://breckyunits.com A Blog by Breck Yunits
aboveAsCode
# 31.3.0 2022.9.3
- 🏥 Fixed bad regression where only the first word of a replacement line was getting replaced.
# 31.2.0 2022.9.2
- 🎉 added `openGraphImage` node
# 31.1.0 2022.9.1
- 🎉 `replace` now supports multiline strings
- 🏥 fixed broken links bug if using keyboard nav without groups
# 31.0.0 2022.8.31
- ⚠️ BREAKING: upgraded to jtree 56. This is not likely to break anyone. However, if you are extending Scroll with your own nodeTypes you will need to make sure that your abstract nodes (and *only* your abstract nodes) have an id that begins with `abstract`. You can then remove all occurrences of the keyword `abstract` from your grammar node definitions.
# 30.1.1 2022.8.30
- 🎉 Improve header message thanks to dg's feedback
# 30.1.0 2022.8.29
- 🎉 Perf: ~2x as fast as v30.1
# 30.0.0 2022.8.29
- 🎉 Perf: ~2x as fast as v29
- ⚠️ BREAKING: If using `getFullyExpandedFile(str)` replace with `getFullyExpandedFile(str).code`
- ⚠️ BREAKING: If using any ScrollFile programatically, a few undocumented getters may have changed.
# 29.0.0 2022.8.28
- ⚠️ BREAKING: if using programatically instead of ScrollPage use ScrollFile
# 28.3.2 2022.8.27
- 🏥 fixed bug with open graph image tags
# 28.3.1 2022.8.27
- 🏥 fixed minor grammar typo and added test
# 28.3.0 2022.8.27
- 🎉 added `author` and `kpiTable` node types
# 28.2.0 2022.8.26
- 🏥 export getFullyExpandedFile
# 28.1.0 2022.8.26
- 🏥 imports can now be recursive
# 28.0.0 2022.8.26
This is a *major* update that radically simplifies Scroll and adds significant new capabilities.
## From 3 file types to 1
`scroll.settings` and `*.grammar` files are gone. Everything is now done with `.scroll` files, and now every keyword is documented and usable on try.scroll.com and type checked.
## Imports and variables
Use `import [filepath]` to import one file into another. Use `replace` and `replaceDefault` for variables.
## Add your own Grammar extensions directly in your Scroll files
Define new nodeTypes or create your own aliases on a per file basis. Use the import keyword and build your own collection of common reusable node types for your project(s).
## Unlimited Groups and Group Pages
Add files to one or more groups and then customize how each group page prints. No more magic or implicit creation of collection pages.
## Multiple Compiler Passes
The new language features (imports, grammar nodes, and variables) required a change from a 1 one stage compilation process to a multi-stage compiler pass pattern. The compilers passes run in this order: imports, grammar extensions, then variables. So variables cannot be used in imports or grammar extensions.
## Change list
- ⚠️ BREAKING: The `git` setting is renamed to `viewSourceBaseUrl`
- ⚠️ BREAKING: The `sourceLink` setting is renamed to `viewSourceUrl`
- ⚠️ BREAKING: removed `skipIndexPage`. Instead you now opt-in to group pages like this: `groups index.html`
- ⚠️ BREAKING: removed `scroll.settings` concept. Use `import settings.scroll` now.
- ⚠️ BREAKING: `footer` is now `scrollFooter` and `header` is now `scrollHeader`
- ⚠️ BREAKING: removed `ignoreGrammarFiles`. Custom grammar extensions must now be explicitly imported and/or be in `.scroll` files.
- ⚠️ BREAKING: changed link text from "Article source" to "View source"
- ⚠️ BREAKING: `css` setting is now `scrollCss`
- ⚠️ BREAKING: DefaultScrollScriptCompiler is now DefaultScrollCompiler
- ⚠️ BREAKING: removed buildSinglePages, buildIndexPage, buildSnippetsPage, buildRssFeed, and buildCssFile. Everything done by `buildFiles` now. See 'full.scroll', `index.scroll`, `feed.scroll`, and `style.scroll` in `tests/kitchenSink` for how to implement those in new pattern.
- ⚠️ BREAKING: in default theme CSS some class names have changed:
code
scrollArticleDateComponent => scrollDateComponent
scrollArticlePageComponent => scrollFilePageComponent
scrollSingleArticleTitle => scrollFilePageTitle
scrollIndexPageArticleContainerComponent => scrollGroupPageFileContainerComponent
scrollArticleSourceLinkComponent => scrollFileViewSourceUrlComponent
scrollIndexPageComponent => scrollGroupPageComponent
scrollIndexPageFileContainerComponent => scrollGroupPageFileContainerComponent
- ⚠️ just calling ScrollScript Scroll again unless it becomes confusing
- 🎉 keyboardNav will now use the first group a file belongs to if prev and next are not supplied
## Updating custom CSS
code
comment Put this in a file named style.scroll
permalink style.css
settings
noTemplate
printScrollCSS
# 27.1.1 2022.8.24
- 🏥 only activate keyboard shortcuts if no element has focus
# 27.1.0 2022.8.24
- 🎉 added new cli command: `scroll where`
# 27.0.1 2022.8.23
- 🏥 mutability fix
# 27.0.0 2022.8.23
- 🎉 added `keyboardNav` node
- ⚠️ BREAKING: all `permalink` lines in `.scroll` files need `.html`. Run `scroll migrate` to find and update automatically.
# 26.1.0 2022.8.23
- 🎉 export SCROLL_CSS for tryscroll app
- ⚠️ now calling the language ScrollScript instead of Scrolldown
# 26.0.0 2022.8.23
- ⚠️ (potentially) breaking: scrolldown.grammar is no longer built/checked in and SCROLLDOWN_GRAMMAR_FILENAME no longer exported.