Scroll Release Notes

A list of what has changed in Scroll releases.

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.

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{2i}$.

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 via CDN.

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.

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."

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:
// 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.

62.4.0 3/23/2023

  • ๐Ÿฅ SEO fix: metaTags now sets canonical link

62.3.0 3/22/2023

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. . 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:
html <hr> <hr>

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

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

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!

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:
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
- ๐ŸŽ‰ added support for `css` one liners class blueOneLiner css .blueOneLiner { color: blue;}

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:
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:
1. One 2. Two 3. Three
  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:
name score
kaia 400
pemma 100
table && name&&score kaia&&400 pemma&&100

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;} This whole text will be blue. class classDemo

This whole text will be blue.

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 or not.
  • โš ๏ธ BREAKING: removed watch command. nodemon can be used for hot reloading. Install with sudo npm install -g nodemon. Then run:
nodemon -e scroll -x "scroll build"

Or alias it:

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:

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.
- ๐ŸŽ‰ `link` nodes can now have `target`. This link will open in blank tab. This link target _blank title Title can also be set.
  • ๐ŸŽ‰ 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:
html <b>here is some html</b> here is some html

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.
For example^exampleFootnote

For example1

1 This is an example footnote. โฎ

^exampleFootnote This is an example footnote.

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.

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.

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.

45.0.0 11/24/2022

  • ๐ŸŽ‰ a whole new way to do footnotes/end notes.

Footnotes example

Brockton is a city in Massachusetts2. It was incorporated in 18813.


2 A state in the United States. โฎ

3 Incorporated as a city in 1881, but as a town in 1821. 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 and email addresses like 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
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.

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:
comment Add the content below to feed.scroll import settings.scroll permalink feed.xml template blank printFeed index 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: ([^ ]+)๐Ÿ”—([^ ]+) $1

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.
- ๐ŸŽ‰ Added new better way to do lists.

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.

* 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!

Reading lists

Projects I'm very actively working on:

readingList Scroll A Blog by Breck Yunits

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 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

scrollArticleDateComponent => scrollDateComponent scrollArticlePageComponent => scrollFilePageComponent scrollSingleArticleTitle => scrollFilePageTitle scrollIndexPageArticleContainerComponent => scrollGroupPageFileContainerComponent scrollArticleSourceLinkComponent => scrollFileViewSourceUrlComponent scrollIndexPageComponent => scrollGroupPageComponent scrollIndexPageFileContainerComponent => scrollGroupPageFileContainerComponent

Updating custom CSS

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 SCROLLDOWNGRAMMARFILENAME no longer exported.

25.6.0 2022.8.19

  • ๐ŸŽ‰ simpler API for programmatic usage: new ScrollPage('title Hello world')

25.5.1 2022.7.22

  • ๐Ÿฅ minor grammar fix

25.5.0 2022.7.22

  • ๐Ÿฅ path fixes for Windows thanks to @celtic-coder

25.4.0 2022.7.14

  • ๐ŸŽ‰ 50% faster builds

25.3.2 2022.7.14

  • ๐ŸŽ‰ added cacheing for 40% faster builds

25.3.1 2022.7.14

  • ๐Ÿฅ fixed links in treeTable

25.3.0 2022.7.14

  • ๐ŸŽ‰ added treeTable
treeTable row name Javascript example console.log("Hello world") row name Python example # A code block print "Hello world"
name example
console.log("Hello world")
# A code block
print "Hello world"

25.2.1 2022.7.01

  • ๐Ÿฅ fixed broken links in feed.xml

25.2.0 2022.6.22

  • ๐ŸŽ‰ added htmlTitle and sourceLink keywords so an article can override the defaults

25.1.0 2022.6.19

  • ๐ŸŽ‰ if scroll has an rss feed add a tag to built pages

25.0.0 2022.6.15

  • โš ๏ธ on single article pages, the header will now span across all columns.

24.9.0 2022.6.15

  • ๐ŸŽ‰ added "css" setting. Set css split to write CSS to scroll.css instead of inline, or css none to not generate CSS.
  • ๐Ÿฅ removed extra blank lines in snippets.html generation

24.8.0 2022.6.15

  • ๐ŸŽ‰ if "baseUrl" is set building will also generate an RSS "feed.xml"

24.7.0 2022.6.13

  • ๐Ÿฅ fix when using Scroll programmatically image sizeOf check will use correct folder
  • ๐ŸŽ‰ add param to specify index/snippets page when using programmatically

24.6.0 2022.6.10

  • ๐ŸŽ‰ added wrap keyword for advanced custom wraps in aftertext.

Some simple and advanced usages. An absolute link and a relative link. Show some added text or some deleted text.

Some !simple! and *advanced* usages. An #absolute link# and @@@a relative link@@@. Show some ++added text++ or some --deleted text--. wrap ! em wrap * b wrap # wrap @@@ a href="potato.html" wrap ++ span style="color:green" wrap -- span style="color:red; text-decoration: line-through;"

24.5.0 2022.6.10

  • ๐ŸŽ‰ added wrapsOn keyword to aftertext.

Support for traditional bold, code, and italics in aftertext with the keyword wrapsOn.

Support for traditional *bold*, `code`, and _italics_ in aftertext with the keyword `wrapsOn`.

24.4.0 2022.6.08

  • ๐ŸŽ‰ if your scroll has an article(s) with "endSnippet", scroll will create "snippets.html".

24.3.1 2022.5.25

  • ๐Ÿฅ fix bug where images were stuck at 35ch even when the browser sized columns wider

24.3.0 2022.2.16

This tiny release adds some ways to include more caveats and context around words and references.

  • ๐ŸŽ‰ added 'caveat' directive to aftertext for adding caveats around parts of text
  • ๐ŸŽ‰ added 'note' directive to aftertext links for providing more context around included links

Caveat Example

This is a great idea.

This is a great idea. hoverNote great I'm not actually sure if this is a great idea. But often I want to include a comment and link it back to the text, but don't quite want to footnote it.

Link Quote Example

This report showed the treatment had a big impact.

This report showed the treatment had a big impact. This report title The average growth in the treatment group was 14.2x higher than the control group.

24.2.0 2022.1.18

  • ๐ŸŽ‰ added 'id' directive to aftertext for adding ids to paragraphs

  • ๐ŸŽ‰ added 'loremIpsum' nodeType to help in testing and exploring

Example demonstrating the above:

aftertext Click here to go to the middle paragraph. link #middleParagraph Click here loremIpsum 20 aftertext Here is the middle paragraph. id middleParagraph loremIpsum 20

24.1.1 2022.1.13

  • ๐Ÿฅ fix bug where migrator was not replacing ๐Ÿ”— links in paragraphs when upgrading to aftertext
  • ๐Ÿฅ fix typo in release notes

24.1.0 2022.1.13

  • ๐ŸŽ‰ added migrate command to automate migrations when there are breaking changes
  • ๐ŸŽจ added background color and styling to inline code elements in default theme

24.0.0 2022.1.11

  • ๐ŸŽ‰ if a table has a column name ending in "Link", that will be used to link the matching column. See example below.
  • โš ๏ธ if you have tables with a column ending in "Link" beware the new behavior
pipeTable name|nameLink Wikipedia|

By default the article's date will be used but you can also provide a custom date.

A truck transporting llamas collided into a pajama factory late last night. dateline 2/21/2020

February 21, 2020 โ€” A truck transporting llamas collided into a pajama factory late last night.

To migrate and keep your existing datelines use the command scroll migrate.

23.2.0 2021.12.22

  • ๐ŸŽ‰ add "matchAll" and "match" support to aftertext for more advanced matching options
  • ๐ŸŽ‰ add "class" markup directive to aftertext
  • ๐ŸŽ‰ add "css" node for easier insertion of CSS
  • ๐Ÿฅ fix bug in aftertext when 2 tags started at same index
  • ๐Ÿฅ make basic dateline work in browser

Can you show an example of the new advanced aftertext features?

How much wood can a woodchuck chuck if a woodchuck could chuck wood?

How much wood can a woodchuck chuck if a woodchuck could chuck wood? woodchuck matchAll class standout wood match 0 3 css .standout { background-color: yellow; border: 1px dashed red; padding: 5px; }

23.1.0 2021.12.21

  • ๐ŸŽ‰ add dateline node to aftertext.

23.0.0 2021.12.09

  • ๐ŸŽ‰ add aftertext node type, with bold, italics, underline, link (& quick link), email, code and strikethrough keywords
  • ๐ŸŽ‰ add belowAsCode and aboveAsCode
  • ๐ŸŽ‰ split base grammar into files for easier extensibility

Can you show an example of aftertext?

You write some text. After your text, you add your markup instructions with selectors to select the text to markup, one command per line. For example, this paragraph is written in Aftertext and the source code looks like:

You write some text. After your text, you add your markup instructions with selectors to select the text to markup, one command per line. For example, this paragraph is written in Aftertext and the source code looks like: italics After your text italics selectors

22.4.0 2021.11.25

  • ๐ŸŽ‰ add basic caption support to images

This is a caption

image blog/screenshot.png caption This is a caption

22.3.0 2021.08.23

  • ๐ŸŽ‰ columnWidth to set a custom column width per article or folder
  • ๐ŸŽ‰ maxColumns can be set globally in settings

22.2.0 2021.08.23

  • ๐ŸŽ‰ integrated design feedback into default theme for better readability

22.1.0 2021.07.23

  • ๐Ÿฅ you can now ignore custom grammar files in a dir with ignoreGrammarFiles

22.0.0 2021.07.09

  • ๐ŸŽ‰ scroll.settings file is now optional and you can use scroll to build a single page.
  • ๐ŸŽ‰ you can now set 'header' and/or 'footer' on articles.

21.4.0 2021.07.08

  • ๐ŸŽ‰ you can now set 'maxColumns' on articles.

21.3.0 2021.07.07

  • ๐ŸŽ‰ if all articles have 'skipIndexPage', 'index.html' will not be built

21.2.0 2021.07.06

  • โš ๏ธ internal CSS changes

21.0.0 2021.06.21

  • ๐ŸŽ‰ built in support for custom grammars!
  • โš ๏ธ internal nodejs API changes: Article is no longer exported and ScrollBuilder is now ScrollFolder

20.0.0 2021.06.21

  • ๐ŸŽ‰ new question nodetype. Simply compiles to an h4 for now but more semantic this way.
  • ๐ŸŽ‰ new section nodetype. Simply compiles to an h3 for now but more semantic this way.
  • ๐ŸŽ‰ new subsection nodetype. Simply compiles to an h4 for now but more semantic this way.
  • โš ๏ธ title2-title6 have been removed. use question, section and subsection instead.

Why the new question nodes?

Question and answer structures are literally older than the Socratic Method. Such a common semantic pattern deserves it's own keywords.

How do I migrate from title# nodes?

The below regex may help.

Find ^title\d (.+\?) ReplaceWith question $1 Find ^title\d (.+) ReplaceWith section $1

19.3.1 2021.06.20

  • ๐ŸŽ‰ show the version in footer
  • ๐Ÿฅ fix title in single pages without a title

19.3.0 2021.06.20

  • ๐Ÿฅ fix bug where readme.scroll could be overwritten by init

19.2.0 2021.06.17

  • ๐ŸŽ‰ improved styling for tables

19.1.0 2021.06.17

  • ๐Ÿฅ fix bug with http links
  • ๐Ÿฅ simpler article padding and changed scroll title to h2 from h1

19.0.0 2021.06.17

  • ๐ŸŽ‰ ability to override header and footer

18.4.0 2021.06.17

  • ๐Ÿฅ improved alignment of images

18.3.0 2021.06.16

  • ๐ŸŽ‰ og meta tags for social media sharing

18.2.0 2021.06.16

  • ๐Ÿฅ title now links to "index.html". less magic and works much better locally

18.1.1 2021.06.16

  • ๐Ÿฅ fix regression where 2 columns on mobile were not downsizing to 1

18.1.0 2021.06.16

  • ๐ŸŽ‰ short articles now are put into 1 or 2 columns

18.0.0 2021.06.15

  • ๐ŸŽ‰ build is now ~46% faster
  • ๐Ÿฅ refactored html generation in preparation for easier extending and theming

17.5.0 2021.06.05

  • ๐Ÿฅ fixed numerous bugs in importing RSS feeds and added examples

17.4.0 2021.06.04

  • ๐ŸŽ‰ typography adjustments
  • ๐Ÿฅ fixed overlapping social icons up top on mobile. just keep git link

17.3.0 2021.06.03

  • ๐ŸŽ‰ images now link to the full size image

17.2.2 2021.06.02

  • ๐Ÿฅ fixed safari-only bug not painting overflowing code blocks on single pages

17.2.1 2021.05.25

  • ๐Ÿฅ fixed bug where sequential links were not getting parsed

17.2.0 2021.05.25

  • ๐Ÿฅ tables can now break on single pages for higher information density

17.1.0 2021.05.25

  • ๐ŸŽ‰ pipeTable
what why
PipeTable Because it's awesome!

17.0.0 2021.05.25

  • ๐ŸŽ‰ tabTable and commaTable
  • โš ๏ธ table is now spaceTable
  • ๐Ÿฅ do not crash if an empty row in a table

16.2.0 2021.05.24

  • ๐Ÿฅ do not crash if an image is not found

16.1.0 2021.05.24

  • ๐ŸŽ‰ building a site is now ~2.4x faster ๐ŸŽ

16.0.0 2021.05.22

  • โš ๏ธ rename to scroll.settings

15.0.0 2021.05.21

  • ๐ŸŽ‰ Scroll will detect and emit image sizes during build to reduce layout shifts.

14.3.0 2021.05.21

  • ๐Ÿฅ Scroll is now somewhat usable as an NPM module.

14.2.0 2021.05.20

  • ๐Ÿฅ added html head meta viewport tag for better mobile experience.

14.1.0 2021.05.20

  • ๐Ÿฅ added doctype tag
  • ๐Ÿฅ added html head meta description tag

14.0.0 2021.05.19

  • โš ๏ธ removed links nodeType
  • โš ๏ธ fixed bug where sometimes permalinks were still using title and not filename

13.3.0 2021.05.18

  • ๐ŸŽ‰ html and image node types

To use an image node:

image foo.jpg

QuickParagraphs are now an error. When you want to drop in some HTML, do so with HTML node:

html <b>anything goes here</b>

13.2.0 2021.05.18

  • ๐ŸŽ‰ Added scroll check command

13.1.0 2021.05.18

  • ๐ŸŽ‰ ๐Ÿ”—links in lists as well as paragraphs

13.0.0 2021.05.17

  • ๐ŸŽ‰ ๐Ÿ”—links in paragraph nodes.
  • ๐ŸŽ‰ skipIndexPage nodeType

How do I use the new single word links?

For single word links in paragraph nodes only (for now) you can now do:

paragraph This is a link๐Ÿ”—

Below is a regex for migrating existing *.scroll files.

<a href="https://([^"]+)">([^ ]+)</a> $2๐Ÿ”—$1

How do I use the ๐Ÿ”—link tag with multiword links?

The ๐Ÿ”—link tag only supports single word links. Like everything with ScrollScript, you have a number of options if the conventional design doesn't work for you. Your options are:

Can I not include a page in the index page?

Now you can! Sometimes you just want to publish an independent page without including it in the index. To do that, just add skipIndexPage.

12.1.0 2021.05.14

  • ๐ŸŽ‰ chat nodeType
You can now do dialogues

12.0.0 2021.05.12

  • โš ๏ธ scroll create is now scroll init
  • โš ๏ธ Removed export command
  • ๐Ÿฅ removed folder. Less code and now flat.

11.0.0 2021.05.11

  • ๐ŸŽ‰ list, orderedList, and links node types
  • ๐ŸŽ‰ codeWithLanguageNode
  • ๐Ÿฅ HTML escaped in code blocks

10.0.0 2021.05.10

  • ๐ŸŽ‰ table nodeType for SSVs with linkify
  • ๐ŸŽ‰ Better docs in ScrollScript grammar
  • โš ๏ธ Removed list nodeType
  • โš ๏ธ Removed link nodeType
  • ๐Ÿฅ Windows return character fix
  • ๐Ÿฅ multiline support in subheader nodeTypes

9.0.0 2021.05.05

  • ๐ŸŽ‰ ScrollScript now has a quote nodeType.
  • ๐Ÿฅ Code block format bug fixes.
  • ๐Ÿฅ Styling improvements

8.0.0 2021.04.10

  • ๐ŸŽ‰ Scroll now just builds files. No web server needed.

7.0.0 2021.04.03

  • โš ๏ธ Scroll the language is now called Scrolldown (thanks FB!).
  • ๐Ÿฅ Bug fixes.
  • ๐ŸŽ‰ Better perf.

6.0.0 2021.03.08

  • ๐ŸŽ‰ By popular request, Scroll now also publishes each article to its own page.
  • ๐ŸŽ‰ Fewer links. Do less. KISS.
  • ๐ŸŽ‰ Better perf.
  • ๐ŸŽ‰ "permalink" nodeType

5.0.0 2021.02.28

  • ๐ŸŽ‰ Changed name of everything from dumbdown to Scroll per user feedback
  • โš ๏ธ File extension of articles needs to be "scroll" and not "dd" now.

4.2.0 2021.02.22

  • ๐Ÿฅ Fixed paragraph parsing and rendering

4.1.0 2021.02.22

  • ๐ŸŽ‰ "git" scrollSetting for article source links.

View source