From b143848bf6d47b9e0b092e3943c5438e9a3f62ff Mon Sep 17 00:00:00 2001 From: breck7 Date: Thu, 9 Jan 2025 16:28:02 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20wws=20from=20@=20breck7/scroll?= =?UTF-8?q?@a6548c0b51a76590524393de2a117a6f0482da0e=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 6 +- blog/changes.html | 6 +- blog/changes.txt | 2 +- blog/contacts.html | 6 +- blog/contacts.txt | 2 +- blog/counterpoints.html | 6 +- blog/counterpoints.txt | 2 +- blog/counters.html | 6 +- blog/counters.txt | 2 +- blog/csvToScrollSet.html | 6 +- blog/csvToScrollSet.txt | 2 +- blog/dataScience.html | 6 +- blog/dataScience.txt | 2 +- blog/feed.xml | 2 +- blog/forms.html | 6 +- blog/forms.txt | 2 +- blog/full.html | 24 +- blog/full.txt | 2 +- blog/gitOverRss.html | 6 +- blog/gitOverRss.txt | 2 +- blog/heatrix.html | 6 +- blog/heatrix.txt | 2 +- blog/helpful404s.html | 6 +- blog/helpful404s.txt | 2 +- blog/indented-heredocs.html | 6 +- blog/indented-heredocs.txt | 2 +- blog/index.html | 6 +- blog/index.txt | 2 +- blog/introducingBlink.html | 6 +- blog/introducingBlink.txt | 2 +- blog/plot.html | 6 +- blog/plot.txt | 2 +- blog/posts.csv | 12 +- blog/posts.json | 12 +- blog/posts.tsv | 12 +- blog/programLinks.html | 6 +- blog/programLinks.txt | 2 +- blog/scrollInQuestions.html | 10 +- blog/scrollInQuestions.txt | 2 +- blog/scrollsets.html | 20 +- blog/scrollsets.txt | 2 +- blog/search.html | 46 +- blog/search.txt | 42 +- blog/stamp.html | 6 +- blog/stamp.txt | 2 +- blog/tables.html | 6 +- blog/tables.txt | 2 +- blog/teddyTalk.html | 6 +- blog/teddyTalk.txt | 2 +- blog/textFiles.html | 6 +- blog/textFiles.txt | 2 +- cloc.html | 26 +- cloc.txt | 8 +- download.html | 6 +- download.txt | 2 +- faq.html | 6 +- faq.txt | 8 +- index.html | 6 +- index.txt | 2 +- leetsheet.csv | 6 + leetsheet.html | 8 +- leetsheet.json | 12 + leetsheet.txt | 4 +- node_modules/.package-lock.json | 2 +- package-lock.json | 4 +- package.json | 2 +- pages.csv | 46 +- parserLeetsheet.html | 6 +- parserLeetsheet.txt | 2 +- parserPrompt.txt | 38 +- parserUsage.csv | 6 +- parsers/aftertext.parsers | 5 +- parsers/paragraphs.parsers | 16 +- parsers/root.parsers | 2 +- parsers/sections.parsers | 14 + particlesLeetsheet.html | 6 +- particlesLeetsheet.txt | 2 +- readmePrompt.txt | 4 + releaseNotes.csv | 1 + releaseNotes.html | 3812 ++++++++++++++++--------------- releaseNotes.json | 7 + releaseNotes.scroll | 4 + releaseNotes.tsv | 1 + releaseNotes.txt | 59 +- releaseNotesMeasures.tsv | 10 +- roadmap.html | 6 +- roadmap.txt | 8 +- scroll.parsers | 36 +- tests/a-review-of-my-sink.html | 6 +- tests/about.html | 6 +- tests/all.html | 12 +- tests/autoTitle.html | 2 +- tests/blogPost.html | 6 +- tests/cloc.html | 16 +- tests/debugging.html | 2 +- tests/dependencies.html | 6 +- tests/disk.html | 391 ++-- tests/favicon.html | 4 +- tests/feed.rss | 2 +- tests/full.html | 10 +- tests/index.html | 210 +- tests/iris.html | 60 +- tests/json.html | 2 +- tests/lists.html | 2 +- tests/maps.html | 34 +- tests/openGraphImages.html | 4 +- tests/posts.html | 4 +- tests/prompt.txt | 2 +- tests/relativeSnippets.html | 12 +- tests/scrollVersion.html | 2 +- tests/sitemap.txt | 2 +- tests/subfolder/aTestPost.html | 4 +- tests/tabularData.html | 4 +- tests/top-sinks.html | 12 +- tests/top-sinks.txt | 2 +- tutorial.html | 10 +- tutorial.txt | 8 +- 117 files changed, 2748 insertions(+), 2626 deletions(-) create mode 100644 parsers/sections.parsers diff --git a/404.html b/404.html index 2ead966b9..3bb91c65e 100644 --- a/404.html +++ b/404.html @@ -5,13 +5,13 @@ Page not found - + - + @@ -39,7 +39,7 @@ -
Built with Scroll v165.2.0
+
Built with Scroll v165.3.0
\ No newline at end of file diff --git a/blog/changes.html b/blog/changes.html index a813ae45c..6b59ec246 100644 --- a/blog/changes.html +++ b/blog/changes.html @@ -3,13 +3,13 @@ Changes: A Microlang for Change Logs - + - + @@ -112,7 +112,7 @@ -
Built with Scroll v165.2.0
+
Built with Scroll v165.3.0
\ No newline at end of file diff --git a/blog/changes.txt b/blog/changes.txt index 9df439b8d..888675df0 100644 --- a/blog/changes.txt +++ b/blog/changes.txt @@ -91,4 +91,4 @@ Related - What can we learn from programming language version numbers? https://breckyunits.com/versionNumbers.html What can we learn from programming language version numbers? -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/contacts.html b/blog/contacts.html index 3c5559678..1d6ce67d5 100644 --- a/blog/contacts.html +++ b/blog/contacts.html @@ -3,13 +3,13 @@ Contacts: A Microlang for Managing Contacts - + - + @@ -116,7 +116,7 @@ -
Built with Scroll v165.2.0
+
Built with Scroll v165.3.0
\ No newline at end of file diff --git a/blog/contacts.txt b/blog/contacts.txt index b88afcc5c..568e1adbe 100644 --- a/blog/contacts.txt +++ b/blog/contacts.txt @@ -93,4 +93,4 @@ Notes ⁂ -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/counterpoints.html b/blog/counterpoints.html index e62005a11..4cf310d7e 100644 --- a/blog/counterpoints.html +++ b/blog/counterpoints.html @@ -3,13 +3,13 @@ Counterpoints: A new tool for thought in the Scroll Language - + - + @@ -100,7 +100,7 @@ -
Built with Scroll v165.2.0
+
Built with Scroll v165.3.0
\ No newline at end of file diff --git a/blog/counterpoints.txt b/blog/counterpoints.txt index fed26a32e..54976eb4f 100644 --- a/blog/counterpoints.txt +++ b/blog/counterpoints.txt @@ -81,4 +81,4 @@ Keep writing, keep thinking! ⁂ -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/counters.html b/blog/counters.html index 97e7c50f2..bb5c583ed 100644 --- a/blog/counters.html +++ b/blog/counters.html @@ -3,13 +3,13 @@ Build Your Own Counters With 3 Words - + - + @@ -106,7 +106,7 @@ -
Built with Scroll v165.2.0
+
Built with Scroll v165.3.0
\ No newline at end of file diff --git a/blog/counters.txt b/blog/counters.txt index 0942cf8f6..378f4f3d2 100644 --- a/blog/counters.txt +++ b/blog/counters.txt @@ -91,4 +91,4 @@ Computer Chips ⁂ -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/csvToScrollSet.html b/blog/csvToScrollSet.html index 70126c361..a9d49d25e 100644 --- a/blog/csvToScrollSet.html +++ b/blog/csvToScrollSet.html @@ -3,13 +3,13 @@ Convert CSVs to ScrollSets - + - + @@ -86,7 +86,7 @@ -
Built with Scroll v165.2.0
+
Built with Scroll v165.3.0
\ No newline at end of file diff --git a/blog/csvToScrollSet.txt b/blog/csvToScrollSet.txt index 3a9a9468e..72a04248c 100644 --- a/blog/csvToScrollSet.txt +++ b/blog/csvToScrollSet.txt @@ -29,4 +29,4 @@ ScrollSets: source code for CSVs 04/21/2024 https://scroll.pub/blog/scrollsets.html -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/dataScience.html b/blog/dataScience.html index 05f03c003..5ad18e460 100644 --- a/blog/dataScience.html +++ b/blog/dataScience.html @@ -3,13 +3,13 @@ Data Science with Scroll - + - + @@ -2123,7 +2123,7 @@ -
Built with Scroll v165.2.0
+
Built with Scroll v165.3.0
\ No newline at end of file diff --git a/blog/dataScience.txt b/blog/dataScience.txt index cea6c4c57..6b953f94a 100644 --- a/blog/dataScience.txt +++ b/blog/dataScience.txt @@ -149,4 +149,4 @@ This tutorial covered the basics of data science with Scroll. Some key takeaways ⁂ -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/feed.xml b/blog/feed.xml index 890764e14..145254034 100644 --- a/blog/feed.xml +++ b/blog/feed.xml @@ -4,7 +4,7 @@ Feed https://scroll.pub/blog/ Official blog for Scroll - Wed, 08 Jan 2025 21:30:37 +0000 + Thu, 09 Jan 2025 16:27:53 +0000 en-us Data Science with Scroll diff --git a/blog/forms.html b/blog/forms.html index cf90608d1..908207e13 100644 --- a/blog/forms.html +++ b/blog/forms.html @@ -3,13 +3,13 @@ Web Forms for Geniuses - + - + @@ -84,7 +84,7 @@ - + \ No newline at end of file diff --git a/blog/forms.txt b/blog/forms.txt index 7c116eb1b..e6c20189d 100644 --- a/blog/forms.txt +++ b/blog/forms.txt @@ -56,4 +56,4 @@ If you are a winner, a builder, a genius, join us on GitHub or Reddit. ⁂ -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/full.html b/blog/full.html index 9a7377a5e..2bab0346d 100644 --- a/blog/full.html +++ b/blog/full.html @@ -3,13 +3,13 @@ The Official Scroll Blog - + - + @@ -2206,8 +2206,8 @@
  • Subparticles are indicated by a single indented space.
  • How do I make a subparticle?

    - +

    Can I use the Particles, Parsers, and Scroll concepts to design 2D or 3D languages that don't use computers at all?

    Yes. But generally when we talk about PPS we are talking about the form designed for binary and computers.

    @@ -3057,16 +3057,16 @@ mars,2 jupiter,63

    Overview:

    -
    • ScrollSets are built from 4 atomic elements:
      • concepts
        • think of rows in a spreadsheet
        • +
          • ScrollSets are built from 4 atomic elements:
            • concepts
              • think of rows in a spreadsheet
              • denoted by a line starting with id
              • -
              • concepts are multiple lines of measurements
              -
            • measures
              • think of these as the column names in a spreadsheet, along with meta information about the column
              • +
              • concepts are multiple lines of measurements
              +
            • measures
              • think of these as the column names in a spreadsheet, along with meta information about the column
              • aka "parsers"
              • -
              • measures are defined in Parsers that start with a line like moonsParser
              -
            • values
              • these are just the values of the measurements
              -
            • measurements
              • concept & measure & value = measurement
              • +
              • measures are defined in Parsers that start with a line like moonsParser
              +
            • values
              • these are just the values of the measurements
            • +
            • measurements
              • concept & measure & value = measurement
              • 1 measurement = 1 line
              • -
              • measurements can have nested comments that are stripped when compiling to TSV/CSV
          +
        • measurements can have nested comments that are stripped when compiling to TSV/CSV

    How to use

    • A concept is like a row in a database. All concepts need an id (or other concept delimiter). When you write id [conceptId], Scroll knows that is the beginning of a new concept.
    • @@ -3664,7 +3664,7 @@

      level 4 heading

      - + \ No newline at end of file diff --git a/blog/full.txt b/blog/full.txt index 5dae481ef..d679fdf03 100644 --- a/blog/full.txt +++ b/blog/full.txt @@ -100,4 +100,4 @@ The Power of Indented Heredocs: Markdown, Textile, and BBCode in one file with n 08/23/2021 https://scroll.pub/blog/indented-heredocs.html -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/gitOverRss.html b/blog/gitOverRss.html index f99b999b4..d9d366d5e 100644 --- a/blog/gitOverRss.html +++ b/blog/gitOverRss.html @@ -3,13 +3,13 @@ The Successor to RSS is Git Clone - + - + @@ -77,7 +77,7 @@ - + \ No newline at end of file diff --git a/blog/gitOverRss.txt b/blog/gitOverRss.txt index 824dd41da..067d4c34e 100644 --- a/blog/gitOverRss.txt +++ b/blog/gitOverRss.txt @@ -41,4 +41,4 @@ Notes vladimyr on bluesky dug up a couple of cool examples of prior art. https://bsky.app/profile/vladimyr.bsky.social/post/3l3anievhnm2t vladimyr on bluesky -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/heatrix.html b/blog/heatrix.html index 6f005b1da..1b2532f93 100644 --- a/blog/heatrix.html +++ b/blog/heatrix.html @@ -3,13 +3,13 @@ Heatrix: Heat Maps + Matrix Visualizations - + - + @@ -119,7 +119,7 @@ - +
    \ No newline at end of file diff --git a/blog/heatrix.txt b/blog/heatrix.txt index b2f4dada4..3e8467feb 100644 --- a/blog/heatrix.txt +++ b/blog/heatrix.txt @@ -64,4 +64,4 @@ If you like `heatrix` and want to see more stuff like this, but a folder on the ⁂ -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/helpful404s.html b/blog/helpful404s.html index 315e54083..35f06ee93 100644 --- a/blog/helpful404s.html +++ b/blog/helpful404s.html @@ -3,13 +3,13 @@ How I Designed Helpful 404's and Stopped Worrying about Broken Links - + - + @@ -101,7 +101,7 @@ - + \ No newline at end of file diff --git a/blog/helpful404s.txt b/blog/helpful404s.txt index fe9ab713e..3a10abcee 100644 --- a/blog/helpful404s.txt +++ b/blog/helpful404s.txt @@ -86,4 +86,4 @@ Try it today, and if you like what we are doing please consider bringing your si ⁂ -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/indented-heredocs.html b/blog/indented-heredocs.html index 83a9f9174..36b71ec97 100644 --- a/blog/indented-heredocs.html +++ b/blog/indented-heredocs.html @@ -3,13 +3,13 @@ The Power of Indented Heredocs: Markdown, Textile, and BBCode in one file with no escaping - + - + @@ -314,7 +314,7 @@

    level 4 heading

    - + \ No newline at end of file diff --git a/blog/indented-heredocs.txt b/blog/indented-heredocs.txt index b579ebaef..368edb774 100644 --- a/blog/indented-heredocs.txt +++ b/blog/indented-heredocs.txt @@ -39,4 +39,4 @@ Textile BBCode ====== -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/index.html b/blog/index.html index aebe3e416..d863493bd 100644 --- a/blog/index.html +++ b/blog/index.html @@ -3,13 +3,13 @@ The Official Scroll Blog - + - + @@ -238,7 +238,7 @@ - + \ No newline at end of file diff --git a/blog/index.txt b/blog/index.txt index 5dae481ef..d679fdf03 100644 --- a/blog/index.txt +++ b/blog/index.txt @@ -100,4 +100,4 @@ The Power of Indented Heredocs: Markdown, Textile, and BBCode in one file with n 08/23/2021 https://scroll.pub/blog/indented-heredocs.html -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/introducingBlink.html b/blog/introducingBlink.html index ffbe1e46b..556f077a8 100644 --- a/blog/introducingBlink.html +++ b/blog/introducingBlink.html @@ -3,13 +3,13 @@ Introducing the Blink Tag - + - + @@ -71,7 +71,7 @@ - + \ No newline at end of file diff --git a/blog/introducingBlink.txt b/blog/introducingBlink.txt index 2734a78cf..22f11fc9d 100644 --- a/blog/introducingBlink.txt +++ b/blog/introducingBlink.txt @@ -27,4 +27,4 @@ Advertisers have known for ages that human eyes evolved to respond fast to motio _Note: please don't use this. It's a joke_ -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/plot.html b/blog/plot.html index 640859963..4aa0dd775 100644 --- a/blog/plot.html +++ b/blog/plot.html @@ -3,13 +3,13 @@ Write scatterplot to get a scatterplot - + - + @@ -249,7 +249,7 @@ - + \ No newline at end of file diff --git a/blog/plot.txt b/blog/plot.txt index 0012c04f3..b3b0c9633 100644 --- a/blog/plot.txt +++ b/blog/plot.txt @@ -68,4 +68,4 @@ If you like where this is headed, give us a star on GitHub. ^engineering: The difference between programming and engineering? It takes programming to make a program that works. It takes engineering to make a program that _barely_ works. -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/posts.csv b/blog/posts.csv index 820a014b7..d66cac752 100644 --- a/blog/posts.csv +++ b/blog/posts.csv @@ -1,10 +1,10 @@ date,year,title,permalink,authors,tags,wordCount,minutes -01/08/2025,2025,Search the Official Scroll Blog,search.html,,,9810,49 -01/08/2025,2025,Settings,settings.html,,,0,0 -01/08/2025,2025,Sitemap,sitemap.html,,,157,0.8 -01/08/2025,2025,The Official Scroll Blog,index.html,,,314,1.6 -01/08/2025,2025,Feed,feed.html,,,303,1.5 -01/08/2025,2025,The Official Scroll Blog,full.html,,,314,1.6 +01/09/2025,2025,Search the Official Scroll Blog,search.html,,,9810,49 +01/09/2025,2025,Settings,settings.html,,,0,0 +01/09/2025,2025,Sitemap,sitemap.html,,,157,0.8 +01/09/2025,2025,The Official Scroll Blog,index.html,,,314,1.6 +01/09/2025,2025,Feed,feed.html,,,303,1.5 +01/09/2025,2025,The Official Scroll Blog,full.html,,,314,1.6 01/06/2025,2025,Data Science with Scroll,dataScience.html,Breck Yunits,All,632,3.2 10/28/2024,2024,Scroll in 50 Questions,scrollInQuestions.html,Breck Yunits,All,1082,5.4 10/01/2024,2024,Web Forms for Geniuses,forms.html,Breck Yunits,All,369,1.8 diff --git a/blog/posts.json b/blog/posts.json index 7b0525f51..086765a45 100644 --- a/blog/posts.json +++ b/blog/posts.json @@ -1,6 +1,6 @@ [ { - "date": "01/08/2025", + "date": "01/09/2025", "year": 2025, "title": "Search the Official Scroll Blog", "permalink": "search.html", @@ -9,7 +9,7 @@ "minutes": 49 }, { - "date": "01/08/2025", + "date": "01/09/2025", "year": 2025, "title": "Settings", "permalink": "settings.html", @@ -18,7 +18,7 @@ "minutes": 0 }, { - "date": "01/08/2025", + "date": "01/09/2025", "year": 2025, "title": "Sitemap", "permalink": "sitemap.html", @@ -27,7 +27,7 @@ "minutes": 0.8 }, { - "date": "01/08/2025", + "date": "01/09/2025", "year": 2025, "title": "The Official Scroll Blog", "permalink": "index.html", @@ -36,7 +36,7 @@ "minutes": 1.6 }, { - "date": "01/08/2025", + "date": "01/09/2025", "year": 2025, "title": "Feed", "permalink": "feed.html", @@ -45,7 +45,7 @@ "minutes": 1.5 }, { - "date": "01/08/2025", + "date": "01/09/2025", "year": 2025, "title": "The Official Scroll Blog", "permalink": "full.html", diff --git a/blog/posts.tsv b/blog/posts.tsv index 55593f8e4..a3c171d1b 100644 --- a/blog/posts.tsv +++ b/blog/posts.tsv @@ -1,10 +1,10 @@ date year title permalink authors tags wordCount minutes -01/08/2025 2025 Search the Official Scroll Blog search.html 9810 49 -01/08/2025 2025 Settings settings.html 0 0 -01/08/2025 2025 Sitemap sitemap.html 157 0.8 -01/08/2025 2025 The Official Scroll Blog index.html 314 1.6 -01/08/2025 2025 Feed feed.html 303 1.5 -01/08/2025 2025 The Official Scroll Blog full.html 314 1.6 +01/09/2025 2025 Search the Official Scroll Blog search.html 9810 49 +01/09/2025 2025 Settings settings.html 0 0 +01/09/2025 2025 Sitemap sitemap.html 157 0.8 +01/09/2025 2025 The Official Scroll Blog index.html 314 1.6 +01/09/2025 2025 Feed feed.html 303 1.5 +01/09/2025 2025 The Official Scroll Blog full.html 314 1.6 01/06/2025 2025 Data Science with Scroll dataScience.html Breck Yunits All 632 3.2 10/28/2024 2024 Scroll in 50 Questions scrollInQuestions.html Breck Yunits All 1082 5.4 10/01/2024 2024 Web Forms for Geniuses forms.html Breck Yunits All 369 1.8 diff --git a/blog/programLinks.html b/blog/programLinks.html index 39bc72adf..c4568073b 100644 --- a/blog/programLinks.html +++ b/blog/programLinks.html @@ -3,13 +3,13 @@ Introducing Program Links - + - + @@ -123,7 +123,7 @@ - + \ No newline at end of file diff --git a/blog/programLinks.txt b/blog/programLinks.txt index 97ae50ab8..c34be6e76 100644 --- a/blog/programLinks.txt +++ b/blog/programLinks.txt @@ -55,4 +55,4 @@ But by the HTML spec newlines are not a URL code point and generally are strippe Program Links in Scroll handle encoding newlines and any other special characters so you can focus on your content and not the encoding. -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/scrollInQuestions.html b/blog/scrollInQuestions.html index f9f0d3934..a43393049 100644 --- a/blog/scrollInQuestions.html +++ b/blog/scrollInQuestions.html @@ -3,13 +3,13 @@ Scroll in 50 Questions - + - + @@ -143,8 +143,8 @@
  • Subparticles are indicated by a single indented space.
  • How do I make a subparticle?

    - +

    Can I use the Particles, Parsers, and Scroll concepts to design 2D or 3D languages that don't use computers at all?

    Yes. But generally when we talk about PPS we are talking about the form designed for binary and computers.

    @@ -221,7 +221,7 @@ - + \ No newline at end of file diff --git a/blog/scrollInQuestions.txt b/blog/scrollInQuestions.txt index c9460c8eb..a761494b8 100644 --- a/blog/scrollInQuestions.txt +++ b/blog/scrollInQuestions.txt @@ -271,4 +271,4 @@ Both. ⁂ -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/scrollsets.html b/blog/scrollsets.html index ba016d647..3767fdc51 100644 --- a/blog/scrollsets.html +++ b/blog/scrollsets.html @@ -3,13 +3,13 @@ ScrollSets: source code for CSVs - + - + @@ -98,16 +98,16 @@ mars,2 jupiter,63

    Overview:

    -
    • ScrollSets are built from 4 atomic elements:
      • concepts
        • think of rows in a spreadsheet
        • +
          • ScrollSets are built from 4 atomic elements:
            • concepts
              • think of rows in a spreadsheet
              • denoted by a line starting with id
              • -
              • concepts are multiple lines of measurements
              -
            • measures
              • think of these as the column names in a spreadsheet, along with meta information about the column
              • +
              • concepts are multiple lines of measurements
              +
            • measures
              • think of these as the column names in a spreadsheet, along with meta information about the column
              • aka "parsers"
              • -
              • measures are defined in Parsers that start with a line like moonsParser
              -
            • values
              • these are just the values of the measurements
              -
            • measurements
              • concept & measure & value = measurement
              • +
              • measures are defined in Parsers that start with a line like moonsParser
              +
            • values
              • these are just the values of the measurements
            • +
            • measurements
              • concept & measure & value = measurement
              • 1 measurement = 1 line
              • -
              • measurements can have nested comments that are stripped when compiling to TSV/CSV
          +
        • measurements can have nested comments that are stripped when compiling to TSV/CSV

    How to use

    • A concept is like a row in a database. All concepts need an id (or other concept delimiter). When you write id [conceptId], Scroll knows that is the beginning of a new concept.
    • @@ -299,7 +299,7 @@ - + \ No newline at end of file diff --git a/blog/scrollsets.txt b/blog/scrollsets.txt index 6ee16fa11..6c3c5f19a 100644 --- a/blog/scrollsets.txt +++ b/blog/scrollsets.txt @@ -203,4 +203,4 @@ Extended Concepts Example Related ======= -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/search.html b/blog/search.html index a219eb81a..523713584 100644 --- a/blog/search.html +++ b/blog/search.html @@ -3,13 +3,13 @@ Search the Official Scroll Blog - + - + @@ -55,121 +55,121 @@ minutes Data Science with Scroll -Data Science with Scroll ======================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits January 6, 2025 A Tutorial ========== This tutorial will walk you through how to use Scroll for data analysis and visualization, from basic concepts to advanced techniques. What makes Scroll great for data science? ========================================= Scroll combines the simplicity of markdown-style syntax with powerful data transformation and visualization capabilities. You can: - Load data from various sources (CSV, JSON, etc.) - Transform and analyze data with simple commands - Create beautiful visualizations - Publish instantly using ScrollHub https://hub.scroll.pub/ ScrollHub - All in a simple, readable format Let's dive in! --- Part 1: Getting Started with Data ================================= Loading Sample Datasets ======================= Scroll comes with several sample datasets. Let's start with the famous iris dataset: sepal_length,sepal_width,petal_length,petal_width,species 6.1,3,4.9,1.8,virginica 5.6,2.7,4.2,1.3,versicolor 5.6,2.8,4.9,2,virginica 6.2,2.8,4.8,1.8,virginica 7.7,3.8,6.7,2.2,virginica 5.3,3.7,1.5,0.2,setosa 6.2,3.4,5.4,2.3,virginica 4.9,2.5,4.5,1.7,virginica 5.1,3.5,1.4,0.2,setosa 5,3.4,1.5,0.2,setosa You can also load datasets from Vega's collection: zip_code,latitude,longitude,city,state,county 501,40.922326,-72.637078,Holtsville,NY,Suffolk 544,40.922326,-72.637078,Holtsville,NY,Suffolk 601,18.165273,-66.722583,Adjuntas,PR,Adjuntas 602,18.393103,-67.180953,Aguada,PR,Aguada 603,18.455913,-67.14578,Aguadilla,PR,Aguadilla Basic Data Operations ===================== Let's explore some basic operations on the iris dataset: name,type,incompleteCount,uniqueCount,count,sum,median,mean,min,max,mode sepal_length,number,0,8,10,57.699999999999996,5.6,5.77,4.9,7.7,5.6 sepal_width,number,0,8,10,31.599999999999998,3.2,3.1599999999999997,2.5,3.8,2.8 petal_length,number,0,8,10,39.8,4.65,3.9799999999999995,1.4,6.7,4.9 petal_width,number,0,7,10,13.699999999999996,1.75,1.3699999999999997,0.2,2.3,0.2 species,string,0,3,10,null,null,,null,null,virginica This gives us summary statistics for each column. Let's look at filtering: sepal_length,sepal_width,petal_length,petal_width,species 5.3,3.7,1.5,0.2,setosa 5.1,3.5,1.4,0.2,setosa 5,3.4,1.5,0.2,setosa --- Part 2: Data Visualization ========================== Basic Plots =========== Let's start with a simple scatterplot of the iris data: Line Charts =========== Let's look at some time series data: Bar Charts ========== Let's create a bar chart showing precipitation: --- Part 3: Advanced Data Transformations ===================================== Grouping and Aggregation ======================== Let's look at some more complex transformations: weather,count,avg_max_temp,avg_min_temp drizzle,129,18.555813953488368,10.143410852713178 rain,459,15.535294117647041,9.04727668845315 sun,1674,18.064157706093184,8.87275985663083 snow,78,4.528205128205127,-1.4346153846153844 fog,582,15.261855670103111,8.527319587628869 Creating New Columns ==================== Let's add some computed columns: sepal_length,sepal_width,petal_length,petal_width,species,ratio 6.1,3,4.9,1.8,virginica,2.033333333333333 5.6,2.7,4.2,1.3,versicolor,2.074074074074074 6.2,2.8,4.8,1.8,virginica,2.2142857142857144 7.7,3.8,6.7,2.2,virginica,2.0263157894736845 --- Part 4: Advanced Visualizations =============================== Heatmaps ======== Let's create a heatmap of annual precipitation values: Multiple Views ============== You can create multiple visualizations: --- Conclusion ========== This tutorial covered the basics of data science with Scroll. Some key takeaways: - Scroll makes it easy to load and manipulate data - Visualizations are simple to create and customize - Complex transformations can be done with simple commands - Everything is readable and version-controllable ⁂ Built with Scroll v165.2.0 +Data Science with Scroll ======================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits January 6, 2025 A Tutorial ========== This tutorial will walk you through how to use Scroll for data analysis and visualization, from basic concepts to advanced techniques. What makes Scroll great for data science? ========================================= Scroll combines the simplicity of markdown-style syntax with powerful data transformation and visualization capabilities. You can: - Load data from various sources (CSV, JSON, etc.) - Transform and analyze data with simple commands - Create beautiful visualizations - Publish instantly using ScrollHub https://hub.scroll.pub/ ScrollHub - All in a simple, readable format Let's dive in! --- Part 1: Getting Started with Data ================================= Loading Sample Datasets ======================= Scroll comes with several sample datasets. Let's start with the famous iris dataset: sepal_length,sepal_width,petal_length,petal_width,species 6.1,3,4.9,1.8,virginica 5.6,2.7,4.2,1.3,versicolor 5.6,2.8,4.9,2,virginica 6.2,2.8,4.8,1.8,virginica 7.7,3.8,6.7,2.2,virginica 5.3,3.7,1.5,0.2,setosa 6.2,3.4,5.4,2.3,virginica 4.9,2.5,4.5,1.7,virginica 5.1,3.5,1.4,0.2,setosa 5,3.4,1.5,0.2,setosa You can also load datasets from Vega's collection: zip_code,latitude,longitude,city,state,county 501,40.922326,-72.637078,Holtsville,NY,Suffolk 544,40.922326,-72.637078,Holtsville,NY,Suffolk 601,18.165273,-66.722583,Adjuntas,PR,Adjuntas 602,18.393103,-67.180953,Aguada,PR,Aguada 603,18.455913,-67.14578,Aguadilla,PR,Aguadilla Basic Data Operations ===================== Let's explore some basic operations on the iris dataset: name,type,incompleteCount,uniqueCount,count,sum,median,mean,min,max,mode sepal_length,number,0,8,10,57.699999999999996,5.6,5.77,4.9,7.7,5.6 sepal_width,number,0,8,10,31.599999999999998,3.2,3.1599999999999997,2.5,3.8,2.8 petal_length,number,0,8,10,39.8,4.65,3.9799999999999995,1.4,6.7,4.9 petal_width,number,0,7,10,13.699999999999996,1.75,1.3699999999999997,0.2,2.3,0.2 species,string,0,3,10,null,null,,null,null,virginica This gives us summary statistics for each column. Let's look at filtering: sepal_length,sepal_width,petal_length,petal_width,species 5.3,3.7,1.5,0.2,setosa 5.1,3.5,1.4,0.2,setosa 5,3.4,1.5,0.2,setosa --- Part 2: Data Visualization ========================== Basic Plots =========== Let's start with a simple scatterplot of the iris data: Line Charts =========== Let's look at some time series data: Bar Charts ========== Let's create a bar chart showing precipitation: --- Part 3: Advanced Data Transformations ===================================== Grouping and Aggregation ======================== Let's look at some more complex transformations: weather,count,avg_max_temp,avg_min_temp drizzle,129,18.555813953488368,10.143410852713178 rain,459,15.535294117647041,9.04727668845315 sun,1674,18.064157706093184,8.87275985663083 snow,78,4.528205128205127,-1.4346153846153844 fog,582,15.261855670103111,8.527319587628869 Creating New Columns ==================== Let's add some computed columns: sepal_length,sepal_width,petal_length,petal_width,species,ratio 6.1,3,4.9,1.8,virginica,2.033333333333333 5.6,2.7,4.2,1.3,versicolor,2.074074074074074 6.2,2.8,4.8,1.8,virginica,2.2142857142857144 7.7,3.8,6.7,2.2,virginica,2.0263157894736845 --- Part 4: Advanced Visualizations =============================== Heatmaps ======== Let's create a heatmap of annual precipitation values: Multiple Views ============== You can create multiple visualizations: --- Conclusion ========== This tutorial covered the basics of data science with Scroll. Some key takeaways: - Scroll makes it easy to load and manipulate data - Visualizations are simple to create and customize - Complex transformations can be done with simple commands - Everything is readable and version-controllable ⁂ Built with Scroll v165.3.0 01/06/2025 632 3.2 Scroll in 50 Questions -Scroll in 50 Questions ====================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits October 28, 2024 What is Scroll? =============== Scroll is a language for those who believe that what they cannot build with as few pieces as possible they do not understand. What is Scroll? =============== Scroll is a symbolic language. What is a symbolic language. ============================ A language you write with symbols. What is a symbol? ================= A symbol is a mark repeated to correlate to a pattern in nature. What is a mark? =============== A mark is a discoloration of a surface. What is a symbolic language? ============================ A symbolic language is a collection of symbols and symbol sequences that can be used to trigger the same electrical phenomena in the brain of an observer that seeing that pattern occur in nature would trigger. How do I use a symbolic language? ================================= By writing documents. What is a document? =================== It is a collection of marks on a surface. What is Particle Syntax? ======================== It is the syntax that Scroll uses. What is a syntax? ================= It is a set of rules for how to break up a document into symbols. What is a digital document? =========================== It is a file. What is a file? =============== It is a digital representation of a document as a series of bits. What is a bit? ============== A bit is a persistent location in space that has 2 states: a 1 or 0; a true or false; an on or off; a black or white; a hot or cold; a high or low. What is a character? ==================== A character is a 2D mark that maps to a unique fixed length bit sequence. What is a character encoding? ============================= A map of bit sequences to characters. What character encoding does Scroll use? ======================================== UTF8. For now. What is a word? =============== A word is a list of characters delimited by a word delimiter sequence. What is an atom? ================ An atom is another word for word in the Scroll language. What is a line? =============== A line is a sequence of atoms in the Scroll language delimited by a newline sequence. What is a Particle? =================== A particle in Scroll refers to an object that contains both atoms and a collection of particles referred to as the particle's subparticles. Are all particles also subparticles of a higher particle? ========================================================= Yes. What is a Parser? ================= A Parser is a particle that consumes certain other particles to perform transformations. What transformations can a Parser perform? ========================================== A Parser can perform a variety of transformations but the most common are to: - compile one particle in one language to another language. - format a particle into a standardized format - check a particle for errors - evalute the instructions in a particle and return the results - execute commands contained in the particle What is the syntax of Scroll? ============================= The syntax of Scrolls is Particle Syntax, or just Particles for short. What does Particle Syntax do? ============================= Partilces tells you how to divide a binary sequence into parts. What are the components of Particle Syntax? =========================================== - A sequence of binary bits is converted into characters using UTF8 - Atoms are sequences of characters separated by a single space. - Particles are a sequence of atoms separated by a newline. - Subparticles are indicated by a single indented space. How do I make a subparticle? ============================ - Just indent a particle by 1 space more than its parent particle. - For example, because I started this line with one space more than the line above, this line is a subparticle of that line. - And then this line, starting with 2 spaces, is a subparticle of the line above it. - But this line is a subparticle of the line above that starts with "Just" Can I use the Particles, Parsers, and Scroll concepts to design 2D or 3D languages that don't use computers at all? =================================================================================================================== Yes. But generally when we talk about PPS we are talking about the form designed for binary and computers. What is Parsers? ================ Parsers is a symbolic language where one defines Particles that can consume other Particles. It is a language for making other languages. What is Scroll? =============== Scroll is a language made out of Parsers. What is the purpose of the Parsers language? ============================================ The purpose of the Parsers Language is to make Scroll. What is the purpose of Scroll? ============================== The purpose of Scroll is to help humans communicate with humans and machines. How does one use Scroll to communicate? ======================================= By writing Scroll documents (aka Scroll Programs) to create things. What kinds of things is Scroll currently best at creating? ========================================================== Knowledge bases, blogs, websites, web pages, charts, animations, data science reports, ebooks, web forms, maps, that sort of thing. Why use Scroll and not just write HTML directly? ================================================ Scroll helps you better understand what you are writing about and anything HTML can make Scroll can make in fewer symbols. Scroll is a language for those who believe that what they cannot build with as few pieces as possible they do not understand. What is ScrollHub? ================== ScrollHub is a super server for creating and publishing websites instantly using Scroll. What is a cue? ============== Cue refers to the first atom in a particle. What is the significance of the cue? ==================================== When communicating you want to communicate the most important information first, so the cue is often the most important information. What is the cue used for? ========================= Most parsers use the cue to determine whether they should consume a particle or not. Can parsers use other ways to match against particles? ====================================================== Yes. What's another commmon way for parsers to match particles? ========================================================== Regular expressions. Can I build Scroll using only Particles and Parsers and no other languages? =========================================================================== Currently no. Parsers does not have enough functionality yet to be able to write parsers that provide everything Scroll needs. What other language do I currently need? ======================================== The primary implementation of Parsers currently is half Parsers, half Javascript. How does Parsers parse Scroll? ============================== The Parsers program is parsed and compiled by a Javascript implementation of Parsers which generates a Parser and compiler for Scroll programs. Do I need to master Javascript to use Parsers? ============================================== If you've mastered Javascript then using Parsers should be easy once you get the hang of it. Does Parsers have inheritance? ============================== Yes. Does Particle Syntax have types? ================================ No. Does Parsers have types? ======================== Yes. Parsers has atom types. Is Scroll like Lisp? ==================== Scroll and Parsers implement many of the best ideas from Lisp, and leave out a lot of unnecessary things (like the parens). Is Scroll designed for humans or AIs? ===================================== Both. ⁂ Built with Scroll v165.2.0 +Scroll in 50 Questions ====================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits October 28, 2024 What is Scroll? =============== Scroll is a language for those who believe that what they cannot build with as few pieces as possible they do not understand. What is Scroll? =============== Scroll is a symbolic language. What is a symbolic language. ============================ A language you write with symbols. What is a symbol? ================= A symbol is a mark repeated to correlate to a pattern in nature. What is a mark? =============== A mark is a discoloration of a surface. What is a symbolic language? ============================ A symbolic language is a collection of symbols and symbol sequences that can be used to trigger the same electrical phenomena in the brain of an observer that seeing that pattern occur in nature would trigger. How do I use a symbolic language? ================================= By writing documents. What is a document? =================== It is a collection of marks on a surface. What is Particle Syntax? ======================== It is the syntax that Scroll uses. What is a syntax? ================= It is a set of rules for how to break up a document into symbols. What is a digital document? =========================== It is a file. What is a file? =============== It is a digital representation of a document as a series of bits. What is a bit? ============== A bit is a persistent location in space that has 2 states: a 1 or 0; a true or false; an on or off; a black or white; a hot or cold; a high or low. What is a character? ==================== A character is a 2D mark that maps to a unique fixed length bit sequence. What is a character encoding? ============================= A map of bit sequences to characters. What character encoding does Scroll use? ======================================== UTF8. For now. What is a word? =============== A word is a list of characters delimited by a word delimiter sequence. What is an atom? ================ An atom is another word for word in the Scroll language. What is a line? =============== A line is a sequence of atoms in the Scroll language delimited by a newline sequence. What is a Particle? =================== A particle in Scroll refers to an object that contains both atoms and a collection of particles referred to as the particle's subparticles. Are all particles also subparticles of a higher particle? ========================================================= Yes. What is a Parser? ================= A Parser is a particle that consumes certain other particles to perform transformations. What transformations can a Parser perform? ========================================== A Parser can perform a variety of transformations but the most common are to: - compile one particle in one language to another language. - format a particle into a standardized format - check a particle for errors - evalute the instructions in a particle and return the results - execute commands contained in the particle What is the syntax of Scroll? ============================= The syntax of Scrolls is Particle Syntax, or just Particles for short. What does Particle Syntax do? ============================= Partilces tells you how to divide a binary sequence into parts. What are the components of Particle Syntax? =========================================== - A sequence of binary bits is converted into characters using UTF8 - Atoms are sequences of characters separated by a single space. - Particles are a sequence of atoms separated by a newline. - Subparticles are indicated by a single indented space. How do I make a subparticle? ============================ - Just indent a particle by 1 space more than its parent particle. - For example, because I started this line with one space more than the line above, this line is a subparticle of that line. - And then this line, starting with 2 spaces, is a subparticle of the line above it. - But this line is a subparticle of the line above that starts with "Just" Can I use the Particles, Parsers, and Scroll concepts to design 2D or 3D languages that don't use computers at all? =================================================================================================================== Yes. But generally when we talk about PPS we are talking about the form designed for binary and computers. What is Parsers? ================ Parsers is a symbolic language where one defines Particles that can consume other Particles. It is a language for making other languages. What is Scroll? =============== Scroll is a language made out of Parsers. What is the purpose of the Parsers language? ============================================ The purpose of the Parsers Language is to make Scroll. What is the purpose of Scroll? ============================== The purpose of Scroll is to help humans communicate with humans and machines. How does one use Scroll to communicate? ======================================= By writing Scroll documents (aka Scroll Programs) to create things. What kinds of things is Scroll currently best at creating? ========================================================== Knowledge bases, blogs, websites, web pages, charts, animations, data science reports, ebooks, web forms, maps, that sort of thing. Why use Scroll and not just write HTML directly? ================================================ Scroll helps you better understand what you are writing about and anything HTML can make Scroll can make in fewer symbols. Scroll is a language for those who believe that what they cannot build with as few pieces as possible they do not understand. What is ScrollHub? ================== ScrollHub is a super server for creating and publishing websites instantly using Scroll. What is a cue? ============== Cue refers to the first atom in a particle. What is the significance of the cue? ==================================== When communicating you want to communicate the most important information first, so the cue is often the most important information. What is the cue used for? ========================= Most parsers use the cue to determine whether they should consume a particle or not. Can parsers use other ways to match against particles? ====================================================== Yes. What's another commmon way for parsers to match particles? ========================================================== Regular expressions. Can I build Scroll using only Particles and Parsers and no other languages? =========================================================================== Currently no. Parsers does not have enough functionality yet to be able to write parsers that provide everything Scroll needs. What other language do I currently need? ======================================== The primary implementation of Parsers currently is half Parsers, half Javascript. How does Parsers parse Scroll? ============================== The Parsers program is parsed and compiled by a Javascript implementation of Parsers which generates a Parser and compiler for Scroll programs. Do I need to master Javascript to use Parsers? ============================================== If you've mastered Javascript then using Parsers should be easy once you get the hang of it. Does Parsers have inheritance? ============================== Yes. Does Particle Syntax have types? ================================ No. Does Parsers have types? ======================== Yes. Parsers has atom types. Is Scroll like Lisp? ==================== Scroll and Parsers implement many of the best ideas from Lisp, and leave out a lot of unnecessary things (like the parens). Is Scroll designed for humans or AIs? ===================================== Both. ⁂ Built with Scroll v165.3.0 10/28/2024 1082 5.4 Web Forms for Geniuses -Web Forms for Geniuses ====================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits October 1, 2024 If you want to make web forms the inefficient way, there are many other places to read how to do that. If you want to learn how geniuses are doing web forms, read on. * One Field at a Time is Retarded =============================== Building forms for one-field-at-a-time data entry is inefficient. People can't copy/paste your forms. E-receipts are a pain. Auto-form fill works poorly. It's a huge waste of your users' time that retards them and your business. And it will always be this way. Entire Form in One Field is Genius ================================== Everything becomes radically simpler. People can do things like copy/paste entire applications; email them; version control them; collaborate on them; all effortlessly. And guess what? You can still also compile to a one-field-at-a-time HTML form and allow users to swap back and forth! It's pure win, no loss. You can use this TODAY! ======================= This now ships in Scroll. Here is a test form. You can also see it in use in many of our products. https://scroll.pub/blog/../tests/forms.html a test form Because this is new technology, it is not for those that need spoon feeding. Believe it or not, making web forms also used to be complicated. (If you need this urgently, don't have time to figure it out yourself, and need to hire professional consulting, feel free to get in touch.) Don't whine. Build. =================== I'm tired of reading all the whiners commenting about how our CSS doesn't look so pretty yet, or the tiny little feature you need that isn't supported. I don't care much to hear from whining losers. I want to hear from winners. From builders. From those who strive for genius. Beautiful designs, autoincrement, auto timestamp, joins, decision trees, all that stuff is coming. The world is gonna love this. If you are a winner, a builder, a genius, join us on GitHub or Reddit. https://github.com/breck7/scroll GitHub https://www.reddit.com/r/WorldWideScroll/ Reddit ⁂ Built with Scroll v165.2.0 +Web Forms for Geniuses ====================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits October 1, 2024 If you want to make web forms the inefficient way, there are many other places to read how to do that. If you want to learn how geniuses are doing web forms, read on. * One Field at a Time is Retarded =============================== Building forms for one-field-at-a-time data entry is inefficient. People can't copy/paste your forms. E-receipts are a pain. Auto-form fill works poorly. It's a huge waste of your users' time that retards them and your business. And it will always be this way. Entire Form in One Field is Genius ================================== Everything becomes radically simpler. People can do things like copy/paste entire applications; email them; version control them; collaborate on them; all effortlessly. And guess what? You can still also compile to a one-field-at-a-time HTML form and allow users to swap back and forth! It's pure win, no loss. You can use this TODAY! ======================= This now ships in Scroll. Here is a test form. You can also see it in use in many of our products. https://scroll.pub/blog/../tests/forms.html a test form Because this is new technology, it is not for those that need spoon feeding. Believe it or not, making web forms also used to be complicated. (If you need this urgently, don't have time to figure it out yourself, and need to hire professional consulting, feel free to get in touch.) Don't whine. Build. =================== I'm tired of reading all the whiners commenting about how our CSS doesn't look so pretty yet, or the tiny little feature you need that isn't supported. I don't care much to hear from whining losers. I want to hear from winners. From builders. From those who strive for genius. Beautiful designs, autoincrement, auto timestamp, joins, decision trees, all that stuff is coming. The world is gonna love this. If you are a winner, a builder, a genius, join us on GitHub or Reddit. https://github.com/breck7/scroll GitHub https://www.reddit.com/r/WorldWideScroll/ Reddit ⁂ Built with Scroll v165.3.0 10/01/2024 369 1.8 The Successor to RSS is Git Clone -The Successor to RSS is Git Clone ================================= by Breck Yunits https://twitter.com/breckyunits Breck Yunits September 2, 2024 Today on HackerNews Kevin Damm had a great idea: put a `<link>` tag on blogs to point to the git Source Code Repository, much as blogs today have `<link>` tags pointing to their RSS feeds. https://news.ycombinator.com/item?id=41427044 great idea I've added this feature to Scroll and it's live now. If you View Source of this page, you'll see: https://scroll.pub/blog/../index.html Scroll ``` ``` Client applications can start looking for and taking advantage of these tags. * RSS was great, but it's no match for Git Clone ============================================== Git clone solves a million problems. You get a copy of the entire works of your favorite authors that is blazing fast, works offline, is searchable, transformable, censorship resistant, auditable, more trustworthy, ad free, tracker free, et cetera. There is no comparison to the old ways of doing things. * What do you think? ================== Have you already been doing this? Are there ways we can make it better? Would love to hear your feedback! ⁂ Notes ===== vladimyr on bluesky dug up a couple of cool examples of prior art. https://bsky.app/profile/vladimyr.bsky.social/post/3l3anievhnm2t vladimyr on bluesky Built with Scroll v165.2.0 +The Successor to RSS is Git Clone ================================= by Breck Yunits https://twitter.com/breckyunits Breck Yunits September 2, 2024 Today on HackerNews Kevin Damm had a great idea: put a `<link>` tag on blogs to point to the git Source Code Repository, much as blogs today have `<link>` tags pointing to their RSS feeds. https://news.ycombinator.com/item?id=41427044 great idea I've added this feature to Scroll and it's live now. If you View Source of this page, you'll see: https://scroll.pub/blog/../index.html Scroll ``` ``` Client applications can start looking for and taking advantage of these tags. * RSS was great, but it's no match for Git Clone ============================================== Git clone solves a million problems. You get a copy of the entire works of your favorite authors that is blazing fast, works offline, is searchable, transformable, censorship resistant, auditable, more trustworthy, ad free, tracker free, et cetera. There is no comparison to the old ways of doing things. * What do you think? ================== Have you already been doing this? Are there ways we can make it better? Would love to hear your feedback! ⁂ Notes ===== vladimyr on bluesky dug up a couple of cool examples of prior art. https://bsky.app/profile/vladimyr.bsky.social/post/3l3anievhnm2t vladimyr on bluesky Built with Scroll v165.3.0 09/02/2024 224 1.1 A New Way to Program -A New Way to Program ==================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits August 30, 2024 Particles, Scroll, and the Parsers Programming Language ======================================================= I've recorded a short video (1 minute version; 10 minute version) about our recent work which has begun to eat the software world. https://www.youtube.com/watch?v=tpJY7PUmBIU 1 minute version https://www.youtube.com/embed/YcnWSNGEHvI?si=p_vOxpt9lusNKgli&t=75s 10 minute version * Outline ======= 1. Is this stuff relevant to you? ================================= Whether you are an experienced, aspiring, or casual programmer, yes. If you are a writer, yes. If you are a thinker, yes. If you are a builder, yes. If you choose to always remain illiterate to keep your brain different than the crowd, then no. (I applaud your brave creative choice and as a scientist I'm curious to see what happens!) 2. What is Particle Syntax (Particles)? ======================================= One liner: a syntax-free syntax for splitting files into particles (separated by line breaks) which can have atoms (separated by spaces) and subparticles (indented lines). Vibe https://particles.scroll.pub Vibe Playground https://sdk.scroll.pub/sandbox/ Playground LeetSheet https://scroll.pub/particlesLeetsheet.html LeetSheet [Image Omitted] width 400 Each line is a particle. Each dot is a atom. Particles lets you easily compare programs and see which one is simpler (less heavy!). 3. What is Scroll? ================== One liner: Scroll is a language for scientists of all ages where you write and combine particles (written in Particles) to evolve and publish your most intelligence ideas to HTML, PDFs, CSVs, JSON files, movie files, audio files, slideshows, charts, books, et cetera. Vibe https://scroll.pub/blog/index.html Vibe Playground https://try.scroll.pub/ Playground LeetSheet https://scroll.pub/leetsheet.html LeetSheet [Image Omitted] width 400 Scroll is a collection of Parsers that allow you to evolve and publish your most intelligent ideas. 4. What is Parsers? =================== One liner: Parsers is a programming language where programmers write parsers (written in Particles) which consume particles (written in Particles) and also contain logic for translating those particles into actions on computing machines. Vibe https://github.com/breck7/scroll/tree/main/parsers Vibe Playground https://sdk.scroll.pub/designer#url%20https%3A%2F%2Fscroll.pub%2Fscroll.parsers Playground LeetSheet https://scroll.pub/parserLeetsheet.html LeetSheet [Image Omitted] width 400 Programmers who understand how computing machines work write Parsers to translate particles into executable machine code. 5. How do you get started? ========================== ScrollHub http://hub.scroll.pub/ ScrollHub Subreddit https://www.reddit.com/r/WorldWideScroll/ Subreddit ⁂ Built with Scroll v165.2.0 +A New Way to Program ==================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits August 30, 2024 Particles, Scroll, and the Parsers Programming Language ======================================================= I've recorded a short video (1 minute version; 10 minute version) about our recent work which has begun to eat the software world. https://www.youtube.com/watch?v=tpJY7PUmBIU 1 minute version https://www.youtube.com/embed/YcnWSNGEHvI?si=p_vOxpt9lusNKgli&t=75s 10 minute version * Outline ======= 1. Is this stuff relevant to you? ================================= Whether you are an experienced, aspiring, or casual programmer, yes. If you are a writer, yes. If you are a thinker, yes. If you are a builder, yes. If you choose to always remain illiterate to keep your brain different than the crowd, then no. (I applaud your brave creative choice and as a scientist I'm curious to see what happens!) 2. What is Particle Syntax (Particles)? ======================================= One liner: a syntax-free syntax for splitting files into particles (separated by line breaks) which can have atoms (separated by spaces) and subparticles (indented lines). Vibe https://particles.scroll.pub Vibe Playground https://sdk.scroll.pub/sandbox/ Playground LeetSheet https://scroll.pub/particlesLeetsheet.html LeetSheet [Image Omitted] width 400 Each line is a particle. Each dot is a atom. Particles lets you easily compare programs and see which one is simpler (less heavy!). 3. What is Scroll? ================== One liner: Scroll is a language for scientists of all ages where you write and combine particles (written in Particles) to evolve and publish your most intelligence ideas to HTML, PDFs, CSVs, JSON files, movie files, audio files, slideshows, charts, books, et cetera. Vibe https://scroll.pub/blog/index.html Vibe Playground https://try.scroll.pub/ Playground LeetSheet https://scroll.pub/leetsheet.html LeetSheet [Image Omitted] width 400 Scroll is a collection of Parsers that allow you to evolve and publish your most intelligent ideas. 4. What is Parsers? =================== One liner: Parsers is a programming language where programmers write parsers (written in Particles) which consume particles (written in Particles) and also contain logic for translating those particles into actions on computing machines. Vibe https://github.com/breck7/scroll/tree/main/parsers Vibe Playground https://sdk.scroll.pub/designer#url%20https%3A%2F%2Fscroll.pub%2Fscroll.parsers Playground LeetSheet https://scroll.pub/parserLeetsheet.html LeetSheet [Image Omitted] width 400 Programmers who understand how computing machines work write Parsers to translate particles into executable machine code. 5. How do you get started? ========================== ScrollHub http://hub.scroll.pub/ ScrollHub Subreddit https://www.reddit.com/r/WorldWideScroll/ Subreddit ⁂ Built with Scroll v165.3.0 08/30/2024 425 2.1 Tables: a microlang for data science -Tables: a microlang for data science ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits August 9, 2024 Tables, aka spreadsheets, are arguably the most important _visual_ thought tool. But no one has designed the perfect _textual_ language for manipulating them. Until now. Say hello to Tables =================== Try now https://try.scroll.pub/#scroll%0A%20theme%20gazette%0A%20%0A%20expander%20Presidents%0A%20https%3A%2F%2Fohayo.breckyunits.com%2Fohayo%2Fpackages%2Fsamples%2Fpresidents.csv%0A%20%20groupBy%20Party%0A%20%20%20orderBy%20-count%0A%20%20%20%20printTable%0A%20%20scatterplot%0A%20%20%20x%20number%0A%20%20%20y%20Party%0A%20%20%20fill%20Party%0A%20%0A%20expander%20Elements%0A%20https%3A%2F%2Fohayo.breckyunits.com%2Fohayo%2Fpackages%2Fsamples%2Fperiodic-table.csv%0A%20%20scatterplot%0A%20%20%20x%20Year%0A%20%20%20y%20AtomicNumber%0A%20%20%20fill%20Radioactive%0A%20%20%20symbol%20Metal%0A%20%0A%20%2F%2F%20expander%20Inline%20Data%0A%20table%0A%20%20scatterplot%0A%20%20%20title%20Top%2050%20programming%20language%20projects%20on%20GitHub.%0A%20%20%20x%20appeared%0A%20%20%20y%20rank%0A%20%20%20radius%20githubStars%0A%20%20%20label%20name%0A%20%20orderBy%20appeared%0A%20%20%20sparkline%0A%20%20%20%20y%20githubStars%0A%20%20%20%20color%20green%0A%20%20%20select%20name%20githubStars%0A%20%20%20%20heatrix%0A%20%20data%0A%20%20%20rank%2Cname%2Cappeared%2CgithubStars%0A%20%20%203%2CPython%2C1991%2C61378%0A%20%20%204%2CJava%2C1995%2C19037%0A%20%20%208%2CPerl%2C1987%2C1886%0A%20%20%209%2CRuby%2C1995%2C21790%0A%20%20%2010%2CPHP%2C1995%2C37688%0A%20%20%2013%2CGo%2C2009%2C121611%0A%20%20%2014%2CTypeScript%2C2012%2C99410%0A%20%20%2018%2CPowerShell%2C2006%2C44220%0A%20%20%2020%2CRust%2C2010%2C95455%0A%20%20%2021%2CSwift%2C2014%2C67064%0A%20%20%2025%2CKotlin%2C2011%2C48462%0A%20%20%2027%2CClojure%2C2007%2C10392%0A%20%20%2028%2CCoffeeScript%2C2009%2C16466%0A%20%20%2029%2CElixir%2C2011%2C24093%0A%20%20%2030%2CErlang%2C1986%2C11203%0A%20%20%2034%2CJulia%2C2012%2C45137%0A%20%20%2041%2CRacket%2C1994%2C4741%0A%20%20%2042%2CSolidity%2C2014%2C22794%0A%20%20%2043%2CWebAssembly%2C2015%2C6621%0A%20%20%2045%2CZig%2C2015%2C32864%0A%20%20%2047%2CNim%2C2008%2C16308%0A%20%20%2050%2CTOML%2C2013%2C19332 Try now ⁂ Acknowledgements ================ Tables evolved over the past decade primarily by: - just doing what Hadley Wickham did in dplyr https://dplyr.tidyverse.org/ dplyr https://hadley.nz/ Hadley Wickham - using Mike Bostock's d3 under the hood https://bost.ocks.org/mike/ Mike Bostock https://d3js.org/ d3 - reading all of Jeffrey Heer's papers https://homes.cs.washington.edu/~jheer/ Jeffrey Heer - thinking about what would be the best tool for Max Roser and Hannah Ritchie. https://ourworldindata.org/ Max Roser and Hannah Ritchie Built with Scroll v165.2.0 +Tables: a microlang for data science ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits August 9, 2024 Tables, aka spreadsheets, are arguably the most important _visual_ thought tool. But no one has designed the perfect _textual_ language for manipulating them. Until now. Say hello to Tables =================== Try now https://try.scroll.pub/#scroll%0A%20theme%20gazette%0A%20%0A%20expander%20Presidents%0A%20https%3A%2F%2Fohayo.breckyunits.com%2Fohayo%2Fpackages%2Fsamples%2Fpresidents.csv%0A%20%20groupBy%20Party%0A%20%20%20orderBy%20-count%0A%20%20%20%20printTable%0A%20%20scatterplot%0A%20%20%20x%20number%0A%20%20%20y%20Party%0A%20%20%20fill%20Party%0A%20%0A%20expander%20Elements%0A%20https%3A%2F%2Fohayo.breckyunits.com%2Fohayo%2Fpackages%2Fsamples%2Fperiodic-table.csv%0A%20%20scatterplot%0A%20%20%20x%20Year%0A%20%20%20y%20AtomicNumber%0A%20%20%20fill%20Radioactive%0A%20%20%20symbol%20Metal%0A%20%0A%20%2F%2F%20expander%20Inline%20Data%0A%20table%0A%20%20scatterplot%0A%20%20%20title%20Top%2050%20programming%20language%20projects%20on%20GitHub.%0A%20%20%20x%20appeared%0A%20%20%20y%20rank%0A%20%20%20radius%20githubStars%0A%20%20%20label%20name%0A%20%20orderBy%20appeared%0A%20%20%20sparkline%0A%20%20%20%20y%20githubStars%0A%20%20%20%20color%20green%0A%20%20%20select%20name%20githubStars%0A%20%20%20%20heatrix%0A%20%20data%0A%20%20%20rank%2Cname%2Cappeared%2CgithubStars%0A%20%20%203%2CPython%2C1991%2C61378%0A%20%20%204%2CJava%2C1995%2C19037%0A%20%20%208%2CPerl%2C1987%2C1886%0A%20%20%209%2CRuby%2C1995%2C21790%0A%20%20%2010%2CPHP%2C1995%2C37688%0A%20%20%2013%2CGo%2C2009%2C121611%0A%20%20%2014%2CTypeScript%2C2012%2C99410%0A%20%20%2018%2CPowerShell%2C2006%2C44220%0A%20%20%2020%2CRust%2C2010%2C95455%0A%20%20%2021%2CSwift%2C2014%2C67064%0A%20%20%2025%2CKotlin%2C2011%2C48462%0A%20%20%2027%2CClojure%2C2007%2C10392%0A%20%20%2028%2CCoffeeScript%2C2009%2C16466%0A%20%20%2029%2CElixir%2C2011%2C24093%0A%20%20%2030%2CErlang%2C1986%2C11203%0A%20%20%2034%2CJulia%2C2012%2C45137%0A%20%20%2041%2CRacket%2C1994%2C4741%0A%20%20%2042%2CSolidity%2C2014%2C22794%0A%20%20%2043%2CWebAssembly%2C2015%2C6621%0A%20%20%2045%2CZig%2C2015%2C32864%0A%20%20%2047%2CNim%2C2008%2C16308%0A%20%20%2050%2CTOML%2C2013%2C19332 Try now ⁂ Acknowledgements ================ Tables evolved over the past decade primarily by: - just doing what Hadley Wickham did in dplyr https://dplyr.tidyverse.org/ dplyr https://hadley.nz/ Hadley Wickham - using Mike Bostock's d3 under the hood https://bost.ocks.org/mike/ Mike Bostock https://d3js.org/ d3 - reading all of Jeffrey Heer's papers https://homes.cs.washington.edu/~jheer/ Jeffrey Heer - thinking about what would be the best tool for Max Roser and Hannah Ritchie. https://ourworldindata.org/ Max Roser and Hannah Ritchie Built with Scroll v165.3.0 08/09/2024 479 2.4 Build Your Own Counters With 3 Words -Build Your Own Counters With 3 Words ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits August 2, 2024 August 2, 2024 I like collections of interesting numbers, such as BioNumbers. Animated counters provide a useful perspective when pondering large numbers. I wanted to make it as easy as possible for anyone to create these counters. https://bionumbers.hms.harvard.edu/Search.aspx?task=searchbypop BioNumbers So, today I added a new parser to Scroll: *counter*. ``` counter 1.1 Heartbeats ``` * Try now https://try.scroll.pub/#scroll%0A%20theme%20gazette%0A%20%0A%20%23%20Show%20HN%3A%20Make%20a%20counter%20with%203%20words%0A%20%0A%20New%20in%20Scroll%20v112.1.0.%20Read%20more.%0A%20%20https%3A%2F%2Fscroll.pub%2Fblog%2Fcounters.html%20Read%20more.%0A%20%0A%20code%0A%20%20counter%20%5BRate%2FSecond%5D%20%5BDescription%5D%0A%20%0A%20%23%20Since%20you%20loaded%20this%20page...%0A%20%0A%20thinColumns%0A%20%0A%20%23%23%20World%20Population%0A%20counter%204.5%20Babies%20Born%0A%20%20https%3A%2F%2Fourworldindata.org%2Fbirths-and-deaths%0A%20counter%201.7%20Human%20Deaths%0A%20%20https%3A%2F%2Fourworldindata.org%2Fbirths-and-deaths%0A%20counter%208123456789%20heart%20beats%0A%20%20https%3A%2F%2Fourworldindata.org%2Fgrapher%2Fpopulation%0A%20%0A%20%23%23%20In%20Your%20Body%0A%20counter%203112123%20Red%20Blood%20Cells%20Made%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fbooks%2FNBK2263%2F%0A%20counter%203812123%20Cells%20Made%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fbooks%2FNBK2263%2F%0A%20counter%202123456789123456789123%20ATP%20molecules%20made%0A%20%20https%3A%2F%2Fbio.libretexts.org%2FBookshelves%2FHuman_Biology%2FHuman_Biology_(Wakim_and_Grewal)%2F05%253A_Cells%2F5.09%253A_Cellular_Respiration%0A%20%0A%20%23%23%20In%20Your%20Brain%0A%20counter%201.2e12%20Action%20Potentials%20Fired%0A%20%20https%3A%2F%2Fwww.khanacademy.org%2Ftest-prep%2Fmcat%2Forgan-systems%2Fneural-synapses%2Fa%2Fsignal-propagation-the-movement-of-signals-between-neurons%0A%20counter%203.64e18%20Ketones%20Consumed%20(Ketosis)%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fpmc%2Farticles%2FPMC7699472%2F%0A%20counter%204.64e18%20Glucose%20Molecules%20Consumed%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fpmc%2Farticles%2FPMC3900881%2F%0A%20%0A%20%23%23%20World%20Economy%0A%20counter%202.5%20Cars%20Made%0A%20%20https%3A%2F%2Fwww.statista.com%2Fstatistics%2F262747%2Fworldwide-automobile-production-since-2000%2F%0A%20counter%2026012%20Cups%20of%20Coffee%20Consumed%0A%20%20https%3A%2F%2Fwww.rgare.com%2Fknowledge-center%2Farticle%2Fcoffee-consumption-how-much-is-too-much-and-how-little-is-not-enough%0A%20counter%2059321%20YouTubes%20Watched%0A%20%20https%3A%2F%2Fthesocialshepherd.com%2Fblog%2Fyoutube-statistics%0A%20%0A%20%23%23%20Flight%0A%20counter%200.00008%20Objects%20Launched%20into%20Space%0A%20%20https%3A%2F%2Fourworldindata.org%2Fgrapher%2Fyearly-number-of-objects-launched-into-outer-space%0A%20counter%200.00004%20Planes%20Built%0A%20%20https%3A%2F%2Fwww.ibisworld.com%2Fglobal%2Fmarket-research-reports%2Fglobal-commercial-aircraft-manufacturing-industry%2F%0A%20counter%201.17%20Planes%20Landed%0A%20%20https%3A%2F%2Fwww.faa.gov%2Fair_traffic%2Fby_the_numbers%0A%20%0A%20%23%23%20Animals%0A%20counter%200.00004%20Blue%20Whales%20Born%0A%20%20https%3A%2F%2Fwww.marinemammalcenter.org%2Fanimal-care%2Flearn-about-marine-mammals%2Fcetaceans%2Fblue-whale%0A%20counter%200.001%20Elephants%20Born%0A%20%20https%3A%2F%2Felephantconservation.org%2Fabout-elephants%2F25-things-to-know%2F%0A%20counter%203.1e10%20Ants%20Born%0A%20%20https%3A%2F%2Fprivateexterminator.com%2Fare-all-the-ants-as-heavy-as-all-the-humans%0A%20 Try now =================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== * Since you loaded this page... ============================= World Population ================ 4.5 Babies Born https://ourworldindata.org/births-and-deaths 4.5 Babies Born 1.7 Human Deaths https://ourworldindata.org/births-and-deaths 1.7 Human Deaths 8123456789 heart beats https://ourworldindata.org/grapher/population 8123456789 heart beats In Your Body ============ 3112123 Red Blood Cells Made https://www.ncbi.nlm.nih.gov/books/NBK2263/ 3112123 Red Blood Cells Made 3812123 Cells Made https://www.ncbi.nlm.nih.gov/books/NBK2263/ 3812123 Cells Made 2123456789123456789123 ATP molecules made https://bio.libretexts.org/Bookshelves/Human_Biology/Human_Biology_(Wakim_and_Grewal)/05%3A_Cells/5.09%3A_Cellular_Respiration 2123456789123456789123 ATP molecules made In Your Brain ============= 1.2e12 Action Potentials Fired https://www.khanacademy.org/test-prep/mcat/organ-systems/neural-synapses/a/signal-propagation-the-movement-of-signals-between-neurons 1.2e12 Action Potentials Fired 3.64e18 Ketones Consumed (Ketosis) https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7699472/ 3.64e18 Ketones Consumed (Ketosis) 4.64e18 Glucose Molecules Consumed https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3900881/ 4.64e18 Glucose Molecules Consumed World Economy ============= 2.5 Cars Made https://www.statista.com/statistics/262747/worldwide-automobile-production-since-2000/ 2.5 Cars Made 26012 Cups of Coffee Consumed https://www.rgare.com/knowledge-center/article/coffee-consumption-how-much-is-too-much-and-how-little-is-not-enough 26012 Cups of Coffee Consumed 59321 YouTubes Watched https://thesocialshepherd.com/blog/youtube-statistics 59321 YouTubes Watched Flight ====== 0.00008 Objects Launched into Space https://ourworldindata.org/grapher/yearly-number-of-objects-launched-into-outer-space 0.00008 Objects Launched into Space 0.00004 Planes Built https://www.ibisworld.com/global/market-research-reports/global-commercial-aircraft-manufacturing-industry/ 0.00004 Planes Built 1.17 Planes Landed https://www.faa.gov/air_traffic/by_the_numbers 1.17 Planes Landed Animals ======= 0.00004 Blue Whales Born https://www.marinemammalcenter.org/animal-care/learn-about-marine-mammals/cetaceans/blue-whale 0.00004 Blue Whales Born 0.001 Elephants Born https://elephantconservation.org/about-elephants/25-things-to-know/ 0.001 Elephants Born 3.1e10 Ants Born https://privateexterminator.com/are-all-the-ants-as-heavy-as-all-the-humans 3.1e10 Ants Born Computer Chips ============== 66.7 CPUS made by Intel https://www.intel.com/content/www/us/en/architecture-and-technology/global-manufacturing.html 66.7 CPUS made by Intel 6234556543 Transistors made by Nvidia https://nvidianews.nvidia.com/news/nvidia-announces-hopper-architecture-the-next-generation-of-accelerated-computing 6234556543 Transistors made by Nvidia 61234556543 Transistors made by Intel https://www.intel.com/content/www/us/en/history/museum-transistors-to-transformations-brochure.html 61234556543 Transistors made by Intel ⁂ Built with Scroll v165.2.0 +Build Your Own Counters With 3 Words ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits August 2, 2024 August 2, 2024 I like collections of interesting numbers, such as BioNumbers. Animated counters provide a useful perspective when pondering large numbers. I wanted to make it as easy as possible for anyone to create these counters. https://bionumbers.hms.harvard.edu/Search.aspx?task=searchbypop BioNumbers So, today I added a new parser to Scroll: *counter*. ``` counter 1.1 Heartbeats ``` * Try now https://try.scroll.pub/#scroll%0A%20theme%20gazette%0A%20%0A%20%23%20Show%20HN%3A%20Make%20a%20counter%20with%203%20words%0A%20%0A%20New%20in%20Scroll%20v112.1.0.%20Read%20more.%0A%20%20https%3A%2F%2Fscroll.pub%2Fblog%2Fcounters.html%20Read%20more.%0A%20%0A%20code%0A%20%20counter%20%5BRate%2FSecond%5D%20%5BDescription%5D%0A%20%0A%20%23%20Since%20you%20loaded%20this%20page...%0A%20%0A%20thinColumns%0A%20%0A%20%23%23%20World%20Population%0A%20counter%204.5%20Babies%20Born%0A%20%20https%3A%2F%2Fourworldindata.org%2Fbirths-and-deaths%0A%20counter%201.7%20Human%20Deaths%0A%20%20https%3A%2F%2Fourworldindata.org%2Fbirths-and-deaths%0A%20counter%208123456789%20heart%20beats%0A%20%20https%3A%2F%2Fourworldindata.org%2Fgrapher%2Fpopulation%0A%20%0A%20%23%23%20In%20Your%20Body%0A%20counter%203112123%20Red%20Blood%20Cells%20Made%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fbooks%2FNBK2263%2F%0A%20counter%203812123%20Cells%20Made%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fbooks%2FNBK2263%2F%0A%20counter%202123456789123456789123%20ATP%20molecules%20made%0A%20%20https%3A%2F%2Fbio.libretexts.org%2FBookshelves%2FHuman_Biology%2FHuman_Biology_(Wakim_and_Grewal)%2F05%253A_Cells%2F5.09%253A_Cellular_Respiration%0A%20%0A%20%23%23%20In%20Your%20Brain%0A%20counter%201.2e12%20Action%20Potentials%20Fired%0A%20%20https%3A%2F%2Fwww.khanacademy.org%2Ftest-prep%2Fmcat%2Forgan-systems%2Fneural-synapses%2Fa%2Fsignal-propagation-the-movement-of-signals-between-neurons%0A%20counter%203.64e18%20Ketones%20Consumed%20(Ketosis)%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fpmc%2Farticles%2FPMC7699472%2F%0A%20counter%204.64e18%20Glucose%20Molecules%20Consumed%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fpmc%2Farticles%2FPMC3900881%2F%0A%20%0A%20%23%23%20World%20Economy%0A%20counter%202.5%20Cars%20Made%0A%20%20https%3A%2F%2Fwww.statista.com%2Fstatistics%2F262747%2Fworldwide-automobile-production-since-2000%2F%0A%20counter%2026012%20Cups%20of%20Coffee%20Consumed%0A%20%20https%3A%2F%2Fwww.rgare.com%2Fknowledge-center%2Farticle%2Fcoffee-consumption-how-much-is-too-much-and-how-little-is-not-enough%0A%20counter%2059321%20YouTubes%20Watched%0A%20%20https%3A%2F%2Fthesocialshepherd.com%2Fblog%2Fyoutube-statistics%0A%20%0A%20%23%23%20Flight%0A%20counter%200.00008%20Objects%20Launched%20into%20Space%0A%20%20https%3A%2F%2Fourworldindata.org%2Fgrapher%2Fyearly-number-of-objects-launched-into-outer-space%0A%20counter%200.00004%20Planes%20Built%0A%20%20https%3A%2F%2Fwww.ibisworld.com%2Fglobal%2Fmarket-research-reports%2Fglobal-commercial-aircraft-manufacturing-industry%2F%0A%20counter%201.17%20Planes%20Landed%0A%20%20https%3A%2F%2Fwww.faa.gov%2Fair_traffic%2Fby_the_numbers%0A%20%0A%20%23%23%20Animals%0A%20counter%200.00004%20Blue%20Whales%20Born%0A%20%20https%3A%2F%2Fwww.marinemammalcenter.org%2Fanimal-care%2Flearn-about-marine-mammals%2Fcetaceans%2Fblue-whale%0A%20counter%200.001%20Elephants%20Born%0A%20%20https%3A%2F%2Felephantconservation.org%2Fabout-elephants%2F25-things-to-know%2F%0A%20counter%203.1e10%20Ants%20Born%0A%20%20https%3A%2F%2Fprivateexterminator.com%2Fare-all-the-ants-as-heavy-as-all-the-humans%0A%20 Try now =================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== * Since you loaded this page... ============================= World Population ================ 4.5 Babies Born https://ourworldindata.org/births-and-deaths 4.5 Babies Born 1.7 Human Deaths https://ourworldindata.org/births-and-deaths 1.7 Human Deaths 8123456789 heart beats https://ourworldindata.org/grapher/population 8123456789 heart beats In Your Body ============ 3112123 Red Blood Cells Made https://www.ncbi.nlm.nih.gov/books/NBK2263/ 3112123 Red Blood Cells Made 3812123 Cells Made https://www.ncbi.nlm.nih.gov/books/NBK2263/ 3812123 Cells Made 2123456789123456789123 ATP molecules made https://bio.libretexts.org/Bookshelves/Human_Biology/Human_Biology_(Wakim_and_Grewal)/05%3A_Cells/5.09%3A_Cellular_Respiration 2123456789123456789123 ATP molecules made In Your Brain ============= 1.2e12 Action Potentials Fired https://www.khanacademy.org/test-prep/mcat/organ-systems/neural-synapses/a/signal-propagation-the-movement-of-signals-between-neurons 1.2e12 Action Potentials Fired 3.64e18 Ketones Consumed (Ketosis) https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7699472/ 3.64e18 Ketones Consumed (Ketosis) 4.64e18 Glucose Molecules Consumed https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3900881/ 4.64e18 Glucose Molecules Consumed World Economy ============= 2.5 Cars Made https://www.statista.com/statistics/262747/worldwide-automobile-production-since-2000/ 2.5 Cars Made 26012 Cups of Coffee Consumed https://www.rgare.com/knowledge-center/article/coffee-consumption-how-much-is-too-much-and-how-little-is-not-enough 26012 Cups of Coffee Consumed 59321 YouTubes Watched https://thesocialshepherd.com/blog/youtube-statistics 59321 YouTubes Watched Flight ====== 0.00008 Objects Launched into Space https://ourworldindata.org/grapher/yearly-number-of-objects-launched-into-outer-space 0.00008 Objects Launched into Space 0.00004 Planes Built https://www.ibisworld.com/global/market-research-reports/global-commercial-aircraft-manufacturing-industry/ 0.00004 Planes Built 1.17 Planes Landed https://www.faa.gov/air_traffic/by_the_numbers 1.17 Planes Landed Animals ======= 0.00004 Blue Whales Born https://www.marinemammalcenter.org/animal-care/learn-about-marine-mammals/cetaceans/blue-whale 0.00004 Blue Whales Born 0.001 Elephants Born https://elephantconservation.org/about-elephants/25-things-to-know/ 0.001 Elephants Born 3.1e10 Ants Born https://privateexterminator.com/are-all-the-ants-as-heavy-as-all-the-humans 3.1e10 Ants Born Computer Chips ============== 66.7 CPUS made by Intel https://www.intel.com/content/www/us/en/architecture-and-technology/global-manufacturing.html 66.7 CPUS made by Intel 6234556543 Transistors made by Nvidia https://nvidianews.nvidia.com/news/nvidia-announces-hopper-architecture-the-next-generation-of-accelerated-computing 6234556543 Transistors made by Nvidia 61234556543 Transistors made by Intel https://www.intel.com/content/www/us/en/history/museum-transistors-to-transformations-brochure.html 61234556543 Transistors made by Intel ⁂ Built with Scroll v165.3.0 08/02/2024 1029 5.1 Heatrix: Heat Maps + Matrix Visualizations -Heatrix: Heat Maps + Matrix Visualizations ========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 28, 2024 [Image Omitted] A heatrix on CancerDB. https://cancerdb.com/blog/cancer-heatmaps.html A heatrix on CancerDB. July 28, 2024 Do you love those GitHub Activity Charts and want to make your own but don't know what they are called or what library to use and your work is busy and you have kids and sorry I'll call you back someone is crying? Introducing Scroll's newest parser: `heatrix`! https://scroll.pub/blog/../index.html Scroll's Try Now | Watch Video https://try.scroll.pub/#scroll%0A%20%23%20Heatrix%20Demos%0A%20%0A%20%23%23%20Adjust%20the%20height%2Fwidth%20of%20individual%20cells%2C%20columns%2C%20or%20rows%3A%0A%20heatrix%0A%20%20h20%3BScroll%20h20%3BPLDB%0A%20%20400%20700%0A%20%0A%20%23%23%20Add%20links%3A%0A%20heatrix%0A%20%20h20%3BScroll%3Bhttps%3A%2F%2Fscroll.pub%20h20%3BPLDB%3Bhttps%3A%2F%2Fpldb.io%0A%20%20400%20700%0A%20%0A%20%23%23%20Use%20numbers%20as%20labels%3A%0A%20heatrix%0A%20%20'2021%20'2017%0A%20%20400%20700%0A%20%0A%20%23%23%20Use%20your%20own%20custom%20color%20palettes%20and%20set%20your%20own%20thresholds%3A%0A%20heatrixAdvanced%0A%20%20table%0A%20%20%20%20%0A%20%20%20h10%3Bw30%20'2015%20'2016%20'2017%20'2018%20'2019%20'2020%20'2021%20'2022%20'2023%20'2024%0A%20%20%20h30%3Bw30%3B%200%200%205%201%202%2011%2015%2010%2012%2056%0A%20%20scale%0A%20%20%20%23ffebee%200%0A%20%20%20%23ffcdd2%201%0A%20%20%20%23ef9a9a%205%0A%20%20%20%23e57373%2010%0A%20%20%20%23ef5350%2025%0A%20%20%20%23b71c1c%2050 Try Now https://www.youtube.com/watch?v=ycF3k63qn1Y Watch Video ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= `heatrix` let's you craft custom heatmap visualizations with the fewest keystrokes possible. Heat Map + Matrix = Heatrix =========================== [Image Omitted] Source code. Gif made with CleanShotX. https://try.scroll.pub/#scroll%0A%20heatrix%0A%20%208%206%207%205%0A%20%2030%209 Source code https://cleanshot.com/ CleanShotX * Not just a library, it's a microlanguage! ========================================= `heatrix` is a microlang that let's you customize your visualizations using "directives": Adjust the height/width of individual cells, columns, or rows: ============================================================== Add links: ========== Add labels: =========== Use numbers as labels: ====================== Use your own custom color palettes and set your own thresholds: =============================================================== * Like Heatrix? There's more where that came from! ================================================ Join the World Wide Scroll Beta today! ====================================== If you like `heatrix` and want to see more stuff like this, but a folder on the World Wide Scroll beta and good things will come your way: https://wws.scroll.pub/ World Wide Scroll beta ⁂ Built with Scroll v165.2.0 +Heatrix: Heat Maps + Matrix Visualizations ========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 28, 2024 [Image Omitted] A heatrix on CancerDB. https://cancerdb.com/blog/cancer-heatmaps.html A heatrix on CancerDB. July 28, 2024 Do you love those GitHub Activity Charts and want to make your own but don't know what they are called or what library to use and your work is busy and you have kids and sorry I'll call you back someone is crying? Introducing Scroll's newest parser: `heatrix`! https://scroll.pub/blog/../index.html Scroll's Try Now | Watch Video https://try.scroll.pub/#scroll%0A%20%23%20Heatrix%20Demos%0A%20%0A%20%23%23%20Adjust%20the%20height%2Fwidth%20of%20individual%20cells%2C%20columns%2C%20or%20rows%3A%0A%20heatrix%0A%20%20h20%3BScroll%20h20%3BPLDB%0A%20%20400%20700%0A%20%0A%20%23%23%20Add%20links%3A%0A%20heatrix%0A%20%20h20%3BScroll%3Bhttps%3A%2F%2Fscroll.pub%20h20%3BPLDB%3Bhttps%3A%2F%2Fpldb.io%0A%20%20400%20700%0A%20%0A%20%23%23%20Use%20numbers%20as%20labels%3A%0A%20heatrix%0A%20%20'2021%20'2017%0A%20%20400%20700%0A%20%0A%20%23%23%20Use%20your%20own%20custom%20color%20palettes%20and%20set%20your%20own%20thresholds%3A%0A%20heatrixAdvanced%0A%20%20table%0A%20%20%20%20%0A%20%20%20h10%3Bw30%20'2015%20'2016%20'2017%20'2018%20'2019%20'2020%20'2021%20'2022%20'2023%20'2024%0A%20%20%20h30%3Bw30%3B%200%200%205%201%202%2011%2015%2010%2012%2056%0A%20%20scale%0A%20%20%20%23ffebee%200%0A%20%20%20%23ffcdd2%201%0A%20%20%20%23ef9a9a%205%0A%20%20%20%23e57373%2010%0A%20%20%20%23ef5350%2025%0A%20%20%20%23b71c1c%2050 Try Now https://www.youtube.com/watch?v=ycF3k63qn1Y Watch Video ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= `heatrix` let's you craft custom heatmap visualizations with the fewest keystrokes possible. Heat Map + Matrix = Heatrix =========================== [Image Omitted] Source code. Gif made with CleanShotX. https://try.scroll.pub/#scroll%0A%20heatrix%0A%20%208%206%207%205%0A%20%2030%209 Source code https://cleanshot.com/ CleanShotX * Not just a library, it's a microlanguage! ========================================= `heatrix` is a microlang that let's you customize your visualizations using "directives": Adjust the height/width of individual cells, columns, or rows: ============================================================== Add links: ========== Add labels: =========== Use numbers as labels: ====================== Use your own custom color palettes and set your own thresholds: =============================================================== * Like Heatrix? There's more where that came from! ================================================ Join the World Wide Scroll Beta today! ====================================== If you like `heatrix` and want to see more stuff like this, but a folder on the World Wide Scroll beta and good things will come your way: https://wws.scroll.pub/ World Wide Scroll beta ⁂ Built with Scroll v165.3.0 07/28/2024 470 2.4 Contacts: A Microlang for Managing Contacts -Contacts: A Microlang for Managing Contacts =========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 16, 2024 July 16, 2024 Imagine a single plain text file named `contacts.scroll` where you stored the contact info for your family, friends, and colleagues, and you could track changes with git, compile it to a beautiful PDF or HTML page with search and sort, and it would also compile to CSV and/or JSON for import into iPhone, Android, Gmail, Outlook, et cetera? Also imagine that this tool is free, open source, and public domain. * Introducing *Contacts*, a microlanguage (currently 23 lines of code, including comments) that makes it as concise as possible to add, prune, display, print and export your contacts. https://github.com/breck7/scroll/blob/main/microlangs/contacts.parsers 23 lines of code * There's almost nothing to learn (the code is self-explanatory). In fact, it's almost guaranteed that using Contacts you will need to write less (we've taken every unnecessary character out). * Example ======= ``` 👤 Jack Doe phone +1 (555) 123-4567 email john.doe@example.com birthday 2/23/84 notes Daughter - Samantha. 👤 Jill Smith phone +1 (555) 123-4562 email jill@gmail.com birthday 1/23/80 ``` * How to use ========== 1. Create a file named something like `contacts.scroll` with this content: ``` // You can import the file, or just copy/paste the 21 lines of code here. [pathToScroll]/microlangs/contacts.parser title My Contacts buildConcepts contacts.csv contacts.json contacts.tsv buildHtml theme gazette mediumColumns 1 printTitle table printTable tableSearch 👤 Jack Doe phone +1 (555) 123-4567 email john.doe@example.com birthday 2/23/84 notes Daughter - Samantha. 👤 Jill Smith phone +1 (555) 123-4562 email jill@gmail.com birthday 1/23/80 ``` 2. Run `scroll build` Done! You should now see a contacts.html file for display and printing as well as TSV, CSV, and JSON files. https://scroll.pub/blog/../tests/contacts.html contacts.html * [Image Omitted] Contacts is interoperable with pen and paper. * What do you think? Anything that should be added/removed/improved? * Notes ===== 1. The idea for Contacts was sparked by this tweet from Tyler Tringas. https://x.com/tylertringas/status/1813239718957461528 this tweet from Tyler Tringas ⁂ Built with Scroll v165.2.0 +Contacts: A Microlang for Managing Contacts =========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 16, 2024 July 16, 2024 Imagine a single plain text file named `contacts.scroll` where you stored the contact info for your family, friends, and colleagues, and you could track changes with git, compile it to a beautiful PDF or HTML page with search and sort, and it would also compile to CSV and/or JSON for import into iPhone, Android, Gmail, Outlook, et cetera? Also imagine that this tool is free, open source, and public domain. * Introducing *Contacts*, a microlanguage (currently 23 lines of code, including comments) that makes it as concise as possible to add, prune, display, print and export your contacts. https://github.com/breck7/scroll/blob/main/microlangs/contacts.parsers 23 lines of code * There's almost nothing to learn (the code is self-explanatory). In fact, it's almost guaranteed that using Contacts you will need to write less (we've taken every unnecessary character out). * Example ======= ``` 👤 Jack Doe phone +1 (555) 123-4567 email john.doe@example.com birthday 2/23/84 notes Daughter - Samantha. 👤 Jill Smith phone +1 (555) 123-4562 email jill@gmail.com birthday 1/23/80 ``` * How to use ========== 1. Create a file named something like `contacts.scroll` with this content: ``` // You can import the file, or just copy/paste the 21 lines of code here. [pathToScroll]/microlangs/contacts.parser title My Contacts buildConcepts contacts.csv contacts.json contacts.tsv buildHtml theme gazette mediumColumns 1 printTitle table printTable tableSearch 👤 Jack Doe phone +1 (555) 123-4567 email john.doe@example.com birthday 2/23/84 notes Daughter - Samantha. 👤 Jill Smith phone +1 (555) 123-4562 email jill@gmail.com birthday 1/23/80 ``` 2. Run `scroll build` Done! You should now see a contacts.html file for display and printing as well as TSV, CSV, and JSON files. https://scroll.pub/blog/../tests/contacts.html contacts.html * [Image Omitted] Contacts is interoperable with pen and paper. * What do you think? Anything that should be added/removed/improved? * Notes ===== 1. The idea for Contacts was sparked by this tweet from Tyler Tringas. https://x.com/tylertringas/status/1813239718957461528 this tweet from Tyler Tringas ⁂ Built with Scroll v165.3.0 07/16/2024 374 1.9 How I Designed Helpful 404's and Stopped Worrying about Broken Links -How I Designed Helpful 404's and Stopped Worrying about Broken Links ==================================================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 12, 2024 _Woohoo!_ Your blog is on top of Reddit! _OH NO._ There's a typo in your url. 🤦 *What do you do?* * You try to calm yourself down. _Almost no one looks at the url and the content of the article is what's important and the traffic is coming_ But then you think _all I can see is that i before e after c!_ But then you think _is that *really* a rule_ and _maybe that's how it's spelled in London?_ * You can't help yourself. It's an affront to your craftsmanship to not correct the bad filename. You know you can so easily rename the file but then existing links will break and so you'll have to add redirects but that means more files to maintain or god forbid that would require adding a server and you just love your static blog and it's almost 2pm and you have to leave and pick up the kids from school what do you do!?!! Or do you just break the links and going forward everyone will have the proper URL but everyone who clicks the old links will see an unhelpful 404 and you reflect on how great this thing that Tim Berners-Lee gave to the world is and how could you litter his creation with unhelpful 404s? * If the story above resonates with you, the bad news is you may suffer from Broken Link Phobia. Luckily, there is now a cure. * Introducing: Helpful 404's - never worry about broken links again! ================================================================== Scroll now comes with a way to generate a very helpful 404 page so your visitors will get redirected to the right place even if the URL they clicked is off by a few characters. The best part? It works entirely client side on static sites. How to use ========== *Step 1* Create a sitemap: ```sitemap.scroll buildTxt sitemap.txt baseUrl https://scroll.pub/ printSiteMap ``` *Step 2* Create a 404 page: ```404.scroll buildHtml Sorry, the url you requested was not found. helpfulNotFound sitemap.txt ``` That's it! The `helpfulNotFound` parser in Scroll will add Javascript to the 404 page that fetches all the urls found in the sitemap and shows the user the closest match. As a bonus, you also get a `sitemap.txt` file great for Google SEO and other uses. See it in action here by clicking on this intentionally broken link: https://scroll.pub/blog/helpful_404s.html intentionally broken link * I've been using Helpful 404s on all my sites for the past couple of months and it's been delightful. I no longer spend any time worrying about making improvements to URLS. I just do it and I know that users following old links will still have a good experience. * If you like stuff like Helpful 404's, there's _a lot_ more like that in Scroll, which is public domain and open source. Try it today, and if you like what we are doing please consider bringing your site to the World Wide Scroll! https://wws.scroll.pub World Wide Scroll ⁂ Built with Scroll v165.2.0 +How I Designed Helpful 404's and Stopped Worrying about Broken Links ==================================================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 12, 2024 _Woohoo!_ Your blog is on top of Reddit! _OH NO._ There's a typo in your url. 🤦 *What do you do?* * You try to calm yourself down. _Almost no one looks at the url and the content of the article is what's important and the traffic is coming_ But then you think _all I can see is that i before e after c!_ But then you think _is that *really* a rule_ and _maybe that's how it's spelled in London?_ * You can't help yourself. It's an affront to your craftsmanship to not correct the bad filename. You know you can so easily rename the file but then existing links will break and so you'll have to add redirects but that means more files to maintain or god forbid that would require adding a server and you just love your static blog and it's almost 2pm and you have to leave and pick up the kids from school what do you do!?!! Or do you just break the links and going forward everyone will have the proper URL but everyone who clicks the old links will see an unhelpful 404 and you reflect on how great this thing that Tim Berners-Lee gave to the world is and how could you litter his creation with unhelpful 404s? * If the story above resonates with you, the bad news is you may suffer from Broken Link Phobia. Luckily, there is now a cure. * Introducing: Helpful 404's - never worry about broken links again! ================================================================== Scroll now comes with a way to generate a very helpful 404 page so your visitors will get redirected to the right place even if the URL they clicked is off by a few characters. The best part? It works entirely client side on static sites. How to use ========== *Step 1* Create a sitemap: ```sitemap.scroll buildTxt sitemap.txt baseUrl https://scroll.pub/ printSiteMap ``` *Step 2* Create a 404 page: ```404.scroll buildHtml Sorry, the url you requested was not found. helpfulNotFound sitemap.txt ``` That's it! The `helpfulNotFound` parser in Scroll will add Javascript to the 404 page that fetches all the urls found in the sitemap and shows the user the closest match. As a bonus, you also get a `sitemap.txt` file great for Google SEO and other uses. See it in action here by clicking on this intentionally broken link: https://scroll.pub/blog/helpful_404s.html intentionally broken link * I've been using Helpful 404s on all my sites for the past couple of months and it's been delightful. I no longer spend any time worrying about making improvements to URLS. I just do it and I know that users following old links will still have a good experience. * If you like stuff like Helpful 404's, there's _a lot_ more like that in Scroll, which is public domain and open source. Try it today, and if you like what we are doing please consider bringing your site to the World Wide Scroll! https://wws.scroll.pub World Wide Scroll ⁂ Built with Scroll v165.3.0 07/12/2024 547 2.7 Convert CSVs to ScrollSets -Convert CSVs to ScrollSets ========================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 9, 2024 ScrollSets are _very_ useful once you get going. But starting from scratch could be a bit tedious. https://breckyunits.com/scrollsets.html ScrollSets Not anymore! Just drop your CSV or TSV into the textarea below to generate a ScrollSet. (P.S. using LLMs with ScrollSets is another great way to get started) https://sets.scroll.pub/ using LLMs with ScrollSets * Your Data: ========== ScrollSet: ========== Related ======= ScrollSets: source code for CSVs ================================ 04/21/2024 https://scroll.pub/blog/scrollsets.html Built with Scroll v165.2.0 +Convert CSVs to ScrollSets ========================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 9, 2024 ScrollSets are _very_ useful once you get going. But starting from scratch could be a bit tedious. https://breckyunits.com/scrollsets.html ScrollSets Not anymore! Just drop your CSV or TSV into the textarea below to generate a ScrollSet. (P.S. using LLMs with ScrollSets is another great way to get started) https://sets.scroll.pub/ using LLMs with ScrollSets * Your Data: ========== ScrollSet: ========== Related ======= ScrollSets: source code for CSVs ================================ 04/21/2024 https://scroll.pub/blog/scrollsets.html Built with Scroll v165.3.0 07/09/2024 100 0.5 Changes: A Microlang for Change Logs -Changes: A Microlang for Change Logs ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits [Image Omitted] July 1, 2024 Regardless of what languages you write your programs in, you probably maintain files like _changeLog.txt_ or _releaseNotes.txt_. Change logs are very helpful for: - informing your users of new features and bug fixes - providing detailed technical information to your development team (and open source contributors) - periodical data analysis for strategic project planning - how fast are we shipping new features? fixing bugs? breaking things? What if there was 1 language that let you do all 3 things at once? * Introducing Changes, a microlang (only 70 lines of code, including comments) that makes it as concise as possible to write, read and analyze change logs. https://github.com/breck7/scroll/blob/main/microlangs/changes.parsers 70 lines of code Changes generates a pretty HTML file for your end users; allows for including unlimited detailed technical information for your developers; and generates summary statistics as TSV, CSV, and JSON for your project managers. * There's almost nothing to learn (the code is self explanatory). In fact, it's almost guaranteed that using Changes you will need to write less (we've taken every unnecessary character out). * Example ======= We use Changes for the Scroll Release Notes. https://scroll.pub/blog/../releaseNotes.html Scroll Release Notes Be sure to check out the source code that generates that HTML. https://github.com/breck7/scroll/blob/main/releaseNotes.scroll check out the source code * How to use ========== 1. Install Scroll ``` npm install -g scroll-cli ``` 2. Create a release notes file: ```releaseNotes.scroll title My Release Notes printTitle buildConcepts releaseNotes.csv releaseNotes.json releaseNotes.tsv // You can import the changes parsers or just copy/paste the 70 lines into your own file. [pathToScroll]/microlangs/changes.parser thinColumns 📦 0.1.1 7/1/2024 🏥 fixed bug in command line app 📦 0.1.0 7/1/2024 🎉 added command line app endColumns ``` 3. Run `scroll build` Done! You should now see a `releaseNotes.html` file as well as a TSV, CSV, and JSON file. * What do you think? Anything that should be added/removed/improved? ⁂ Related ======= - Changelog https://en.wikipedia.org/wiki/Changelog Changelog - Release Notes https://en.wikipedia.org/wiki/Release_notes Release Notes - Major Version Numbers are Not Sacred https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred Major Version Numbers are Not Sacred - What can we learn from programming language version numbers? https://breckyunits.com/versionNumbers.html What can we learn from programming language version numbers? Built with Scroll v165.2.0 +Changes: A Microlang for Change Logs ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits [Image Omitted] July 1, 2024 Regardless of what languages you write your programs in, you probably maintain files like _changeLog.txt_ or _releaseNotes.txt_. Change logs are very helpful for: - informing your users of new features and bug fixes - providing detailed technical information to your development team (and open source contributors) - periodical data analysis for strategic project planning - how fast are we shipping new features? fixing bugs? breaking things? What if there was 1 language that let you do all 3 things at once? * Introducing Changes, a microlang (only 70 lines of code, including comments) that makes it as concise as possible to write, read and analyze change logs. https://github.com/breck7/scroll/blob/main/microlangs/changes.parsers 70 lines of code Changes generates a pretty HTML file for your end users; allows for including unlimited detailed technical information for your developers; and generates summary statistics as TSV, CSV, and JSON for your project managers. * There's almost nothing to learn (the code is self explanatory). In fact, it's almost guaranteed that using Changes you will need to write less (we've taken every unnecessary character out). * Example ======= We use Changes for the Scroll Release Notes. https://scroll.pub/blog/../releaseNotes.html Scroll Release Notes Be sure to check out the source code that generates that HTML. https://github.com/breck7/scroll/blob/main/releaseNotes.scroll check out the source code * How to use ========== 1. Install Scroll ``` npm install -g scroll-cli ``` 2. Create a release notes file: ```releaseNotes.scroll title My Release Notes printTitle buildConcepts releaseNotes.csv releaseNotes.json releaseNotes.tsv // You can import the changes parsers or just copy/paste the 70 lines into your own file. [pathToScroll]/microlangs/changes.parser thinColumns 📦 0.1.1 7/1/2024 🏥 fixed bug in command line app 📦 0.1.0 7/1/2024 🎉 added command line app endColumns ``` 3. Run `scroll build` Done! You should now see a `releaseNotes.html` file as well as a TSV, CSV, and JSON file. * What do you think? Anything that should be added/removed/improved? ⁂ Related ======= - Changelog https://en.wikipedia.org/wiki/Changelog Changelog - Release Notes https://en.wikipedia.org/wiki/Release_notes Release Notes - Major Version Numbers are Not Sacred https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred Major Version Numbers are Not Sacred - What can we learn from programming language version numbers? https://breckyunits.com/versionNumbers.html What can we learn from programming language version numbers? Built with Scroll v165.3.0 07/01/2024 431 2.2 Write scatterplot to get a scatterplot -Write scatterplot to get a scatterplot ====================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits June 24, 2024 I _engineered on_ many innovative data science tools, including Grapher and Ohayo^engineering. https://github.com/breck7/ohayo Ohayo https://github.com/owid/owid-grapher Grapher So I was excited to see Observable launch something new: Plot. https://observablehq.com/plot/ Plot https://observablehq.com/ Observable * Plot is already great on its own. It handles many of the hard parts of data vis, and it's open source, so we can help them fix the parts that are still a little rough. https://github.com/observablehq/plot open source But I found a way to take Plot to the next level: I combined it with Scroll. https://scroll.pub/blog/../index.html Scroll The Plot/Scroll integration is early, but I can already tell it will evolve into a _very useful_ data science tool. * A Scatterplot with 2 words ========================== You can now make scatterplots with 2 words. Obviously you want to add a few more words, but I don't think I'm exaggerating when I say that this is the simplest way to generate a scatterplot now and forever will be (until the day when we have mind-reading machines that can generate a scatterplot with zero words). But enough talk, let's see some code. A tutorial is below. To follow along, create a new website in 1 second using ScrollHub or install Scroll locally with `npm install -g scroll-cli`. http://hub.scroll.pub ScrollHub * Step 1: Generate a scatterplot with 2 words =========================================== * Step 2: Add a title =================== * Step 3: Add inline data ======================= * Step 4: Everything everywhere all at once ========================================= * That's it (for now)! If you like where this is headed, give us a star on GitHub. https://github.com/breck7/scroll give us a star on GitHub ⁂ ^engineering: The difference between programming and engineering? It takes programming to make a program that works. It takes engineering to make a program that _barely_ works. Built with Scroll v165.2.0 +Write scatterplot to get a scatterplot ====================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits June 24, 2024 I _engineered on_ many innovative data science tools, including Grapher and Ohayo^engineering. https://github.com/breck7/ohayo Ohayo https://github.com/owid/owid-grapher Grapher So I was excited to see Observable launch something new: Plot. https://observablehq.com/plot/ Plot https://observablehq.com/ Observable * Plot is already great on its own. It handles many of the hard parts of data vis, and it's open source, so we can help them fix the parts that are still a little rough. https://github.com/observablehq/plot open source But I found a way to take Plot to the next level: I combined it with Scroll. https://scroll.pub/blog/../index.html Scroll The Plot/Scroll integration is early, but I can already tell it will evolve into a _very useful_ data science tool. * A Scatterplot with 2 words ========================== You can now make scatterplots with 2 words. Obviously you want to add a few more words, but I don't think I'm exaggerating when I say that this is the simplest way to generate a scatterplot now and forever will be (until the day when we have mind-reading machines that can generate a scatterplot with zero words). But enough talk, let's see some code. A tutorial is below. To follow along, create a new website in 1 second using ScrollHub or install Scroll locally with `npm install -g scroll-cli`. http://hub.scroll.pub ScrollHub * Step 1: Generate a scatterplot with 2 words =========================================== * Step 2: Add a title =================== * Step 3: Add inline data ======================= * Step 4: Everything everywhere all at once ========================================= * That's it (for now)! If you like where this is headed, give us a star on GitHub. https://github.com/breck7/scroll give us a star on GitHub ⁂ ^engineering: The difference between programming and engineering? It takes programming to make a program that works. It takes engineering to make a program that _barely_ works. Built with Scroll v165.3.0 06/24/2024 342 1.7 Stamp: a microlang for project templates -Stamp: a microlang for project templates ======================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits June 23, 2024 Regardless if you specialize in React, Rails, Django, Next, Java, C#, or ObjectiveC, you probably use _templates_ to start new projects. Templates generate a handful of files like `readme.md`, `.gitignore`, and `main`. They also initialize a handful of directories like `src/` and `tests/`. What if it was even easier to make, edit and use these templates? * Introducing Stamp, a microlang (only 60 lines of code, including comments) that makes it as concise as possible to write, edit, share and expand project templates. https://github.com/breck7/scroll/blob/main/parsers/stamp.parsers 60 lines of code * How to use ========== 1. Install Scroll ``` npm install -g scroll-cli ``` 2. Create `myFirstStamp.scroll` ``` stamp .gitignore *.html readme.scroll # My First Stamp scripts/ hello.js console.log("Hello world") ``` 3. Run `scroll build` Done! * Stamp was jointly created by me and Guillaume Papin. Other tools (listed below) do similar things, but with some slight differences. https://github.com/Sarcasm Guillaume Papin https://github.com/breck7/scrollsdk/issues/120 jointly created ⁂ [Image Omitted] Prior Art ========= - cookiecutter https://github.com/cookiecutter/cookiecutter cookiecutter - Dired https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html Dired - vimv https://github.com/thameera/vimv vimv - ptar https://github.com/jtvaughan/ptar ptar - shar https://en.wikipedia.org/wiki/Shar shar - dar http://dar.linux.free.fr/ dar - metatar https://github.com/xyproto/metatar metatar - txtar https://pkg.go.dev/golang.org/x/tools@v0.1.0/txtar txtar - Archiving files in plain text https://blog.oquijano.net/id/9?lang=en Archiving files in plain text - Wikipedia list of archive formats https://en.wikipedia.org/wiki/List_of_archive_formats Wikipedia list of archive formats Built with Scroll v165.2.0 +Stamp: a microlang for project templates ======================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits June 23, 2024 Regardless if you specialize in React, Rails, Django, Next, Java, C#, or ObjectiveC, you probably use _templates_ to start new projects. Templates generate a handful of files like `readme.md`, `.gitignore`, and `main`. They also initialize a handful of directories like `src/` and `tests/`. What if it was even easier to make, edit and use these templates? * Introducing Stamp, a microlang (only 60 lines of code, including comments) that makes it as concise as possible to write, edit, share and expand project templates. https://github.com/breck7/scroll/blob/main/parsers/stamp.parsers 60 lines of code * How to use ========== 1. Install Scroll ``` npm install -g scroll-cli ``` 2. Create `myFirstStamp.scroll` ``` stamp .gitignore *.html readme.scroll # My First Stamp scripts/ hello.js console.log("Hello world") ``` 3. Run `scroll build` Done! * Stamp was jointly created by me and Guillaume Papin. Other tools (listed below) do similar things, but with some slight differences. https://github.com/Sarcasm Guillaume Papin https://github.com/breck7/scrollsdk/issues/120 jointly created ⁂ [Image Omitted] Prior Art ========= - cookiecutter https://github.com/cookiecutter/cookiecutter cookiecutter - Dired https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html Dired - vimv https://github.com/thameera/vimv vimv - ptar https://github.com/jtvaughan/ptar ptar - shar https://en.wikipedia.org/wiki/Shar shar - dar http://dar.linux.free.fr/ dar - metatar https://github.com/xyproto/metatar metatar - txtar https://pkg.go.dev/golang.org/x/tools@v0.1.0/txtar txtar - Archiving files in plain text https://blog.oquijano.net/id/9?lang=en Archiving files in plain text - Wikipedia list of archive formats https://en.wikipedia.org/wiki/List_of_archive_formats Wikipedia list of archive formats Built with Scroll v165.3.0 06/23/2024 300 1.5 Scroll builds text files -Scroll builds text files ======================== by Breck Yunits https://breckyunits.com Breck Yunits HTML | TXT link textFiles.html HTML link textFiles.txt TXT April 29, 2024 Scroll is a new language for building HTML and CSV files that powers blogs, websites and knowledge bases. https://scroll.pub/blog/scrollsets.html knowledge bases https://scroll.pub/blog/../index.html Scroll * I often need plain text outputs in addition to HTML files. I used to make those plain text versions copying and pasting text by hand. Now Scroll has plain text output built-in. * How do I tell Scroll to build plain text files? =============================================== Add a single line: `buildTxt` ```example.scroll buildTxt Hello world. ``` `scroll build` will create `example.txt`. Done! * You may want to put `buildTxt` into `header.scroll` or `footer.scroll` to build text files for many pages at once. * I've *loved* this new feature in Scroll. Plain text is a *timeless* way to read, review, and share your thoughts! Hope you enjoy it as much as I have! ⁂ Built with Scroll v165.2.0 +Scroll builds text files ======================== by Breck Yunits https://breckyunits.com Breck Yunits HTML | TXT link textFiles.html HTML link textFiles.txt TXT April 29, 2024 Scroll is a new language for building HTML and CSV files that powers blogs, websites and knowledge bases. https://scroll.pub/blog/scrollsets.html knowledge bases https://scroll.pub/blog/../index.html Scroll * I often need plain text outputs in addition to HTML files. I used to make those plain text versions copying and pasting text by hand. Now Scroll has plain text output built-in. * How do I tell Scroll to build plain text files? =============================================== Add a single line: `buildTxt` ```example.scroll buildTxt Hello world. ``` `scroll build` will create `example.txt`. Done! * You may want to put `buildTxt` into `header.scroll` or `footer.scroll` to build text files for many pages at once. * I've *loved* this new feature in Scroll. Plain text is a *timeless* way to read, review, and share your thoughts! Hope you enjoy it as much as I have! ⁂ Built with Scroll v165.3.0 04/29/2024 175 0.9 ScrollSets: source code for CSVs -ScrollSets: source code for CSVs ================================ by Breck Yunits https://breckyunits.com Breck Yunits [Image Omitted] More examples of ScrollSets from sets.scroll.pub. https://sets.scroll.pub/ sets.scroll.pub April 21, 2024 The source code for this blog post contains a ScrollSet about the planets and generates this HTML file as well as a CSV, a TSV, and a JSON file. This page demonstrates *ScrollSets*. https://scroll.pub/blog/scrollsets.scroll source code for this blog post https://scroll.pub/blog/planets.csv CSV https://scroll.pub/blog/planets.tsv TSV https://scroll.pub/blog/planets.json JSON ScrollSets are useful for small single day projects and large multi-year projects with thousands of concepts like PLDB (a Programming Language Database). https://pldb.io PLDB * ScrollSets are normal plain text files written in Scroll that also contain measurements of concepts and output that data into formats ready for data visualization and analysis tools. https://scroll.pub/ Scroll ScrollSets are line oriented but represent a table(s). You might call them _deconstructed csvs_ or _deconstructed spreadsheets_. - Use LLMs to *instantly generate ScrollSets* that are ready for human verification and improvement. - Intermingle structured data with markup to *annotate any and every part of a ScrollSets* while still generating strict tabular files for data analysis tools. - Put data, schema, citations, and documentation *all* in one (or more) plain text file(s) to easily share, collaborate on, and improve, all *tracked by git for trust*. - Add unlimited citations (or none) to *every* measurement. Quick Code Example: =================== ```planets.scroll This ScrollSets has 2 measures (columns) and 2 concepts (rows). Documentation, column definitions, rows and *any notes/markup/content* can go in the same file. # Measures (aka Header, aka Columns, aka Schema) idParser // Every concept needs an "id" (or other concept delimiter) extends abstractIdParser moonsParser extends abstractIntegerParser # Concepts (aka Rows) id mars moons 2 // I verified moon count with Google. - BY id jupiter moons 63 // Note: the moons of Jupiter have their own Wikipedia Page https://en.wikipedia.org/wiki/Moons_of_Jupiter moons of Jupiter buildConcepts demo.csv ``` The code above generates an HTML page and this: =============================================== ```demo.csv id,moons mars,2 jupiter,63 ``` Overview: ========= - ScrollSets are built from 4 atomic elements: - concepts - think of rows in a spreadsheet - denoted by a line starting with `id ` - concepts are multiple lines of measurements - measures - think of these as the column names in a spreadsheet, along with meta information about the column - aka "parsers" - measures are defined in Parsers that start with a line like `moonsParser` - values - these are just the values of the measurements - measurements - concept & measure & value = measurement - 1 measurement = 1 line - measurements can have nested comments that are stripped when compiling to TSV/CSV How to use ========== - A concept is like a row in a database. All concepts need an id (or other concept delimiter). When you write `id [conceptId]`, Scroll knows that is the beginning of a new concept. - Measure definitions (aka "parsers") must come before the first concept and are written as Parsers, just like any other Scroll Parser. Measure parsers need to extend one of the abstract measure parser classes defined in `measures.scroll`. - Measurements are then done like this `appeared 2024` FAQ === Isn't the better idea to enhance existing spreadsheet GUIs with LLM generation capabilities? ============================================================================================ Almost certainly. Using ScrollSets will be much slower and worse than future spreadsheet apps with carefully crafted LLM integrations. However, it's important to also have simple, lower tech, timeless tools and ScrollSets is one of those. Can't you do this same thing with YAML and/or Markdown? ======================================================= Yes! You can easily achieve the same thing as LLMs & ScrollSets using LLMs & YAML, or LLMs & YAML & Markdown. https://yaml.org/ YAML https://github.github.com/gfm/ Markdown For YAML, just put your documentation and schema in YAML comments up top and then have a tiny script to read that YAML and dump CSV/TSV/JSON or whatever. YAML gives you loads of data structures to use and is widely supported in many languages. But generating HTML from the same file would require more work. If you want to intermix markup content with your data, you can use Markdown to add the marked up content and then have code sections embedding the YAML and a tiny script to parse out those YAML blocks and write your data to disk. So, why use Scroll for storing data instead of YAML? ==================================================== Either can do the job. I expect the Scroll design to end up being more ergonomic, but that might not be true or may be unimportant. If you don't like Scroll's (evolving) version and want to switch it will always be straightforward to automatically refactor to YAML. What other related work is out there? ===================================== This is a simple pattern to implement, so I'm sure it is likely it has been done a few times before. Please let me know so I can include links to--and learn from--any other prior art. What are the advanced features? =============================== - Types correctly exported in JSON - Supports nested measures - Support for computed measures - Autojoins across files on ids^roadmap - Auto generates normalized tables for array measures^roadmap - Support for text blobs^roadmap ^roadmap: Planned. What is the origin of ScrollSets? ================================= LLM dataset generation is a _major_ breakthrough in datasets. ScrollSets are, at best, a minor improvement. They are designed to work alongside LLMs to help solve the Dataset Needed problem. https://breckyunits.com/dataset-needed.html Dataset Needed ScrollSets evolved out of TrueBase. ScrollSets have eliminated the need for the TrueBase software (and existing TrueBase sites should be migrated to ScrollSets), but were informed by the TrueBase build experience. https://truebase.treenotation.org TrueBase Although ScrollSets are designed for a world with LLMs, the design is meant to be useful without them as well, and would also have been mildly useful 30 years ago. What were the design goals? =========================== - Have an LLM do the bulk of the work while humans supervise to remove hallucinations. - Can store everything (documentation, schema, all concepts) in 1 clean plain text file or split into many files (using the `import` parser). - The ScrollSet syntax balances _looseness_ useful in creative thinking with the _tightness_ needed by tabular data visualization and analysis tools. Why are measures and concepts root-level features and not indented? =================================================================== The normal way to implement this in Scroll would be something like: ``` measures id string moons int concept id mars moons 2 concept id jupiter moons 63 ``` The flat design was chosen for ergonomic reasons. ScrollSets seem like they might be useful enough to be worth breaking from Scroll convention a bit. Like all things in Scroll, ScrollSets are an experiment, and maybe this design will evolve. Extended Example: a Planets ScrollSet ===================================== Below is the ScrollSet embedded in this Scroll file. Measurements of the measures ============================ Extended Measures Example ========================= Extended Concepts Example ========================= Related ======= Built with Scroll v165.2.0 +ScrollSets: source code for CSVs ================================ by Breck Yunits https://breckyunits.com Breck Yunits [Image Omitted] More examples of ScrollSets from sets.scroll.pub. https://sets.scroll.pub/ sets.scroll.pub April 21, 2024 The source code for this blog post contains a ScrollSet about the planets and generates this HTML file as well as a CSV, a TSV, and a JSON file. This page demonstrates *ScrollSets*. https://scroll.pub/blog/scrollsets.scroll source code for this blog post https://scroll.pub/blog/planets.csv CSV https://scroll.pub/blog/planets.tsv TSV https://scroll.pub/blog/planets.json JSON ScrollSets are useful for small single day projects and large multi-year projects with thousands of concepts like PLDB (a Programming Language Database). https://pldb.io PLDB * ScrollSets are normal plain text files written in Scroll that also contain measurements of concepts and output that data into formats ready for data visualization and analysis tools. https://scroll.pub/ Scroll ScrollSets are line oriented but represent a table(s). You might call them _deconstructed csvs_ or _deconstructed spreadsheets_. - Use LLMs to *instantly generate ScrollSets* that are ready for human verification and improvement. - Intermingle structured data with markup to *annotate any and every part of a ScrollSets* while still generating strict tabular files for data analysis tools. - Put data, schema, citations, and documentation *all* in one (or more) plain text file(s) to easily share, collaborate on, and improve, all *tracked by git for trust*. - Add unlimited citations (or none) to *every* measurement. Quick Code Example: =================== ```planets.scroll This ScrollSets has 2 measures (columns) and 2 concepts (rows). Documentation, column definitions, rows and *any notes/markup/content* can go in the same file. # Measures (aka Header, aka Columns, aka Schema) idParser // Every concept needs an "id" (or other concept delimiter) extends abstractIdParser moonsParser extends abstractIntegerParser # Concepts (aka Rows) id mars moons 2 // I verified moon count with Google. - BY id jupiter moons 63 // Note: the moons of Jupiter have their own Wikipedia Page https://en.wikipedia.org/wiki/Moons_of_Jupiter moons of Jupiter buildConcepts demo.csv ``` The code above generates an HTML page and this: =============================================== ```demo.csv id,moons mars,2 jupiter,63 ``` Overview: ========= - ScrollSets are built from 4 atomic elements: - concepts - think of rows in a spreadsheet - denoted by a line starting with `id ` - concepts are multiple lines of measurements - measures - think of these as the column names in a spreadsheet, along with meta information about the column - aka "parsers" - measures are defined in Parsers that start with a line like `moonsParser` - values - these are just the values of the measurements - measurements - concept & measure & value = measurement - 1 measurement = 1 line - measurements can have nested comments that are stripped when compiling to TSV/CSV How to use ========== - A concept is like a row in a database. All concepts need an id (or other concept delimiter). When you write `id [conceptId]`, Scroll knows that is the beginning of a new concept. - Measure definitions (aka "parsers") must come before the first concept and are written as Parsers, just like any other Scroll Parser. Measure parsers need to extend one of the abstract measure parser classes defined in `measures.scroll`. - Measurements are then done like this `appeared 2024` FAQ === Isn't the better idea to enhance existing spreadsheet GUIs with LLM generation capabilities? ============================================================================================ Almost certainly. Using ScrollSets will be much slower and worse than future spreadsheet apps with carefully crafted LLM integrations. However, it's important to also have simple, lower tech, timeless tools and ScrollSets is one of those. Can't you do this same thing with YAML and/or Markdown? ======================================================= Yes! You can easily achieve the same thing as LLMs & ScrollSets using LLMs & YAML, or LLMs & YAML & Markdown. https://yaml.org/ YAML https://github.github.com/gfm/ Markdown For YAML, just put your documentation and schema in YAML comments up top and then have a tiny script to read that YAML and dump CSV/TSV/JSON or whatever. YAML gives you loads of data structures to use and is widely supported in many languages. But generating HTML from the same file would require more work. If you want to intermix markup content with your data, you can use Markdown to add the marked up content and then have code sections embedding the YAML and a tiny script to parse out those YAML blocks and write your data to disk. So, why use Scroll for storing data instead of YAML? ==================================================== Either can do the job. I expect the Scroll design to end up being more ergonomic, but that might not be true or may be unimportant. If you don't like Scroll's (evolving) version and want to switch it will always be straightforward to automatically refactor to YAML. What other related work is out there? ===================================== This is a simple pattern to implement, so I'm sure it is likely it has been done a few times before. Please let me know so I can include links to--and learn from--any other prior art. What are the advanced features? =============================== - Types correctly exported in JSON - Supports nested measures - Support for computed measures - Autojoins across files on ids^roadmap - Auto generates normalized tables for array measures^roadmap - Support for text blobs^roadmap ^roadmap: Planned. What is the origin of ScrollSets? ================================= LLM dataset generation is a _major_ breakthrough in datasets. ScrollSets are, at best, a minor improvement. They are designed to work alongside LLMs to help solve the Dataset Needed problem. https://breckyunits.com/dataset-needed.html Dataset Needed ScrollSets evolved out of TrueBase. ScrollSets have eliminated the need for the TrueBase software (and existing TrueBase sites should be migrated to ScrollSets), but were informed by the TrueBase build experience. https://truebase.treenotation.org TrueBase Although ScrollSets are designed for a world with LLMs, the design is meant to be useful without them as well, and would also have been mildly useful 30 years ago. What were the design goals? =========================== - Have an LLM do the bulk of the work while humans supervise to remove hallucinations. - Can store everything (documentation, schema, all concepts) in 1 clean plain text file or split into many files (using the `import` parser). - The ScrollSet syntax balances _looseness_ useful in creative thinking with the _tightness_ needed by tabular data visualization and analysis tools. Why are measures and concepts root-level features and not indented? =================================================================== The normal way to implement this in Scroll would be something like: ``` measures id string moons int concept id mars moons 2 concept id jupiter moons 63 ``` The flat design was chosen for ergonomic reasons. ScrollSets seem like they might be useful enough to be worth breaking from Scroll convention a bit. Like all things in Scroll, ScrollSets are an experiment, and maybe this design will evolve. Extended Example: a Planets ScrollSet ===================================== Below is the ScrollSet embedded in this Scroll file. Measurements of the measures ============================ Extended Measures Example ========================= Extended Concepts Example ========================= Related ======= Built with Scroll v165.3.0 04/21/2024 1148 5.7 Introducing Program Links -Introducing Program Links ========================= by Breck Yunits https://twitter.com/breckyunits Breck Yunits May 8, 2023 May 8, 2023 Some web apps are designed to load _entire programs_ from a link. But if a program contain certain characters, such as _newlines_, those links won't work as-is. To create working links you have to run them through `encodeURIComponent`. * If you are creating blog content by hand this is annoying. To update a program link you have to keep a copy of the program, update that, then run `encodeURIComponent`, then paste the result into your post. Today's release of Scroll includes a small new addition that solves this problem. You can call them "Multline Links" or "Program Links". * Here are two examples ===================== Here is a program link to the Scroll web app. https://try.scroll.pub/#scroll%0A%20%23%20Testing%20Program%20Links%0A%20It%20worked!%0A%20%20style%20color%3Agreen%3B%20font-size%3A%20100px%3B program link If you click that link you should see "It worked!" in big green text. * Now let's show a complex real world example. The link below contains a 28 line program pasted verbatim from the Ohayo data science studio. See code Discovery of the Elements https://ohayo.breckyunits.com?filename=test.ohayo&data=doc.title%20Discovery%20of%20the%20Elements%0Adoc.subtitle%20What%20is%20the%20growth%20in%20known%20elements%20over%20time%3F%0Asamples.periodicTable%0A%20hidden%0A%20fill.missing%20Year%201000%0A%20%20hidden%0A%20%20columns.keep%20Element%20Year%0A%20%20%20hidden%0A%20%20%20rows.sortBy%20Year%0A%20%20%20%20hidden%0A%20%20group.by%20Year%0A%20%20%20hidden%0A%20%20%20rows.sortBy%20Year%0A%20%20%20%20hidden%0A%20%20%20%20rows.runningTotal%20count%0A%20%20%20%20%20hidden%0A%20%20%20%20%20vega.bar%20Number%20of%20Elements%20Found%20Each%20Year%0A%20%20%20%20%20%20xColumn%20Year%0A%20%20%20%20%20%20yColumn%20count%0A%20%20%20%20%20vega.line%20Cumulative%20Number%20of%20Elements%0A%20%20%20%20%20%20xColumn%20Year%0A%20%20%20%20%20%20yColumn%20total%0A%20vega.scatter%20Year%20of%20Discovery%20by%20Atomic%20Number%0A%20%20xColumn%20Year%0A%20%20yColumn%20AtomicNumber%0A%20tables.basic%0A%20%20rowDisplayLimit%20200%0Adoc.categories%20chemistry Discovery of the Elements If you click that link you should see a few data visualizations generated from that program. Edit the source and the link will update accordingly. Scroll handles the `encodeURIComponent`. * Why not use HTML directly? ========================== Modern browsers do their best to make URLs well-formed and you will notice that they auto encode certain characters like spaces. But by the HTML spec newlines are not a URL code point and generally are stripped and collapsed. https://url.spec.whatwg.org/#url-code-points URL code point https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace stripped and collapsed Program Links in Scroll handle encoding newlines and any other special characters so you can focus on your content and not the encoding. Built with Scroll v165.2.0 +Introducing Program Links ========================= by Breck Yunits https://twitter.com/breckyunits Breck Yunits May 8, 2023 May 8, 2023 Some web apps are designed to load _entire programs_ from a link. But if a program contain certain characters, such as _newlines_, those links won't work as-is. To create working links you have to run them through `encodeURIComponent`. * If you are creating blog content by hand this is annoying. To update a program link you have to keep a copy of the program, update that, then run `encodeURIComponent`, then paste the result into your post. Today's release of Scroll includes a small new addition that solves this problem. You can call them "Multline Links" or "Program Links". * Here are two examples ===================== Here is a program link to the Scroll web app. https://try.scroll.pub/#scroll%0A%20%23%20Testing%20Program%20Links%0A%20It%20worked!%0A%20%20style%20color%3Agreen%3B%20font-size%3A%20100px%3B program link If you click that link you should see "It worked!" in big green text. * Now let's show a complex real world example. The link below contains a 28 line program pasted verbatim from the Ohayo data science studio. See code Discovery of the Elements https://ohayo.breckyunits.com?filename=test.ohayo&data=doc.title%20Discovery%20of%20the%20Elements%0Adoc.subtitle%20What%20is%20the%20growth%20in%20known%20elements%20over%20time%3F%0Asamples.periodicTable%0A%20hidden%0A%20fill.missing%20Year%201000%0A%20%20hidden%0A%20%20columns.keep%20Element%20Year%0A%20%20%20hidden%0A%20%20%20rows.sortBy%20Year%0A%20%20%20%20hidden%0A%20%20group.by%20Year%0A%20%20%20hidden%0A%20%20%20rows.sortBy%20Year%0A%20%20%20%20hidden%0A%20%20%20%20rows.runningTotal%20count%0A%20%20%20%20%20hidden%0A%20%20%20%20%20vega.bar%20Number%20of%20Elements%20Found%20Each%20Year%0A%20%20%20%20%20%20xColumn%20Year%0A%20%20%20%20%20%20yColumn%20count%0A%20%20%20%20%20vega.line%20Cumulative%20Number%20of%20Elements%0A%20%20%20%20%20%20xColumn%20Year%0A%20%20%20%20%20%20yColumn%20total%0A%20vega.scatter%20Year%20of%20Discovery%20by%20Atomic%20Number%0A%20%20xColumn%20Year%0A%20%20yColumn%20AtomicNumber%0A%20tables.basic%0A%20%20rowDisplayLimit%20200%0Adoc.categories%20chemistry Discovery of the Elements If you click that link you should see a few data visualizations generated from that program. Edit the source and the link will update accordingly. Scroll handles the `encodeURIComponent`. * Why not use HTML directly? ========================== Modern browsers do their best to make URLs well-formed and you will notice that they auto encode certain characters like spaces. But by the HTML spec newlines are not a URL code point and generally are stripped and collapsed. https://url.spec.whatwg.org/#url-code-points URL code point https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace stripped and collapsed Program Links in Scroll handle encoding newlines and any other special characters so you can focus on your content and not the encoding. Built with Scroll v165.3.0 05/08/2023 510 2.5 Counterpoints: A new tool for thought in the Scroll Language -Counterpoints: A new tool for thought in the Scroll Language ============================================================ by Breck Yunits https://twitter.com/breckyunits Breck Yunits April 13, 2023 Improve your writing by welcoming counterarguments ================================================== April 13, 2023 There's a tiny new symbol in Scroll today: `!`. https://scroll.pub/ Scroll The exclamation mark stands for *Counterpoint*. "Counters" aim to help writers strengthen their ideas by encouraging the integration of counterarguments throughout their essays. You can write your own counters or invite counters from friends, LLMs or Internet commenters. * Counterpoints are easy to use: just start a line with `!`. For example: ``` Humans will eventually establish colonies on Mars. ! But we haven't colonized the Arctic, 1,000x easier ``` You can go as deep as you want in countering your own counters! ``` Humans will eventually establish colonies on Mars. ! But we haven't colonized the Arctic, 1,000x easier - Colonizing Mars is 10,000x more valuable ``` * The Benefits of Countering ========================== When we have a lot of terms for a thing, it's usually a hint that it's a valuable thing. And we have a lot of terms for countering. To name a few: - "Steel manning" - "red teaming" - "playing devil's advocate" Countering is a helpful habit that helps clarify your thoughts, understand and empathize with other perspectives, fix logical blunders, hone your pitch, and improve at truth-seeking. Counterpoints in Scroll are in a sense just a reminder to frequently use these techniques. * The Downsides of Countering =========================== Addressing every plausible counter in your main thread can be difficult if not impossible. It can make your writing too verbose and lose reader interest. Counters in Scroll give you a place to record every scattered counter as it comes to you. You can then choose which are important enough to address in your main argument and relegate the rest to the source code (for the very avid reader). * Implementation ============== Counterpoints do not currently appear in the compiled HTML. Instead you only see them during write time. For now, they are just an alternate syntax for comments. But though they perform no new function, like traffic lines, sometimes form is function. That being said, there are potentially interesting directions this could go in the future, and it would be interesting to hear ideas of what people would like in a v2. * Keep writing, keep thinking! ⁂ Built with Scroll v165.2.0 +Counterpoints: A new tool for thought in the Scroll Language ============================================================ by Breck Yunits https://twitter.com/breckyunits Breck Yunits April 13, 2023 Improve your writing by welcoming counterarguments ================================================== April 13, 2023 There's a tiny new symbol in Scroll today: `!`. https://scroll.pub/ Scroll The exclamation mark stands for *Counterpoint*. "Counters" aim to help writers strengthen their ideas by encouraging the integration of counterarguments throughout their essays. You can write your own counters or invite counters from friends, LLMs or Internet commenters. * Counterpoints are easy to use: just start a line with `!`. For example: ``` Humans will eventually establish colonies on Mars. ! But we haven't colonized the Arctic, 1,000x easier ``` You can go as deep as you want in countering your own counters! ``` Humans will eventually establish colonies on Mars. ! But we haven't colonized the Arctic, 1,000x easier - Colonizing Mars is 10,000x more valuable ``` * The Benefits of Countering ========================== When we have a lot of terms for a thing, it's usually a hint that it's a valuable thing. And we have a lot of terms for countering. To name a few: - "Steel manning" - "red teaming" - "playing devil's advocate" Countering is a helpful habit that helps clarify your thoughts, understand and empathize with other perspectives, fix logical blunders, hone your pitch, and improve at truth-seeking. Counterpoints in Scroll are in a sense just a reminder to frequently use these techniques. * The Downsides of Countering =========================== Addressing every plausible counter in your main thread can be difficult if not impossible. It can make your writing too verbose and lose reader interest. Counters in Scroll give you a place to record every scattered counter as it comes to you. You can then choose which are important enough to address in your main argument and relegate the rest to the source code (for the very avid reader). * Implementation ============== Counterpoints do not currently appear in the compiled HTML. Instead you only see them during write time. For now, they are just an alternate syntax for comments. But though they perform no new function, like traffic lines, sometimes form is function. That being said, there are potentially interesting directions this could go in the future, and it would be interesting to hear ideas of what people would like in a v2. * Keep writing, keep thinking! ⁂ Built with Scroll v165.3.0 04/13/2023 391 2 Introducing the Blink Tag -Introducing the Blink Tag ========================= by Breck Yunits https://github.com/breck7 Breck Yunits October 2, 2022 October 2, 2022 *Scroll's new blink tag lets you call attention to something important* I am really happy with the current state of Scroll and so grateful for the many people who have helped us get it to this point. That being said, I had a feeling we were missing something important. * *So I invented something simple and completely novel* Introducing the `blink` tag. When you have something important to say and you want to interupt people's lives, use the `blink` tag. It's as easy as this: ``` blink This blinks ``` Advertisers have known for ages that human eyes evolved to respond fast to motion. Now, using my new invention, the `blink` tag, you can bring this innovation from advertising to your products and websites. *The blink tag, available now in Scroll 34.1.0* https://scroll.pub/ Scroll 34.1.0 _Note: please don't use this. It's a joke_ Built with Scroll v165.2.0 +Introducing the Blink Tag ========================= by Breck Yunits https://github.com/breck7 Breck Yunits October 2, 2022 October 2, 2022 *Scroll's new blink tag lets you call attention to something important* I am really happy with the current state of Scroll and so grateful for the many people who have helped us get it to this point. That being said, I had a feeling we were missing something important. * *So I invented something simple and completely novel* Introducing the `blink` tag. When you have something important to say and you want to interupt people's lives, use the `blink` tag. It's as easy as this: ``` blink This blinks ``` Advertisers have known for ages that human eyes evolved to respond fast to motion. Now, using my new invention, the `blink` tag, you can bring this innovation from advertising to your products and websites. *The blink tag, available now in Scroll 34.1.0* https://scroll.pub/ Scroll 34.1.0 _Note: please don't use this. It's a joke_ Built with Scroll v165.3.0 10/02/2022 176 0.9 The Power of Indented Heredocs: Markdown, Textile, and BBCode in one file with no escaping -The Power of Indented Heredocs: Markdown, Textile, and BBCode in one file with no escaping ========================================================================================== by Breck Yunits https://github.com/breck7 Breck Yunits August 23, 2021 Scroll is a new language and static site generator that is mostly written in Parsers which are both built on a new syntax called Particles. * In this demo, I extend Scroll by adding support for Markdown, Textile, and BBCode. I want to demonstrate how easy it is to compose many languages into one using Particles, which is due to what you might call the Indented or Off-side Heredoc pattern. https://en.wikipedia.org/wiki/Markdown Markdown https://en.wikipedia.org/wiki/Textile_(markup_language) Textile https://en.wikipedia.org/wiki/BBCode BBCode My implementation is still _researchy_—Parsers still needs a lot of work—but my main point here is to demo how _simple and powerful indented heredocs are_. They allow you to compose unlimited languages in one file in a clean and scalable way. You don't need escaping. I think this is a very helpful pattern you can use in your own languages and code. Traditional Heredocs ==================== Traditional heredocs use start and end delimiters, like these examples from Ruby and Python and Markdown: ``` # Heredoc in Ruby puts Particles is that it is just indented or off-side HereDocs. Or in colloquial academic speak _The Off-Side Rule is all you need_. Most people learn of the off-side rule via Python. Imagine if your whole language was just the off-side rule. That's basically Particles. But my code is not the important thing—the important thing is this pattern. Try it yourself—I bet you will love it. https://en.wikipedia.org/wiki/Off-side_rule Off-Side Rule https://en.wikipedia.org/wiki/Here_document HereDocs Extended Examples ================= Markdown ======== Textile ======= BBCode ====== Built with Scroll v165.2.0 +The Power of Indented Heredocs: Markdown, Textile, and BBCode in one file with no escaping ========================================================================================== by Breck Yunits https://github.com/breck7 Breck Yunits August 23, 2021 Scroll is a new language and static site generator that is mostly written in Parsers which are both built on a new syntax called Particles. * In this demo, I extend Scroll by adding support for Markdown, Textile, and BBCode. I want to demonstrate how easy it is to compose many languages into one using Particles, which is due to what you might call the Indented or Off-side Heredoc pattern. https://en.wikipedia.org/wiki/Markdown Markdown https://en.wikipedia.org/wiki/Textile_(markup_language) Textile https://en.wikipedia.org/wiki/BBCode BBCode My implementation is still _researchy_—Parsers still needs a lot of work—but my main point here is to demo how _simple and powerful indented heredocs are_. They allow you to compose unlimited languages in one file in a clean and scalable way. You don't need escaping. I think this is a very helpful pattern you can use in your own languages and code. Traditional Heredocs ==================== Traditional heredocs use start and end delimiters, like these examples from Ruby and Python and Markdown: ``` # Heredoc in Ruby puts Particles is that it is just indented or off-side HereDocs. Or in colloquial academic speak _The Off-Side Rule is all you need_. Most people learn of the off-side rule via Python. Imagine if your whole language was just the off-side rule. That's basically Particles. But my code is not the important thing—the important thing is this pattern. Try it yourself—I bet you will love it. https://en.wikipedia.org/wiki/Off-side_rule Off-Side Rule https://en.wikipedia.org/wiki/Here_document HereDocs Extended Examples ================= Markdown ======== Textile ======= BBCode ====== Built with Scroll v165.3.0 08/23/2021 306 1.5 @@ -187,7 +187,7 @@ - + \ No newline at end of file diff --git a/blog/search.txt b/blog/search.txt index f8ec75fde..ab78400e2 100644 --- a/blog/search.txt +++ b/blog/search.txt @@ -2,25 +2,25 @@ Search the Official Scroll Blog =============================== title,titleLink,text,date,wordCount,minutes -Data Science with Scroll,dataScience.html,"Data Science with Scroll ======================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits January 6, 2025 A Tutorial ========== This tutorial will walk you through how to use Scroll for data analysis and visualization, from basic concepts to advanced techniques. What makes Scroll great for data science? ========================================= Scroll combines the simplicity of markdown-style syntax with powerful data transformation and visualization capabilities. You can: - Load data from various sources (CSV, JSON, etc.) - Transform and analyze data with simple commands - Create beautiful visualizations - Publish instantly using ScrollHub https://hub.scroll.pub/ ScrollHub - All in a simple, readable format Let's dive in! --- Part 1: Getting Started with Data ================================= Loading Sample Datasets ======================= Scroll comes with several sample datasets. Let's start with the famous iris dataset: sepal_length,sepal_width,petal_length,petal_width,species 6.1,3,4.9,1.8,virginica 5.6,2.7,4.2,1.3,versicolor 5.6,2.8,4.9,2,virginica 6.2,2.8,4.8,1.8,virginica 7.7,3.8,6.7,2.2,virginica 5.3,3.7,1.5,0.2,setosa 6.2,3.4,5.4,2.3,virginica 4.9,2.5,4.5,1.7,virginica 5.1,3.5,1.4,0.2,setosa 5,3.4,1.5,0.2,setosa You can also load datasets from Vega's collection: zip_code,latitude,longitude,city,state,county 501,40.922326,-72.637078,Holtsville,NY,Suffolk 544,40.922326,-72.637078,Holtsville,NY,Suffolk 601,18.165273,-66.722583,Adjuntas,PR,Adjuntas 602,18.393103,-67.180953,Aguada,PR,Aguada 603,18.455913,-67.14578,Aguadilla,PR,Aguadilla Basic Data Operations ===================== Let's explore some basic operations on the iris dataset: name,type,incompleteCount,uniqueCount,count,sum,median,mean,min,max,mode sepal_length,number,0,8,10,57.699999999999996,5.6,5.77,4.9,7.7,5.6 sepal_width,number,0,8,10,31.599999999999998,3.2,3.1599999999999997,2.5,3.8,2.8 petal_length,number,0,8,10,39.8,4.65,3.9799999999999995,1.4,6.7,4.9 petal_width,number,0,7,10,13.699999999999996,1.75,1.3699999999999997,0.2,2.3,0.2 species,string,0,3,10,null,null,,null,null,virginica This gives us summary statistics for each column. Let's look at filtering: sepal_length,sepal_width,petal_length,petal_width,species 5.3,3.7,1.5,0.2,setosa 5.1,3.5,1.4,0.2,setosa 5,3.4,1.5,0.2,setosa --- Part 2: Data Visualization ========================== Basic Plots =========== Let's start with a simple scatterplot of the iris data: Line Charts =========== Let's look at some time series data: Bar Charts ========== Let's create a bar chart showing precipitation: --- Part 3: Advanced Data Transformations ===================================== Grouping and Aggregation ======================== Let's look at some more complex transformations: weather,count,avg_max_temp,avg_min_temp drizzle,129,18.555813953488368,10.143410852713178 rain,459,15.535294117647041,9.04727668845315 sun,1674,18.064157706093184,8.87275985663083 snow,78,4.528205128205127,-1.4346153846153844 fog,582,15.261855670103111,8.527319587628869 Creating New Columns ==================== Let's add some computed columns: sepal_length,sepal_width,petal_length,petal_width,species,ratio 6.1,3,4.9,1.8,virginica,2.033333333333333 5.6,2.7,4.2,1.3,versicolor,2.074074074074074 6.2,2.8,4.8,1.8,virginica,2.2142857142857144 7.7,3.8,6.7,2.2,virginica,2.0263157894736845 --- Part 4: Advanced Visualizations =============================== Heatmaps ======== Let's create a heatmap of annual precipitation values: Multiple Views ============== You can create multiple visualizations: --- Conclusion ========== This tutorial covered the basics of data science with Scroll. Some key takeaways: - Scroll makes it easy to load and manipulate data - Visualizations are simple to create and customize - Complex transformations can be done with simple commands - Everything is readable and version-controllable ⁂ Built with Scroll v165.2.0 ",01/06/2025,632,3.2 -Scroll in 50 Questions,scrollInQuestions.html,"Scroll in 50 Questions ====================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits October 28, 2024 What is Scroll? =============== Scroll is a language for those who believe that what they cannot build with as few pieces as possible they do not understand. What is Scroll? =============== Scroll is a symbolic language. What is a symbolic language. ============================ A language you write with symbols. What is a symbol? ================= A symbol is a mark repeated to correlate to a pattern in nature. What is a mark? =============== A mark is a discoloration of a surface. What is a symbolic language? ============================ A symbolic language is a collection of symbols and symbol sequences that can be used to trigger the same electrical phenomena in the brain of an observer that seeing that pattern occur in nature would trigger. How do I use a symbolic language? ================================= By writing documents. What is a document? =================== It is a collection of marks on a surface. What is Particle Syntax? ======================== It is the syntax that Scroll uses. What is a syntax? ================= It is a set of rules for how to break up a document into symbols. What is a digital document? =========================== It is a file. What is a file? =============== It is a digital representation of a document as a series of bits. What is a bit? ============== A bit is a persistent location in space that has 2 states: a 1 or 0; a true or false; an on or off; a black or white; a hot or cold; a high or low. What is a character? ==================== A character is a 2D mark that maps to a unique fixed length bit sequence. What is a character encoding? ============================= A map of bit sequences to characters. What character encoding does Scroll use? ======================================== UTF8. For now. What is a word? =============== A word is a list of characters delimited by a word delimiter sequence. What is an atom? ================ An atom is another word for word in the Scroll language. What is a line? =============== A line is a sequence of atoms in the Scroll language delimited by a newline sequence. What is a Particle? =================== A particle in Scroll refers to an object that contains both atoms and a collection of particles referred to as the particle's subparticles. Are all particles also subparticles of a higher particle? ========================================================= Yes. What is a Parser? ================= A Parser is a particle that consumes certain other particles to perform transformations. What transformations can a Parser perform? ========================================== A Parser can perform a variety of transformations but the most common are to: - compile one particle in one language to another language. - format a particle into a standardized format - check a particle for errors - evalute the instructions in a particle and return the results - execute commands contained in the particle What is the syntax of Scroll? ============================= The syntax of Scrolls is Particle Syntax, or just Particles for short. What does Particle Syntax do? ============================= Partilces tells you how to divide a binary sequence into parts. What are the components of Particle Syntax? =========================================== - A sequence of binary bits is converted into characters using UTF8 - Atoms are sequences of characters separated by a single space. - Particles are a sequence of atoms separated by a newline. - Subparticles are indicated by a single indented space. How do I make a subparticle? ============================ - Just indent a particle by 1 space more than its parent particle. - For example, because I started this line with one space more than the line above, this line is a subparticle of that line. - And then this line, starting with 2 spaces, is a subparticle of the line above it. - But this line is a subparticle of the line above that starts with ""Just"" Can I use the Particles, Parsers, and Scroll concepts to design 2D or 3D languages that don't use computers at all? =================================================================================================================== Yes. But generally when we talk about PPS we are talking about the form designed for binary and computers. What is Parsers? ================ Parsers is a symbolic language where one defines Particles that can consume other Particles. It is a language for making other languages. What is Scroll? =============== Scroll is a language made out of Parsers. What is the purpose of the Parsers language? ============================================ The purpose of the Parsers Language is to make Scroll. What is the purpose of Scroll? ============================== The purpose of Scroll is to help humans communicate with humans and machines. How does one use Scroll to communicate? ======================================= By writing Scroll documents (aka Scroll Programs) to create things. What kinds of things is Scroll currently best at creating? ========================================================== Knowledge bases, blogs, websites, web pages, charts, animations, data science reports, ebooks, web forms, maps, that sort of thing. Why use Scroll and not just write HTML directly? ================================================ Scroll helps you better understand what you are writing about and anything HTML can make Scroll can make in fewer symbols. Scroll is a language for those who believe that what they cannot build with as few pieces as possible they do not understand. What is ScrollHub? ================== ScrollHub is a super server for creating and publishing websites instantly using Scroll. What is a cue? ============== Cue refers to the first atom in a particle. What is the significance of the cue? ==================================== When communicating you want to communicate the most important information first, so the cue is often the most important information. What is the cue used for? ========================= Most parsers use the cue to determine whether they should consume a particle or not. Can parsers use other ways to match against particles? ====================================================== Yes. What's another commmon way for parsers to match particles? ========================================================== Regular expressions. Can I build Scroll using only Particles and Parsers and no other languages? =========================================================================== Currently no. Parsers does not have enough functionality yet to be able to write parsers that provide everything Scroll needs. What other language do I currently need? ======================================== The primary implementation of Parsers currently is half Parsers, half Javascript. How does Parsers parse Scroll? ============================== The Parsers program is parsed and compiled by a Javascript implementation of Parsers which generates a Parser and compiler for Scroll programs. Do I need to master Javascript to use Parsers? ============================================== If you've mastered Javascript then using Parsers should be easy once you get the hang of it. Does Parsers have inheritance? ============================== Yes. Does Particle Syntax have types? ================================ No. Does Parsers have types? ======================== Yes. Parsers has atom types. Is Scroll like Lisp? ==================== Scroll and Parsers implement many of the best ideas from Lisp, and leave out a lot of unnecessary things (like the parens). Is Scroll designed for humans or AIs? ===================================== Both. ⁂ Built with Scroll v165.2.0 ",10/28/2024,1082,5.4 -Web Forms for Geniuses,forms.html,"Web Forms for Geniuses ====================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits October 1, 2024 If you want to make web forms the inefficient way, there are many other places to read how to do that. If you want to learn how geniuses are doing web forms, read on. * One Field at a Time is Retarded =============================== Building forms for one-field-at-a-time data entry is inefficient. People can't copy/paste your forms. E-receipts are a pain. Auto-form fill works poorly. It's a huge waste of your users' time that retards them and your business. And it will always be this way. Entire Form in One Field is Genius ================================== Everything becomes radically simpler. People can do things like copy/paste entire applications; email them; version control them; collaborate on them; all effortlessly. And guess what? You can still also compile to a one-field-at-a-time HTML form and allow users to swap back and forth! It's pure win, no loss. You can use this TODAY! ======================= This now ships in Scroll. Here is a test form. You can also see it in use in many of our products. https://scroll.pub/blog/../tests/forms.html a test form Because this is new technology, it is not for those that need spoon feeding. Believe it or not, making web forms also used to be complicated. (If you need this urgently, don't have time to figure it out yourself, and need to hire professional consulting, feel free to get in touch.) Don't whine. Build. =================== I'm tired of reading all the whiners commenting about how our CSS doesn't look so pretty yet, or the tiny little feature you need that isn't supported. I don't care much to hear from whining losers. I want to hear from winners. From builders. From those who strive for genius. Beautiful designs, autoincrement, auto timestamp, joins, decision trees, all that stuff is coming. The world is gonna love this. If you are a winner, a builder, a genius, join us on GitHub or Reddit. https://github.com/breck7/scroll GitHub https://www.reddit.com/r/WorldWideScroll/ Reddit ⁂ Built with Scroll v165.2.0 ",10/01/2024,369,1.8 -The Successor to RSS is Git Clone,gitOverRss.html,"The Successor to RSS is Git Clone ================================= by Breck Yunits https://twitter.com/breckyunits Breck Yunits September 2, 2024 Today on HackerNews Kevin Damm had a great idea: put a `<link>` tag on blogs to point to the git Source Code Repository, much as blogs today have `<link>` tags pointing to their RSS feeds. https://news.ycombinator.com/item?id=41427044 great idea I've added this feature to Scroll and it's live now. If you View Source of this page, you'll see: https://scroll.pub/blog/../index.html Scroll ``` ``` Client applications can start looking for and taking advantage of these tags. * RSS was great, but it's no match for Git Clone ============================================== Git clone solves a million problems. You get a copy of the entire works of your favorite authors that is blazing fast, works offline, is searchable, transformable, censorship resistant, auditable, more trustworthy, ad free, tracker free, et cetera. There is no comparison to the old ways of doing things. * What do you think? ================== Have you already been doing this? Are there ways we can make it better? Would love to hear your feedback! ⁂ Notes ===== vladimyr on bluesky dug up a couple of cool examples of prior art. https://bsky.app/profile/vladimyr.bsky.social/post/3l3anievhnm2t vladimyr on bluesky Built with Scroll v165.2.0 ",09/02/2024,224,1.1 -A New Way to Program,teddyTalk.html,"A New Way to Program ==================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits August 30, 2024 Particles, Scroll, and the Parsers Programming Language ======================================================= I've recorded a short video (1 minute version; 10 minute version) about our recent work which has begun to eat the software world. https://www.youtube.com/watch?v=tpJY7PUmBIU 1 minute version https://www.youtube.com/embed/YcnWSNGEHvI?si=p_vOxpt9lusNKgli&t=75s 10 minute version * Outline ======= 1. Is this stuff relevant to you? ================================= Whether you are an experienced, aspiring, or casual programmer, yes. If you are a writer, yes. If you are a thinker, yes. If you are a builder, yes. If you choose to always remain illiterate to keep your brain different than the crowd, then no. (I applaud your brave creative choice and as a scientist I'm curious to see what happens!) 2. What is Particle Syntax (Particles)? ======================================= One liner: a syntax-free syntax for splitting files into particles (separated by line breaks) which can have atoms (separated by spaces) and subparticles (indented lines). Vibe https://particles.scroll.pub Vibe Playground https://sdk.scroll.pub/sandbox/ Playground LeetSheet https://scroll.pub/particlesLeetsheet.html LeetSheet [Image Omitted] width 400 Each line is a particle. Each dot is a atom. Particles lets you easily compare programs and see which one is simpler (less heavy!). 3. What is Scroll? ================== One liner: Scroll is a language for scientists of all ages where you write and combine particles (written in Particles) to evolve and publish your most intelligence ideas to HTML, PDFs, CSVs, JSON files, movie files, audio files, slideshows, charts, books, et cetera. Vibe https://scroll.pub/blog/index.html Vibe Playground https://try.scroll.pub/ Playground LeetSheet https://scroll.pub/leetsheet.html LeetSheet [Image Omitted] width 400 Scroll is a collection of Parsers that allow you to evolve and publish your most intelligent ideas. 4. What is Parsers? =================== One liner: Parsers is a programming language where programmers write parsers (written in Particles) which consume particles (written in Particles) and also contain logic for translating those particles into actions on computing machines. Vibe https://github.com/breck7/scroll/tree/main/parsers Vibe Playground https://sdk.scroll.pub/designer#url%20https%3A%2F%2Fscroll.pub%2Fscroll.parsers Playground LeetSheet https://scroll.pub/parserLeetsheet.html LeetSheet [Image Omitted] width 400 Programmers who understand how computing machines work write Parsers to translate particles into executable machine code. 5. How do you get started? ========================== ScrollHub http://hub.scroll.pub/ ScrollHub Subreddit https://www.reddit.com/r/WorldWideScroll/ Subreddit ⁂ Built with Scroll v165.2.0 ",08/30/2024,425,2.1 -Tables: a microlang for data science,tables.html,"Tables: a microlang for data science ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits August 9, 2024 Tables, aka spreadsheets, are arguably the most important _visual_ thought tool. But no one has designed the perfect _textual_ language for manipulating them. Until now. Say hello to Tables =================== Try now https://try.scroll.pub/#scroll%0A%20theme%20gazette%0A%20%0A%20expander%20Presidents%0A%20https%3A%2F%2Fohayo.breckyunits.com%2Fohayo%2Fpackages%2Fsamples%2Fpresidents.csv%0A%20%20groupBy%20Party%0A%20%20%20orderBy%20-count%0A%20%20%20%20printTable%0A%20%20scatterplot%0A%20%20%20x%20number%0A%20%20%20y%20Party%0A%20%20%20fill%20Party%0A%20%0A%20expander%20Elements%0A%20https%3A%2F%2Fohayo.breckyunits.com%2Fohayo%2Fpackages%2Fsamples%2Fperiodic-table.csv%0A%20%20scatterplot%0A%20%20%20x%20Year%0A%20%20%20y%20AtomicNumber%0A%20%20%20fill%20Radioactive%0A%20%20%20symbol%20Metal%0A%20%0A%20%2F%2F%20expander%20Inline%20Data%0A%20table%0A%20%20scatterplot%0A%20%20%20title%20Top%2050%20programming%20language%20projects%20on%20GitHub.%0A%20%20%20x%20appeared%0A%20%20%20y%20rank%0A%20%20%20radius%20githubStars%0A%20%20%20label%20name%0A%20%20orderBy%20appeared%0A%20%20%20sparkline%0A%20%20%20%20y%20githubStars%0A%20%20%20%20color%20green%0A%20%20%20select%20name%20githubStars%0A%20%20%20%20heatrix%0A%20%20data%0A%20%20%20rank%2Cname%2Cappeared%2CgithubStars%0A%20%20%203%2CPython%2C1991%2C61378%0A%20%20%204%2CJava%2C1995%2C19037%0A%20%20%208%2CPerl%2C1987%2C1886%0A%20%20%209%2CRuby%2C1995%2C21790%0A%20%20%2010%2CPHP%2C1995%2C37688%0A%20%20%2013%2CGo%2C2009%2C121611%0A%20%20%2014%2CTypeScript%2C2012%2C99410%0A%20%20%2018%2CPowerShell%2C2006%2C44220%0A%20%20%2020%2CRust%2C2010%2C95455%0A%20%20%2021%2CSwift%2C2014%2C67064%0A%20%20%2025%2CKotlin%2C2011%2C48462%0A%20%20%2027%2CClojure%2C2007%2C10392%0A%20%20%2028%2CCoffeeScript%2C2009%2C16466%0A%20%20%2029%2CElixir%2C2011%2C24093%0A%20%20%2030%2CErlang%2C1986%2C11203%0A%20%20%2034%2CJulia%2C2012%2C45137%0A%20%20%2041%2CRacket%2C1994%2C4741%0A%20%20%2042%2CSolidity%2C2014%2C22794%0A%20%20%2043%2CWebAssembly%2C2015%2C6621%0A%20%20%2045%2CZig%2C2015%2C32864%0A%20%20%2047%2CNim%2C2008%2C16308%0A%20%20%2050%2CTOML%2C2013%2C19332 Try now ⁂ Acknowledgements ================ Tables evolved over the past decade primarily by: - just doing what Hadley Wickham did in dplyr https://dplyr.tidyverse.org/ dplyr https://hadley.nz/ Hadley Wickham - using Mike Bostock's d3 under the hood https://bost.ocks.org/mike/ Mike Bostock https://d3js.org/ d3 - reading all of Jeffrey Heer's papers https://homes.cs.washington.edu/~jheer/ Jeffrey Heer - thinking about what would be the best tool for Max Roser and Hannah Ritchie. https://ourworldindata.org/ Max Roser and Hannah Ritchie Built with Scroll v165.2.0 ",08/09/2024,479,2.4 -Build Your Own Counters With 3 Words,counters.html,"Build Your Own Counters With 3 Words ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits August 2, 2024 August 2, 2024 I like collections of interesting numbers, such as BioNumbers. Animated counters provide a useful perspective when pondering large numbers. I wanted to make it as easy as possible for anyone to create these counters. https://bionumbers.hms.harvard.edu/Search.aspx?task=searchbypop BioNumbers So, today I added a new parser to Scroll: *counter*. ``` counter 1.1 Heartbeats ``` * Try now https://try.scroll.pub/#scroll%0A%20theme%20gazette%0A%20%0A%20%23%20Show%20HN%3A%20Make%20a%20counter%20with%203%20words%0A%20%0A%20New%20in%20Scroll%20v112.1.0.%20Read%20more.%0A%20%20https%3A%2F%2Fscroll.pub%2Fblog%2Fcounters.html%20Read%20more.%0A%20%0A%20code%0A%20%20counter%20%5BRate%2FSecond%5D%20%5BDescription%5D%0A%20%0A%20%23%20Since%20you%20loaded%20this%20page...%0A%20%0A%20thinColumns%0A%20%0A%20%23%23%20World%20Population%0A%20counter%204.5%20Babies%20Born%0A%20%20https%3A%2F%2Fourworldindata.org%2Fbirths-and-deaths%0A%20counter%201.7%20Human%20Deaths%0A%20%20https%3A%2F%2Fourworldindata.org%2Fbirths-and-deaths%0A%20counter%208123456789%20heart%20beats%0A%20%20https%3A%2F%2Fourworldindata.org%2Fgrapher%2Fpopulation%0A%20%0A%20%23%23%20In%20Your%20Body%0A%20counter%203112123%20Red%20Blood%20Cells%20Made%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fbooks%2FNBK2263%2F%0A%20counter%203812123%20Cells%20Made%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fbooks%2FNBK2263%2F%0A%20counter%202123456789123456789123%20ATP%20molecules%20made%0A%20%20https%3A%2F%2Fbio.libretexts.org%2FBookshelves%2FHuman_Biology%2FHuman_Biology_(Wakim_and_Grewal)%2F05%253A_Cells%2F5.09%253A_Cellular_Respiration%0A%20%0A%20%23%23%20In%20Your%20Brain%0A%20counter%201.2e12%20Action%20Potentials%20Fired%0A%20%20https%3A%2F%2Fwww.khanacademy.org%2Ftest-prep%2Fmcat%2Forgan-systems%2Fneural-synapses%2Fa%2Fsignal-propagation-the-movement-of-signals-between-neurons%0A%20counter%203.64e18%20Ketones%20Consumed%20(Ketosis)%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fpmc%2Farticles%2FPMC7699472%2F%0A%20counter%204.64e18%20Glucose%20Molecules%20Consumed%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fpmc%2Farticles%2FPMC3900881%2F%0A%20%0A%20%23%23%20World%20Economy%0A%20counter%202.5%20Cars%20Made%0A%20%20https%3A%2F%2Fwww.statista.com%2Fstatistics%2F262747%2Fworldwide-automobile-production-since-2000%2F%0A%20counter%2026012%20Cups%20of%20Coffee%20Consumed%0A%20%20https%3A%2F%2Fwww.rgare.com%2Fknowledge-center%2Farticle%2Fcoffee-consumption-how-much-is-too-much-and-how-little-is-not-enough%0A%20counter%2059321%20YouTubes%20Watched%0A%20%20https%3A%2F%2Fthesocialshepherd.com%2Fblog%2Fyoutube-statistics%0A%20%0A%20%23%23%20Flight%0A%20counter%200.00008%20Objects%20Launched%20into%20Space%0A%20%20https%3A%2F%2Fourworldindata.org%2Fgrapher%2Fyearly-number-of-objects-launched-into-outer-space%0A%20counter%200.00004%20Planes%20Built%0A%20%20https%3A%2F%2Fwww.ibisworld.com%2Fglobal%2Fmarket-research-reports%2Fglobal-commercial-aircraft-manufacturing-industry%2F%0A%20counter%201.17%20Planes%20Landed%0A%20%20https%3A%2F%2Fwww.faa.gov%2Fair_traffic%2Fby_the_numbers%0A%20%0A%20%23%23%20Animals%0A%20counter%200.00004%20Blue%20Whales%20Born%0A%20%20https%3A%2F%2Fwww.marinemammalcenter.org%2Fanimal-care%2Flearn-about-marine-mammals%2Fcetaceans%2Fblue-whale%0A%20counter%200.001%20Elephants%20Born%0A%20%20https%3A%2F%2Felephantconservation.org%2Fabout-elephants%2F25-things-to-know%2F%0A%20counter%203.1e10%20Ants%20Born%0A%20%20https%3A%2F%2Fprivateexterminator.com%2Fare-all-the-ants-as-heavy-as-all-the-humans%0A%20 Try now =================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== * Since you loaded this page... ============================= World Population ================ 4.5 Babies Born https://ourworldindata.org/births-and-deaths 4.5 Babies Born 1.7 Human Deaths https://ourworldindata.org/births-and-deaths 1.7 Human Deaths 8123456789 heart beats https://ourworldindata.org/grapher/population 8123456789 heart beats In Your Body ============ 3112123 Red Blood Cells Made https://www.ncbi.nlm.nih.gov/books/NBK2263/ 3112123 Red Blood Cells Made 3812123 Cells Made https://www.ncbi.nlm.nih.gov/books/NBK2263/ 3812123 Cells Made 2123456789123456789123 ATP molecules made https://bio.libretexts.org/Bookshelves/Human_Biology/Human_Biology_(Wakim_and_Grewal)/05%3A_Cells/5.09%3A_Cellular_Respiration 2123456789123456789123 ATP molecules made In Your Brain ============= 1.2e12 Action Potentials Fired https://www.khanacademy.org/test-prep/mcat/organ-systems/neural-synapses/a/signal-propagation-the-movement-of-signals-between-neurons 1.2e12 Action Potentials Fired 3.64e18 Ketones Consumed (Ketosis) https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7699472/ 3.64e18 Ketones Consumed (Ketosis) 4.64e18 Glucose Molecules Consumed https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3900881/ 4.64e18 Glucose Molecules Consumed World Economy ============= 2.5 Cars Made https://www.statista.com/statistics/262747/worldwide-automobile-production-since-2000/ 2.5 Cars Made 26012 Cups of Coffee Consumed https://www.rgare.com/knowledge-center/article/coffee-consumption-how-much-is-too-much-and-how-little-is-not-enough 26012 Cups of Coffee Consumed 59321 YouTubes Watched https://thesocialshepherd.com/blog/youtube-statistics 59321 YouTubes Watched Flight ====== 0.00008 Objects Launched into Space https://ourworldindata.org/grapher/yearly-number-of-objects-launched-into-outer-space 0.00008 Objects Launched into Space 0.00004 Planes Built https://www.ibisworld.com/global/market-research-reports/global-commercial-aircraft-manufacturing-industry/ 0.00004 Planes Built 1.17 Planes Landed https://www.faa.gov/air_traffic/by_the_numbers 1.17 Planes Landed Animals ======= 0.00004 Blue Whales Born https://www.marinemammalcenter.org/animal-care/learn-about-marine-mammals/cetaceans/blue-whale 0.00004 Blue Whales Born 0.001 Elephants Born https://elephantconservation.org/about-elephants/25-things-to-know/ 0.001 Elephants Born 3.1e10 Ants Born https://privateexterminator.com/are-all-the-ants-as-heavy-as-all-the-humans 3.1e10 Ants Born Computer Chips ============== 66.7 CPUS made by Intel https://www.intel.com/content/www/us/en/architecture-and-technology/global-manufacturing.html 66.7 CPUS made by Intel 6234556543 Transistors made by Nvidia https://nvidianews.nvidia.com/news/nvidia-announces-hopper-architecture-the-next-generation-of-accelerated-computing 6234556543 Transistors made by Nvidia 61234556543 Transistors made by Intel https://www.intel.com/content/www/us/en/history/museum-transistors-to-transformations-brochure.html 61234556543 Transistors made by Intel ⁂ Built with Scroll v165.2.0 ",08/02/2024,1029,5.1 -Heatrix: Heat Maps + Matrix Visualizations,heatrix.html,"Heatrix: Heat Maps + Matrix Visualizations ========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 28, 2024 [Image Omitted] A heatrix on CancerDB. https://cancerdb.com/blog/cancer-heatmaps.html A heatrix on CancerDB. July 28, 2024 Do you love those GitHub Activity Charts and want to make your own but don't know what they are called or what library to use and your work is busy and you have kids and sorry I'll call you back someone is crying? Introducing Scroll's newest parser: `heatrix`! https://scroll.pub/blog/../index.html Scroll's Try Now | Watch Video https://try.scroll.pub/#scroll%0A%20%23%20Heatrix%20Demos%0A%20%0A%20%23%23%20Adjust%20the%20height%2Fwidth%20of%20individual%20cells%2C%20columns%2C%20or%20rows%3A%0A%20heatrix%0A%20%20h20%3BScroll%20h20%3BPLDB%0A%20%20400%20700%0A%20%0A%20%23%23%20Add%20links%3A%0A%20heatrix%0A%20%20h20%3BScroll%3Bhttps%3A%2F%2Fscroll.pub%20h20%3BPLDB%3Bhttps%3A%2F%2Fpldb.io%0A%20%20400%20700%0A%20%0A%20%23%23%20Use%20numbers%20as%20labels%3A%0A%20heatrix%0A%20%20'2021%20'2017%0A%20%20400%20700%0A%20%0A%20%23%23%20Use%20your%20own%20custom%20color%20palettes%20and%20set%20your%20own%20thresholds%3A%0A%20heatrixAdvanced%0A%20%20table%0A%20%20%20%20%0A%20%20%20h10%3Bw30%20'2015%20'2016%20'2017%20'2018%20'2019%20'2020%20'2021%20'2022%20'2023%20'2024%0A%20%20%20h30%3Bw30%3B%200%200%205%201%202%2011%2015%2010%2012%2056%0A%20%20scale%0A%20%20%20%23ffebee%200%0A%20%20%20%23ffcdd2%201%0A%20%20%20%23ef9a9a%205%0A%20%20%20%23e57373%2010%0A%20%20%20%23ef5350%2025%0A%20%20%20%23b71c1c%2050 Try Now https://www.youtube.com/watch?v=ycF3k63qn1Y Watch Video ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= `heatrix` let's you craft custom heatmap visualizations with the fewest keystrokes possible. Heat Map + Matrix = Heatrix =========================== [Image Omitted] Source code. Gif made with CleanShotX. https://try.scroll.pub/#scroll%0A%20heatrix%0A%20%208%206%207%205%0A%20%2030%209 Source code https://cleanshot.com/ CleanShotX * Not just a library, it's a microlanguage! ========================================= `heatrix` is a microlang that let's you customize your visualizations using ""directives"": Adjust the height/width of individual cells, columns, or rows: ============================================================== Add links: ========== Add labels: =========== Use numbers as labels: ====================== Use your own custom color palettes and set your own thresholds: =============================================================== * Like Heatrix? There's more where that came from! ================================================ Join the World Wide Scroll Beta today! ====================================== If you like `heatrix` and want to see more stuff like this, but a folder on the World Wide Scroll beta and good things will come your way: https://wws.scroll.pub/ World Wide Scroll beta ⁂ Built with Scroll v165.2.0 ",07/28/2024,470,2.4 -Contacts: A Microlang for Managing Contacts,contacts.html,"Contacts: A Microlang for Managing Contacts =========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 16, 2024 July 16, 2024 Imagine a single plain text file named `contacts.scroll` where you stored the contact info for your family, friends, and colleagues, and you could track changes with git, compile it to a beautiful PDF or HTML page with search and sort, and it would also compile to CSV and/or JSON for import into iPhone, Android, Gmail, Outlook, et cetera? Also imagine that this tool is free, open source, and public domain. * Introducing *Contacts*, a microlanguage (currently 23 lines of code, including comments) that makes it as concise as possible to add, prune, display, print and export your contacts. https://github.com/breck7/scroll/blob/main/microlangs/contacts.parsers 23 lines of code * There's almost nothing to learn (the code is self-explanatory). In fact, it's almost guaranteed that using Contacts you will need to write less (we've taken every unnecessary character out). * Example ======= ``` 👤 Jack Doe phone +1 (555) 123-4567 email john.doe@example.com birthday 2/23/84 notes Daughter - Samantha. 👤 Jill Smith phone +1 (555) 123-4562 email jill@gmail.com birthday 1/23/80 ``` * How to use ========== 1. Create a file named something like `contacts.scroll` with this content: ``` // You can import the file, or just copy/paste the 21 lines of code here. [pathToScroll]/microlangs/contacts.parser title My Contacts buildConcepts contacts.csv contacts.json contacts.tsv buildHtml theme gazette mediumColumns 1 printTitle table printTable tableSearch 👤 Jack Doe phone +1 (555) 123-4567 email john.doe@example.com birthday 2/23/84 notes Daughter - Samantha. 👤 Jill Smith phone +1 (555) 123-4562 email jill@gmail.com birthday 1/23/80 ``` 2. Run `scroll build` Done! You should now see a contacts.html file for display and printing as well as TSV, CSV, and JSON files. https://scroll.pub/blog/../tests/contacts.html contacts.html * [Image Omitted] Contacts is interoperable with pen and paper. * What do you think? Anything that should be added/removed/improved? * Notes ===== 1. The idea for Contacts was sparked by this tweet from Tyler Tringas. https://x.com/tylertringas/status/1813239718957461528 this tweet from Tyler Tringas ⁂ Built with Scroll v165.2.0 ",07/16/2024,374,1.9 -How I Designed Helpful 404's and Stopped Worrying about Broken Links,helpful404s.html,"How I Designed Helpful 404's and Stopped Worrying about Broken Links ==================================================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 12, 2024 _Woohoo!_ Your blog is on top of Reddit! _OH NO._ There's a typo in your url. 🤦 *What do you do?* * You try to calm yourself down. _Almost no one looks at the url and the content of the article is what's important and the traffic is coming_ But then you think _all I can see is that i before e after c!_ But then you think _is that *really* a rule_ and _maybe that's how it's spelled in London?_ * You can't help yourself. It's an affront to your craftsmanship to not correct the bad filename. You know you can so easily rename the file but then existing links will break and so you'll have to add redirects but that means more files to maintain or god forbid that would require adding a server and you just love your static blog and it's almost 2pm and you have to leave and pick up the kids from school what do you do!?!! Or do you just break the links and going forward everyone will have the proper URL but everyone who clicks the old links will see an unhelpful 404 and you reflect on how great this thing that Tim Berners-Lee gave to the world is and how could you litter his creation with unhelpful 404s? * If the story above resonates with you, the bad news is you may suffer from Broken Link Phobia. Luckily, there is now a cure. * Introducing: Helpful 404's - never worry about broken links again! ================================================================== Scroll now comes with a way to generate a very helpful 404 page so your visitors will get redirected to the right place even if the URL they clicked is off by a few characters. The best part? It works entirely client side on static sites. How to use ========== *Step 1* Create a sitemap: ```sitemap.scroll buildTxt sitemap.txt baseUrl https://scroll.pub/ printSiteMap ``` *Step 2* Create a 404 page: ```404.scroll buildHtml Sorry, the url you requested was not found. helpfulNotFound sitemap.txt ``` That's it! The `helpfulNotFound` parser in Scroll will add Javascript to the 404 page that fetches all the urls found in the sitemap and shows the user the closest match. As a bonus, you also get a `sitemap.txt` file great for Google SEO and other uses. See it in action here by clicking on this intentionally broken link: https://scroll.pub/blog/helpful_404s.html intentionally broken link * I've been using Helpful 404s on all my sites for the past couple of months and it's been delightful. I no longer spend any time worrying about making improvements to URLS. I just do it and I know that users following old links will still have a good experience. * If you like stuff like Helpful 404's, there's _a lot_ more like that in Scroll, which is public domain and open source. Try it today, and if you like what we are doing please consider bringing your site to the World Wide Scroll! https://wws.scroll.pub World Wide Scroll ⁂ Built with Scroll v165.2.0 ",07/12/2024,547,2.7 -Convert CSVs to ScrollSets,csvToScrollSet.html,"Convert CSVs to ScrollSets ========================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 9, 2024 ScrollSets are _very_ useful once you get going. But starting from scratch could be a bit tedious. https://breckyunits.com/scrollsets.html ScrollSets Not anymore! Just drop your CSV or TSV into the textarea below to generate a ScrollSet. (P.S. using LLMs with ScrollSets is another great way to get started) https://sets.scroll.pub/ using LLMs with ScrollSets * Your Data: ========== ScrollSet: ========== Related ======= ScrollSets: source code for CSVs ================================ 04/21/2024 https://scroll.pub/blog/scrollsets.html Built with Scroll v165.2.0 ",07/09/2024,100,0.5 -Changes: A Microlang for Change Logs,changes.html,"Changes: A Microlang for Change Logs ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits [Image Omitted] July 1, 2024 Regardless of what languages you write your programs in, you probably maintain files like _changeLog.txt_ or _releaseNotes.txt_. Change logs are very helpful for: - informing your users of new features and bug fixes - providing detailed technical information to your development team (and open source contributors) - periodical data analysis for strategic project planning - how fast are we shipping new features? fixing bugs? breaking things? What if there was 1 language that let you do all 3 things at once? * Introducing Changes, a microlang (only 70 lines of code, including comments) that makes it as concise as possible to write, read and analyze change logs. https://github.com/breck7/scroll/blob/main/microlangs/changes.parsers 70 lines of code Changes generates a pretty HTML file for your end users; allows for including unlimited detailed technical information for your developers; and generates summary statistics as TSV, CSV, and JSON for your project managers. * There's almost nothing to learn (the code is self explanatory). In fact, it's almost guaranteed that using Changes you will need to write less (we've taken every unnecessary character out). * Example ======= We use Changes for the Scroll Release Notes. https://scroll.pub/blog/../releaseNotes.html Scroll Release Notes Be sure to check out the source code that generates that HTML. https://github.com/breck7/scroll/blob/main/releaseNotes.scroll check out the source code * How to use ========== 1. Install Scroll ``` npm install -g scroll-cli ``` 2. Create a release notes file: ```releaseNotes.scroll title My Release Notes printTitle buildConcepts releaseNotes.csv releaseNotes.json releaseNotes.tsv // You can import the changes parsers or just copy/paste the 70 lines into your own file. [pathToScroll]/microlangs/changes.parser thinColumns 📦 0.1.1 7/1/2024 🏥 fixed bug in command line app 📦 0.1.0 7/1/2024 🎉 added command line app endColumns ``` 3. Run `scroll build` Done! You should now see a `releaseNotes.html` file as well as a TSV, CSV, and JSON file. * What do you think? Anything that should be added/removed/improved? ⁂ Related ======= - Changelog https://en.wikipedia.org/wiki/Changelog Changelog - Release Notes https://en.wikipedia.org/wiki/Release_notes Release Notes - Major Version Numbers are Not Sacred https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred Major Version Numbers are Not Sacred - What can we learn from programming language version numbers? https://breckyunits.com/versionNumbers.html What can we learn from programming language version numbers? Built with Scroll v165.2.0 ",07/01/2024,431,2.2 -Write scatterplot to get a scatterplot,plot.html,"Write scatterplot to get a scatterplot ====================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits June 24, 2024 I _engineered on_ many innovative data science tools, including Grapher and Ohayo^engineering. https://github.com/breck7/ohayo Ohayo https://github.com/owid/owid-grapher Grapher So I was excited to see Observable launch something new: Plot. https://observablehq.com/plot/ Plot https://observablehq.com/ Observable * Plot is already great on its own. It handles many of the hard parts of data vis, and it's open source, so we can help them fix the parts that are still a little rough. https://github.com/observablehq/plot open source But I found a way to take Plot to the next level: I combined it with Scroll. https://scroll.pub/blog/../index.html Scroll The Plot/Scroll integration is early, but I can already tell it will evolve into a _very useful_ data science tool. * A Scatterplot with 2 words ========================== You can now make scatterplots with 2 words. Obviously you want to add a few more words, but I don't think I'm exaggerating when I say that this is the simplest way to generate a scatterplot now and forever will be (until the day when we have mind-reading machines that can generate a scatterplot with zero words). But enough talk, let's see some code. A tutorial is below. To follow along, create a new website in 1 second using ScrollHub or install Scroll locally with `npm install -g scroll-cli`. http://hub.scroll.pub ScrollHub * Step 1: Generate a scatterplot with 2 words =========================================== * Step 2: Add a title =================== * Step 3: Add inline data ======================= * Step 4: Everything everywhere all at once ========================================= * That's it (for now)! If you like where this is headed, give us a star on GitHub. https://github.com/breck7/scroll give us a star on GitHub ⁂ ^engineering: The difference between programming and engineering? It takes programming to make a program that works. It takes engineering to make a program that _barely_ works. Built with Scroll v165.2.0 ",06/24/2024,342,1.7 -Stamp: a microlang for project templates,stamp.html,"Stamp: a microlang for project templates ======================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits June 23, 2024 Regardless if you specialize in React, Rails, Django, Next, Java, C#, or ObjectiveC, you probably use _templates_ to start new projects. Templates generate a handful of files like `readme.md`, `.gitignore`, and `main`. They also initialize a handful of directories like `src/` and `tests/`. What if it was even easier to make, edit and use these templates? * Introducing Stamp, a microlang (only 60 lines of code, including comments) that makes it as concise as possible to write, edit, share and expand project templates. https://github.com/breck7/scroll/blob/main/parsers/stamp.parsers 60 lines of code * How to use ========== 1. Install Scroll ``` npm install -g scroll-cli ``` 2. Create `myFirstStamp.scroll` ``` stamp .gitignore *.html readme.scroll # My First Stamp scripts/ hello.js console.log(""Hello world"") ``` 3. Run `scroll build` Done! * Stamp was jointly created by me and Guillaume Papin. Other tools (listed below) do similar things, but with some slight differences. https://github.com/Sarcasm Guillaume Papin https://github.com/breck7/scrollsdk/issues/120 jointly created ⁂ [Image Omitted] Prior Art ========= - cookiecutter https://github.com/cookiecutter/cookiecutter cookiecutter - Dired https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html Dired - vimv https://github.com/thameera/vimv vimv - ptar https://github.com/jtvaughan/ptar ptar - shar https://en.wikipedia.org/wiki/Shar shar - dar http://dar.linux.free.fr/ dar - metatar https://github.com/xyproto/metatar metatar - txtar https://pkg.go.dev/golang.org/x/tools@v0.1.0/txtar txtar - Archiving files in plain text https://blog.oquijano.net/id/9?lang=en Archiving files in plain text - Wikipedia list of archive formats https://en.wikipedia.org/wiki/List_of_archive_formats Wikipedia list of archive formats Built with Scroll v165.2.0 ",06/23/2024,300,1.5 -Scroll builds text files,textFiles.html,"Scroll builds text files ======================== by Breck Yunits https://breckyunits.com Breck Yunits HTML | TXT link textFiles.html HTML link textFiles.txt TXT April 29, 2024 Scroll is a new language for building HTML and CSV files that powers blogs, websites and knowledge bases. https://scroll.pub/blog/scrollsets.html knowledge bases https://scroll.pub/blog/../index.html Scroll * I often need plain text outputs in addition to HTML files. I used to make those plain text versions copying and pasting text by hand. Now Scroll has plain text output built-in. * How do I tell Scroll to build plain text files? =============================================== Add a single line: `buildTxt` ```example.scroll buildTxt Hello world. ``` `scroll build` will create `example.txt`. Done! * You may want to put `buildTxt` into `header.scroll` or `footer.scroll` to build text files for many pages at once. * I've *loved* this new feature in Scroll. Plain text is a *timeless* way to read, review, and share your thoughts! Hope you enjoy it as much as I have! ⁂ Built with Scroll v165.2.0 ",04/29/2024,175,0.9 -ScrollSets: source code for CSVs,scrollsets.html,"ScrollSets: source code for CSVs ================================ by Breck Yunits https://breckyunits.com Breck Yunits [Image Omitted] More examples of ScrollSets from sets.scroll.pub. https://sets.scroll.pub/ sets.scroll.pub April 21, 2024 The source code for this blog post contains a ScrollSet about the planets and generates this HTML file as well as a CSV, a TSV, and a JSON file. This page demonstrates *ScrollSets*. https://scroll.pub/blog/scrollsets.scroll source code for this blog post https://scroll.pub/blog/planets.csv CSV https://scroll.pub/blog/planets.tsv TSV https://scroll.pub/blog/planets.json JSON ScrollSets are useful for small single day projects and large multi-year projects with thousands of concepts like PLDB (a Programming Language Database). https://pldb.io PLDB * ScrollSets are normal plain text files written in Scroll that also contain measurements of concepts and output that data into formats ready for data visualization and analysis tools. https://scroll.pub/ Scroll ScrollSets are line oriented but represent a table(s). You might call them _deconstructed csvs_ or _deconstructed spreadsheets_. - Use LLMs to *instantly generate ScrollSets* that are ready for human verification and improvement. - Intermingle structured data with markup to *annotate any and every part of a ScrollSets* while still generating strict tabular files for data analysis tools. - Put data, schema, citations, and documentation *all* in one (or more) plain text file(s) to easily share, collaborate on, and improve, all *tracked by git for trust*. - Add unlimited citations (or none) to *every* measurement. Quick Code Example: =================== ```planets.scroll This ScrollSets has 2 measures (columns) and 2 concepts (rows). Documentation, column definitions, rows and *any notes/markup/content* can go in the same file. # Measures (aka Header, aka Columns, aka Schema) idParser // Every concept needs an ""id"" (or other concept delimiter) extends abstractIdParser moonsParser extends abstractIntegerParser # Concepts (aka Rows) id mars moons 2 // I verified moon count with Google. - BY id jupiter moons 63 // Note: the moons of Jupiter have their own Wikipedia Page https://en.wikipedia.org/wiki/Moons_of_Jupiter moons of Jupiter buildConcepts demo.csv ``` The code above generates an HTML page and this: =============================================== ```demo.csv id,moons mars,2 jupiter,63 ``` Overview: ========= - ScrollSets are built from 4 atomic elements: - concepts - think of rows in a spreadsheet - denoted by a line starting with `id ` - concepts are multiple lines of measurements - measures - think of these as the column names in a spreadsheet, along with meta information about the column - aka ""parsers"" - measures are defined in Parsers that start with a line like `moonsParser` - values - these are just the values of the measurements - measurements - concept & measure & value = measurement - 1 measurement = 1 line - measurements can have nested comments that are stripped when compiling to TSV/CSV How to use ========== - A concept is like a row in a database. All concepts need an id (or other concept delimiter). When you write `id [conceptId]`, Scroll knows that is the beginning of a new concept. - Measure definitions (aka ""parsers"") must come before the first concept and are written as Parsers, just like any other Scroll Parser. Measure parsers need to extend one of the abstract measure parser classes defined in `measures.scroll`. - Measurements are then done like this `appeared 2024` FAQ === Isn't the better idea to enhance existing spreadsheet GUIs with LLM generation capabilities? ============================================================================================ Almost certainly. Using ScrollSets will be much slower and worse than future spreadsheet apps with carefully crafted LLM integrations. However, it's important to also have simple, lower tech, timeless tools and ScrollSets is one of those. Can't you do this same thing with YAML and/or Markdown? ======================================================= Yes! You can easily achieve the same thing as LLMs & ScrollSets using LLMs & YAML, or LLMs & YAML & Markdown. https://yaml.org/ YAML https://github.github.com/gfm/ Markdown For YAML, just put your documentation and schema in YAML comments up top and then have a tiny script to read that YAML and dump CSV/TSV/JSON or whatever. YAML gives you loads of data structures to use and is widely supported in many languages. But generating HTML from the same file would require more work. If you want to intermix markup content with your data, you can use Markdown to add the marked up content and then have code sections embedding the YAML and a tiny script to parse out those YAML blocks and write your data to disk. So, why use Scroll for storing data instead of YAML? ==================================================== Either can do the job. I expect the Scroll design to end up being more ergonomic, but that might not be true or may be unimportant. If you don't like Scroll's (evolving) version and want to switch it will always be straightforward to automatically refactor to YAML. What other related work is out there? ===================================== This is a simple pattern to implement, so I'm sure it is likely it has been done a few times before. Please let me know so I can include links to--and learn from--any other prior art. What are the advanced features? =============================== - Types correctly exported in JSON - Supports nested measures - Support for computed measures - Autojoins across files on ids^roadmap - Auto generates normalized tables for array measures^roadmap - Support for text blobs^roadmap ^roadmap: Planned. What is the origin of ScrollSets? ================================= LLM dataset generation is a _major_ breakthrough in datasets. ScrollSets are, at best, a minor improvement. They are designed to work alongside LLMs to help solve the Dataset Needed problem. https://breckyunits.com/dataset-needed.html Dataset Needed ScrollSets evolved out of TrueBase. ScrollSets have eliminated the need for the TrueBase software (and existing TrueBase sites should be migrated to ScrollSets), but were informed by the TrueBase build experience. https://truebase.treenotation.org TrueBase Although ScrollSets are designed for a world with LLMs, the design is meant to be useful without them as well, and would also have been mildly useful 30 years ago. What were the design goals? =========================== - Have an LLM do the bulk of the work while humans supervise to remove hallucinations. - Can store everything (documentation, schema, all concepts) in 1 clean plain text file or split into many files (using the `import` parser). - The ScrollSet syntax balances _looseness_ useful in creative thinking with the _tightness_ needed by tabular data visualization and analysis tools. Why are measures and concepts root-level features and not indented? =================================================================== The normal way to implement this in Scroll would be something like: ``` measures id string moons int concept id mars moons 2 concept id jupiter moons 63 ``` The flat design was chosen for ergonomic reasons. ScrollSets seem like they might be useful enough to be worth breaking from Scroll convention a bit. Like all things in Scroll, ScrollSets are an experiment, and maybe this design will evolve. Extended Example: a Planets ScrollSet ===================================== Below is the ScrollSet embedded in this Scroll file. Measurements of the measures ============================ Extended Measures Example ========================= Extended Concepts Example ========================= Related ======= Built with Scroll v165.2.0 ",04/21/2024,1148,5.7 -Introducing Program Links,programLinks.html,"Introducing Program Links ========================= by Breck Yunits https://twitter.com/breckyunits Breck Yunits May 8, 2023 May 8, 2023 Some web apps are designed to load _entire programs_ from a link. But if a program contain certain characters, such as _newlines_, those links won't work as-is. To create working links you have to run them through `encodeURIComponent`. * If you are creating blog content by hand this is annoying. To update a program link you have to keep a copy of the program, update that, then run `encodeURIComponent`, then paste the result into your post. Today's release of Scroll includes a small new addition that solves this problem. You can call them ""Multline Links"" or ""Program Links"". * Here are two examples ===================== Here is a program link to the Scroll web app. https://try.scroll.pub/#scroll%0A%20%23%20Testing%20Program%20Links%0A%20It%20worked!%0A%20%20style%20color%3Agreen%3B%20font-size%3A%20100px%3B program link If you click that link you should see ""It worked!"" in big green text. * Now let's show a complex real world example. The link below contains a 28 line program pasted verbatim from the Ohayo data science studio. See code Discovery of the Elements https://ohayo.breckyunits.com?filename=test.ohayo&data=doc.title%20Discovery%20of%20the%20Elements%0Adoc.subtitle%20What%20is%20the%20growth%20in%20known%20elements%20over%20time%3F%0Asamples.periodicTable%0A%20hidden%0A%20fill.missing%20Year%201000%0A%20%20hidden%0A%20%20columns.keep%20Element%20Year%0A%20%20%20hidden%0A%20%20%20rows.sortBy%20Year%0A%20%20%20%20hidden%0A%20%20group.by%20Year%0A%20%20%20hidden%0A%20%20%20rows.sortBy%20Year%0A%20%20%20%20hidden%0A%20%20%20%20rows.runningTotal%20count%0A%20%20%20%20%20hidden%0A%20%20%20%20%20vega.bar%20Number%20of%20Elements%20Found%20Each%20Year%0A%20%20%20%20%20%20xColumn%20Year%0A%20%20%20%20%20%20yColumn%20count%0A%20%20%20%20%20vega.line%20Cumulative%20Number%20of%20Elements%0A%20%20%20%20%20%20xColumn%20Year%0A%20%20%20%20%20%20yColumn%20total%0A%20vega.scatter%20Year%20of%20Discovery%20by%20Atomic%20Number%0A%20%20xColumn%20Year%0A%20%20yColumn%20AtomicNumber%0A%20tables.basic%0A%20%20rowDisplayLimit%20200%0Adoc.categories%20chemistry Discovery of the Elements If you click that link you should see a few data visualizations generated from that program. Edit the source and the link will update accordingly. Scroll handles the `encodeURIComponent`. * Why not use HTML directly? ========================== Modern browsers do their best to make URLs well-formed and you will notice that they auto encode certain characters like spaces. But by the HTML spec newlines are not a URL code point and generally are stripped and collapsed. https://url.spec.whatwg.org/#url-code-points URL code point https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace stripped and collapsed Program Links in Scroll handle encoding newlines and any other special characters so you can focus on your content and not the encoding. Built with Scroll v165.2.0 ",05/08/2023,510,2.5 -Counterpoints: A new tool for thought in the Scroll Language,counterpoints.html,"Counterpoints: A new tool for thought in the Scroll Language ============================================================ by Breck Yunits https://twitter.com/breckyunits Breck Yunits April 13, 2023 Improve your writing by welcoming counterarguments ================================================== April 13, 2023 There's a tiny new symbol in Scroll today: `!`. https://scroll.pub/ Scroll The exclamation mark stands for *Counterpoint*. ""Counters"" aim to help writers strengthen their ideas by encouraging the integration of counterarguments throughout their essays. You can write your own counters or invite counters from friends, LLMs or Internet commenters. * Counterpoints are easy to use: just start a line with `!`. For example: ``` Humans will eventually establish colonies on Mars. ! But we haven't colonized the Arctic, 1,000x easier ``` You can go as deep as you want in countering your own counters! ``` Humans will eventually establish colonies on Mars. ! But we haven't colonized the Arctic, 1,000x easier - Colonizing Mars is 10,000x more valuable ``` * The Benefits of Countering ========================== When we have a lot of terms for a thing, it's usually a hint that it's a valuable thing. And we have a lot of terms for countering. To name a few: - ""Steel manning"" - ""red teaming"" - ""playing devil's advocate"" Countering is a helpful habit that helps clarify your thoughts, understand and empathize with other perspectives, fix logical blunders, hone your pitch, and improve at truth-seeking. Counterpoints in Scroll are in a sense just a reminder to frequently use these techniques. * The Downsides of Countering =========================== Addressing every plausible counter in your main thread can be difficult if not impossible. It can make your writing too verbose and lose reader interest. Counters in Scroll give you a place to record every scattered counter as it comes to you. You can then choose which are important enough to address in your main argument and relegate the rest to the source code (for the very avid reader). * Implementation ============== Counterpoints do not currently appear in the compiled HTML. Instead you only see them during write time. For now, they are just an alternate syntax for comments. But though they perform no new function, like traffic lines, sometimes form is function. That being said, there are potentially interesting directions this could go in the future, and it would be interesting to hear ideas of what people would like in a v2. * Keep writing, keep thinking! ⁂ Built with Scroll v165.2.0 ",04/13/2023,391,2 -Introducing the Blink Tag,introducingBlink.html,"Introducing the Blink Tag ========================= by Breck Yunits https://github.com/breck7 Breck Yunits October 2, 2022 October 2, 2022 *Scroll's new blink tag lets you call attention to something important* I am really happy with the current state of Scroll and so grateful for the many people who have helped us get it to this point. That being said, I had a feeling we were missing something important. * *So I invented something simple and completely novel* Introducing the `blink` tag. When you have something important to say and you want to interupt people's lives, use the `blink` tag. It's as easy as this: ``` blink This blinks ``` Advertisers have known for ages that human eyes evolved to respond fast to motion. Now, using my new invention, the `blink` tag, you can bring this innovation from advertising to your products and websites. *The blink tag, available now in Scroll 34.1.0* https://scroll.pub/ Scroll 34.1.0 _Note: please don't use this. It's a joke_ Built with Scroll v165.2.0 ",10/02/2022,176,0.9 -"The Power of Indented Heredocs: Markdown, Textile, and BBCode in one file with no escaping",indented-heredocs.html,"The Power of Indented Heredocs: Markdown, Textile, and BBCode in one file with no escaping ========================================================================================== by Breck Yunits https://github.com/breck7 Breck Yunits August 23, 2021 Scroll is a new language and static site generator that is mostly written in Parsers which are both built on a new syntax called Particles. * In this demo, I extend Scroll by adding support for Markdown, Textile, and BBCode. I want to demonstrate how easy it is to compose many languages into one using Particles, which is due to what you might call the Indented or Off-side Heredoc pattern. https://en.wikipedia.org/wiki/Markdown Markdown https://en.wikipedia.org/wiki/Textile_(markup_language) Textile https://en.wikipedia.org/wiki/BBCode BBCode My implementation is still _researchy_—Parsers still needs a lot of work—but my main point here is to demo how _simple and powerful indented heredocs are_. They allow you to compose unlimited languages in one file in a clean and scalable way. You don't need escaping. I think this is a very helpful pattern you can use in your own languages and code. Traditional Heredocs ==================== Traditional heredocs use start and end delimiters, like these examples from Ruby and Python and Markdown: ``` # Heredoc in Ruby puts Particles is that it is just indented or off-side HereDocs. Or in colloquial academic speak _The Off-Side Rule is all you need_. Most people learn of the off-side rule via Python. Imagine if your whole language was just the off-side rule. That's basically Particles. But my code is not the important thing—the important thing is this pattern. Try it yourself—I bet you will love it. https://en.wikipedia.org/wiki/Off-side_rule Off-Side Rule https://en.wikipedia.org/wiki/Here_document HereDocs Extended Examples ================= Markdown ======== Textile ======= BBCode ====== Built with Scroll v165.2.0 ",08/23/2021,306,1.5 +Data Science with Scroll,dataScience.html,"Data Science with Scroll ======================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits January 6, 2025 A Tutorial ========== This tutorial will walk you through how to use Scroll for data analysis and visualization, from basic concepts to advanced techniques. What makes Scroll great for data science? ========================================= Scroll combines the simplicity of markdown-style syntax with powerful data transformation and visualization capabilities. You can: - Load data from various sources (CSV, JSON, etc.) - Transform and analyze data with simple commands - Create beautiful visualizations - Publish instantly using ScrollHub https://hub.scroll.pub/ ScrollHub - All in a simple, readable format Let's dive in! --- Part 1: Getting Started with Data ================================= Loading Sample Datasets ======================= Scroll comes with several sample datasets. Let's start with the famous iris dataset: sepal_length,sepal_width,petal_length,petal_width,species 6.1,3,4.9,1.8,virginica 5.6,2.7,4.2,1.3,versicolor 5.6,2.8,4.9,2,virginica 6.2,2.8,4.8,1.8,virginica 7.7,3.8,6.7,2.2,virginica 5.3,3.7,1.5,0.2,setosa 6.2,3.4,5.4,2.3,virginica 4.9,2.5,4.5,1.7,virginica 5.1,3.5,1.4,0.2,setosa 5,3.4,1.5,0.2,setosa You can also load datasets from Vega's collection: zip_code,latitude,longitude,city,state,county 501,40.922326,-72.637078,Holtsville,NY,Suffolk 544,40.922326,-72.637078,Holtsville,NY,Suffolk 601,18.165273,-66.722583,Adjuntas,PR,Adjuntas 602,18.393103,-67.180953,Aguada,PR,Aguada 603,18.455913,-67.14578,Aguadilla,PR,Aguadilla Basic Data Operations ===================== Let's explore some basic operations on the iris dataset: name,type,incompleteCount,uniqueCount,count,sum,median,mean,min,max,mode sepal_length,number,0,8,10,57.699999999999996,5.6,5.77,4.9,7.7,5.6 sepal_width,number,0,8,10,31.599999999999998,3.2,3.1599999999999997,2.5,3.8,2.8 petal_length,number,0,8,10,39.8,4.65,3.9799999999999995,1.4,6.7,4.9 petal_width,number,0,7,10,13.699999999999996,1.75,1.3699999999999997,0.2,2.3,0.2 species,string,0,3,10,null,null,,null,null,virginica This gives us summary statistics for each column. Let's look at filtering: sepal_length,sepal_width,petal_length,petal_width,species 5.3,3.7,1.5,0.2,setosa 5.1,3.5,1.4,0.2,setosa 5,3.4,1.5,0.2,setosa --- Part 2: Data Visualization ========================== Basic Plots =========== Let's start with a simple scatterplot of the iris data: Line Charts =========== Let's look at some time series data: Bar Charts ========== Let's create a bar chart showing precipitation: --- Part 3: Advanced Data Transformations ===================================== Grouping and Aggregation ======================== Let's look at some more complex transformations: weather,count,avg_max_temp,avg_min_temp drizzle,129,18.555813953488368,10.143410852713178 rain,459,15.535294117647041,9.04727668845315 sun,1674,18.064157706093184,8.87275985663083 snow,78,4.528205128205127,-1.4346153846153844 fog,582,15.261855670103111,8.527319587628869 Creating New Columns ==================== Let's add some computed columns: sepal_length,sepal_width,petal_length,petal_width,species,ratio 6.1,3,4.9,1.8,virginica,2.033333333333333 5.6,2.7,4.2,1.3,versicolor,2.074074074074074 6.2,2.8,4.8,1.8,virginica,2.2142857142857144 7.7,3.8,6.7,2.2,virginica,2.0263157894736845 --- Part 4: Advanced Visualizations =============================== Heatmaps ======== Let's create a heatmap of annual precipitation values: Multiple Views ============== You can create multiple visualizations: --- Conclusion ========== This tutorial covered the basics of data science with Scroll. Some key takeaways: - Scroll makes it easy to load and manipulate data - Visualizations are simple to create and customize - Complex transformations can be done with simple commands - Everything is readable and version-controllable ⁂ Built with Scroll v165.3.0 ",01/06/2025,632,3.2 +Scroll in 50 Questions,scrollInQuestions.html,"Scroll in 50 Questions ====================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits October 28, 2024 What is Scroll? =============== Scroll is a language for those who believe that what they cannot build with as few pieces as possible they do not understand. What is Scroll? =============== Scroll is a symbolic language. What is a symbolic language. ============================ A language you write with symbols. What is a symbol? ================= A symbol is a mark repeated to correlate to a pattern in nature. What is a mark? =============== A mark is a discoloration of a surface. What is a symbolic language? ============================ A symbolic language is a collection of symbols and symbol sequences that can be used to trigger the same electrical phenomena in the brain of an observer that seeing that pattern occur in nature would trigger. How do I use a symbolic language? ================================= By writing documents. What is a document? =================== It is a collection of marks on a surface. What is Particle Syntax? ======================== It is the syntax that Scroll uses. What is a syntax? ================= It is a set of rules for how to break up a document into symbols. What is a digital document? =========================== It is a file. What is a file? =============== It is a digital representation of a document as a series of bits. What is a bit? ============== A bit is a persistent location in space that has 2 states: a 1 or 0; a true or false; an on or off; a black or white; a hot or cold; a high or low. What is a character? ==================== A character is a 2D mark that maps to a unique fixed length bit sequence. What is a character encoding? ============================= A map of bit sequences to characters. What character encoding does Scroll use? ======================================== UTF8. For now. What is a word? =============== A word is a list of characters delimited by a word delimiter sequence. What is an atom? ================ An atom is another word for word in the Scroll language. What is a line? =============== A line is a sequence of atoms in the Scroll language delimited by a newline sequence. What is a Particle? =================== A particle in Scroll refers to an object that contains both atoms and a collection of particles referred to as the particle's subparticles. Are all particles also subparticles of a higher particle? ========================================================= Yes. What is a Parser? ================= A Parser is a particle that consumes certain other particles to perform transformations. What transformations can a Parser perform? ========================================== A Parser can perform a variety of transformations but the most common are to: - compile one particle in one language to another language. - format a particle into a standardized format - check a particle for errors - evalute the instructions in a particle and return the results - execute commands contained in the particle What is the syntax of Scroll? ============================= The syntax of Scrolls is Particle Syntax, or just Particles for short. What does Particle Syntax do? ============================= Partilces tells you how to divide a binary sequence into parts. What are the components of Particle Syntax? =========================================== - A sequence of binary bits is converted into characters using UTF8 - Atoms are sequences of characters separated by a single space. - Particles are a sequence of atoms separated by a newline. - Subparticles are indicated by a single indented space. How do I make a subparticle? ============================ - Just indent a particle by 1 space more than its parent particle. - For example, because I started this line with one space more than the line above, this line is a subparticle of that line. - And then this line, starting with 2 spaces, is a subparticle of the line above it. - But this line is a subparticle of the line above that starts with ""Just"" Can I use the Particles, Parsers, and Scroll concepts to design 2D or 3D languages that don't use computers at all? =================================================================================================================== Yes. But generally when we talk about PPS we are talking about the form designed for binary and computers. What is Parsers? ================ Parsers is a symbolic language where one defines Particles that can consume other Particles. It is a language for making other languages. What is Scroll? =============== Scroll is a language made out of Parsers. What is the purpose of the Parsers language? ============================================ The purpose of the Parsers Language is to make Scroll. What is the purpose of Scroll? ============================== The purpose of Scroll is to help humans communicate with humans and machines. How does one use Scroll to communicate? ======================================= By writing Scroll documents (aka Scroll Programs) to create things. What kinds of things is Scroll currently best at creating? ========================================================== Knowledge bases, blogs, websites, web pages, charts, animations, data science reports, ebooks, web forms, maps, that sort of thing. Why use Scroll and not just write HTML directly? ================================================ Scroll helps you better understand what you are writing about and anything HTML can make Scroll can make in fewer symbols. Scroll is a language for those who believe that what they cannot build with as few pieces as possible they do not understand. What is ScrollHub? ================== ScrollHub is a super server for creating and publishing websites instantly using Scroll. What is a cue? ============== Cue refers to the first atom in a particle. What is the significance of the cue? ==================================== When communicating you want to communicate the most important information first, so the cue is often the most important information. What is the cue used for? ========================= Most parsers use the cue to determine whether they should consume a particle or not. Can parsers use other ways to match against particles? ====================================================== Yes. What's another commmon way for parsers to match particles? ========================================================== Regular expressions. Can I build Scroll using only Particles and Parsers and no other languages? =========================================================================== Currently no. Parsers does not have enough functionality yet to be able to write parsers that provide everything Scroll needs. What other language do I currently need? ======================================== The primary implementation of Parsers currently is half Parsers, half Javascript. How does Parsers parse Scroll? ============================== The Parsers program is parsed and compiled by a Javascript implementation of Parsers which generates a Parser and compiler for Scroll programs. Do I need to master Javascript to use Parsers? ============================================== If you've mastered Javascript then using Parsers should be easy once you get the hang of it. Does Parsers have inheritance? ============================== Yes. Does Particle Syntax have types? ================================ No. Does Parsers have types? ======================== Yes. Parsers has atom types. Is Scroll like Lisp? ==================== Scroll and Parsers implement many of the best ideas from Lisp, and leave out a lot of unnecessary things (like the parens). Is Scroll designed for humans or AIs? ===================================== Both. ⁂ Built with Scroll v165.3.0 ",10/28/2024,1082,5.4 +Web Forms for Geniuses,forms.html,"Web Forms for Geniuses ====================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits October 1, 2024 If you want to make web forms the inefficient way, there are many other places to read how to do that. If you want to learn how geniuses are doing web forms, read on. * One Field at a Time is Retarded =============================== Building forms for one-field-at-a-time data entry is inefficient. People can't copy/paste your forms. E-receipts are a pain. Auto-form fill works poorly. It's a huge waste of your users' time that retards them and your business. And it will always be this way. Entire Form in One Field is Genius ================================== Everything becomes radically simpler. People can do things like copy/paste entire applications; email them; version control them; collaborate on them; all effortlessly. And guess what? You can still also compile to a one-field-at-a-time HTML form and allow users to swap back and forth! It's pure win, no loss. You can use this TODAY! ======================= This now ships in Scroll. Here is a test form. You can also see it in use in many of our products. https://scroll.pub/blog/../tests/forms.html a test form Because this is new technology, it is not for those that need spoon feeding. Believe it or not, making web forms also used to be complicated. (If you need this urgently, don't have time to figure it out yourself, and need to hire professional consulting, feel free to get in touch.) Don't whine. Build. =================== I'm tired of reading all the whiners commenting about how our CSS doesn't look so pretty yet, or the tiny little feature you need that isn't supported. I don't care much to hear from whining losers. I want to hear from winners. From builders. From those who strive for genius. Beautiful designs, autoincrement, auto timestamp, joins, decision trees, all that stuff is coming. The world is gonna love this. If you are a winner, a builder, a genius, join us on GitHub or Reddit. https://github.com/breck7/scroll GitHub https://www.reddit.com/r/WorldWideScroll/ Reddit ⁂ Built with Scroll v165.3.0 ",10/01/2024,369,1.8 +The Successor to RSS is Git Clone,gitOverRss.html,"The Successor to RSS is Git Clone ================================= by Breck Yunits https://twitter.com/breckyunits Breck Yunits September 2, 2024 Today on HackerNews Kevin Damm had a great idea: put a `<link>` tag on blogs to point to the git Source Code Repository, much as blogs today have `<link>` tags pointing to their RSS feeds. https://news.ycombinator.com/item?id=41427044 great idea I've added this feature to Scroll and it's live now. If you View Source of this page, you'll see: https://scroll.pub/blog/../index.html Scroll ``` ``` Client applications can start looking for and taking advantage of these tags. * RSS was great, but it's no match for Git Clone ============================================== Git clone solves a million problems. You get a copy of the entire works of your favorite authors that is blazing fast, works offline, is searchable, transformable, censorship resistant, auditable, more trustworthy, ad free, tracker free, et cetera. There is no comparison to the old ways of doing things. * What do you think? ================== Have you already been doing this? Are there ways we can make it better? Would love to hear your feedback! ⁂ Notes ===== vladimyr on bluesky dug up a couple of cool examples of prior art. https://bsky.app/profile/vladimyr.bsky.social/post/3l3anievhnm2t vladimyr on bluesky Built with Scroll v165.3.0 ",09/02/2024,224,1.1 +A New Way to Program,teddyTalk.html,"A New Way to Program ==================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits August 30, 2024 Particles, Scroll, and the Parsers Programming Language ======================================================= I've recorded a short video (1 minute version; 10 minute version) about our recent work which has begun to eat the software world. https://www.youtube.com/watch?v=tpJY7PUmBIU 1 minute version https://www.youtube.com/embed/YcnWSNGEHvI?si=p_vOxpt9lusNKgli&t=75s 10 minute version * Outline ======= 1. Is this stuff relevant to you? ================================= Whether you are an experienced, aspiring, or casual programmer, yes. If you are a writer, yes. If you are a thinker, yes. If you are a builder, yes. If you choose to always remain illiterate to keep your brain different than the crowd, then no. (I applaud your brave creative choice and as a scientist I'm curious to see what happens!) 2. What is Particle Syntax (Particles)? ======================================= One liner: a syntax-free syntax for splitting files into particles (separated by line breaks) which can have atoms (separated by spaces) and subparticles (indented lines). Vibe https://particles.scroll.pub Vibe Playground https://sdk.scroll.pub/sandbox/ Playground LeetSheet https://scroll.pub/particlesLeetsheet.html LeetSheet [Image Omitted] width 400 Each line is a particle. Each dot is a atom. Particles lets you easily compare programs and see which one is simpler (less heavy!). 3. What is Scroll? ================== One liner: Scroll is a language for scientists of all ages where you write and combine particles (written in Particles) to evolve and publish your most intelligence ideas to HTML, PDFs, CSVs, JSON files, movie files, audio files, slideshows, charts, books, et cetera. Vibe https://scroll.pub/blog/index.html Vibe Playground https://try.scroll.pub/ Playground LeetSheet https://scroll.pub/leetsheet.html LeetSheet [Image Omitted] width 400 Scroll is a collection of Parsers that allow you to evolve and publish your most intelligent ideas. 4. What is Parsers? =================== One liner: Parsers is a programming language where programmers write parsers (written in Particles) which consume particles (written in Particles) and also contain logic for translating those particles into actions on computing machines. Vibe https://github.com/breck7/scroll/tree/main/parsers Vibe Playground https://sdk.scroll.pub/designer#url%20https%3A%2F%2Fscroll.pub%2Fscroll.parsers Playground LeetSheet https://scroll.pub/parserLeetsheet.html LeetSheet [Image Omitted] width 400 Programmers who understand how computing machines work write Parsers to translate particles into executable machine code. 5. How do you get started? ========================== ScrollHub http://hub.scroll.pub/ ScrollHub Subreddit https://www.reddit.com/r/WorldWideScroll/ Subreddit ⁂ Built with Scroll v165.3.0 ",08/30/2024,425,2.1 +Tables: a microlang for data science,tables.html,"Tables: a microlang for data science ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits August 9, 2024 Tables, aka spreadsheets, are arguably the most important _visual_ thought tool. But no one has designed the perfect _textual_ language for manipulating them. Until now. Say hello to Tables =================== Try now https://try.scroll.pub/#scroll%0A%20theme%20gazette%0A%20%0A%20expander%20Presidents%0A%20https%3A%2F%2Fohayo.breckyunits.com%2Fohayo%2Fpackages%2Fsamples%2Fpresidents.csv%0A%20%20groupBy%20Party%0A%20%20%20orderBy%20-count%0A%20%20%20%20printTable%0A%20%20scatterplot%0A%20%20%20x%20number%0A%20%20%20y%20Party%0A%20%20%20fill%20Party%0A%20%0A%20expander%20Elements%0A%20https%3A%2F%2Fohayo.breckyunits.com%2Fohayo%2Fpackages%2Fsamples%2Fperiodic-table.csv%0A%20%20scatterplot%0A%20%20%20x%20Year%0A%20%20%20y%20AtomicNumber%0A%20%20%20fill%20Radioactive%0A%20%20%20symbol%20Metal%0A%20%0A%20%2F%2F%20expander%20Inline%20Data%0A%20table%0A%20%20scatterplot%0A%20%20%20title%20Top%2050%20programming%20language%20projects%20on%20GitHub.%0A%20%20%20x%20appeared%0A%20%20%20y%20rank%0A%20%20%20radius%20githubStars%0A%20%20%20label%20name%0A%20%20orderBy%20appeared%0A%20%20%20sparkline%0A%20%20%20%20y%20githubStars%0A%20%20%20%20color%20green%0A%20%20%20select%20name%20githubStars%0A%20%20%20%20heatrix%0A%20%20data%0A%20%20%20rank%2Cname%2Cappeared%2CgithubStars%0A%20%20%203%2CPython%2C1991%2C61378%0A%20%20%204%2CJava%2C1995%2C19037%0A%20%20%208%2CPerl%2C1987%2C1886%0A%20%20%209%2CRuby%2C1995%2C21790%0A%20%20%2010%2CPHP%2C1995%2C37688%0A%20%20%2013%2CGo%2C2009%2C121611%0A%20%20%2014%2CTypeScript%2C2012%2C99410%0A%20%20%2018%2CPowerShell%2C2006%2C44220%0A%20%20%2020%2CRust%2C2010%2C95455%0A%20%20%2021%2CSwift%2C2014%2C67064%0A%20%20%2025%2CKotlin%2C2011%2C48462%0A%20%20%2027%2CClojure%2C2007%2C10392%0A%20%20%2028%2CCoffeeScript%2C2009%2C16466%0A%20%20%2029%2CElixir%2C2011%2C24093%0A%20%20%2030%2CErlang%2C1986%2C11203%0A%20%20%2034%2CJulia%2C2012%2C45137%0A%20%20%2041%2CRacket%2C1994%2C4741%0A%20%20%2042%2CSolidity%2C2014%2C22794%0A%20%20%2043%2CWebAssembly%2C2015%2C6621%0A%20%20%2045%2CZig%2C2015%2C32864%0A%20%20%2047%2CNim%2C2008%2C16308%0A%20%20%2050%2CTOML%2C2013%2C19332 Try now ⁂ Acknowledgements ================ Tables evolved over the past decade primarily by: - just doing what Hadley Wickham did in dplyr https://dplyr.tidyverse.org/ dplyr https://hadley.nz/ Hadley Wickham - using Mike Bostock's d3 under the hood https://bost.ocks.org/mike/ Mike Bostock https://d3js.org/ d3 - reading all of Jeffrey Heer's papers https://homes.cs.washington.edu/~jheer/ Jeffrey Heer - thinking about what would be the best tool for Max Roser and Hannah Ritchie. https://ourworldindata.org/ Max Roser and Hannah Ritchie Built with Scroll v165.3.0 ",08/09/2024,479,2.4 +Build Your Own Counters With 3 Words,counters.html,"Build Your Own Counters With 3 Words ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits August 2, 2024 August 2, 2024 I like collections of interesting numbers, such as BioNumbers. Animated counters provide a useful perspective when pondering large numbers. I wanted to make it as easy as possible for anyone to create these counters. https://bionumbers.hms.harvard.edu/Search.aspx?task=searchbypop BioNumbers So, today I added a new parser to Scroll: *counter*. ``` counter 1.1 Heartbeats ``` * Try now https://try.scroll.pub/#scroll%0A%20theme%20gazette%0A%20%0A%20%23%20Show%20HN%3A%20Make%20a%20counter%20with%203%20words%0A%20%0A%20New%20in%20Scroll%20v112.1.0.%20Read%20more.%0A%20%20https%3A%2F%2Fscroll.pub%2Fblog%2Fcounters.html%20Read%20more.%0A%20%0A%20code%0A%20%20counter%20%5BRate%2FSecond%5D%20%5BDescription%5D%0A%20%0A%20%23%20Since%20you%20loaded%20this%20page...%0A%20%0A%20thinColumns%0A%20%0A%20%23%23%20World%20Population%0A%20counter%204.5%20Babies%20Born%0A%20%20https%3A%2F%2Fourworldindata.org%2Fbirths-and-deaths%0A%20counter%201.7%20Human%20Deaths%0A%20%20https%3A%2F%2Fourworldindata.org%2Fbirths-and-deaths%0A%20counter%208123456789%20heart%20beats%0A%20%20https%3A%2F%2Fourworldindata.org%2Fgrapher%2Fpopulation%0A%20%0A%20%23%23%20In%20Your%20Body%0A%20counter%203112123%20Red%20Blood%20Cells%20Made%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fbooks%2FNBK2263%2F%0A%20counter%203812123%20Cells%20Made%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fbooks%2FNBK2263%2F%0A%20counter%202123456789123456789123%20ATP%20molecules%20made%0A%20%20https%3A%2F%2Fbio.libretexts.org%2FBookshelves%2FHuman_Biology%2FHuman_Biology_(Wakim_and_Grewal)%2F05%253A_Cells%2F5.09%253A_Cellular_Respiration%0A%20%0A%20%23%23%20In%20Your%20Brain%0A%20counter%201.2e12%20Action%20Potentials%20Fired%0A%20%20https%3A%2F%2Fwww.khanacademy.org%2Ftest-prep%2Fmcat%2Forgan-systems%2Fneural-synapses%2Fa%2Fsignal-propagation-the-movement-of-signals-between-neurons%0A%20counter%203.64e18%20Ketones%20Consumed%20(Ketosis)%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fpmc%2Farticles%2FPMC7699472%2F%0A%20counter%204.64e18%20Glucose%20Molecules%20Consumed%0A%20%20https%3A%2F%2Fwww.ncbi.nlm.nih.gov%2Fpmc%2Farticles%2FPMC3900881%2F%0A%20%0A%20%23%23%20World%20Economy%0A%20counter%202.5%20Cars%20Made%0A%20%20https%3A%2F%2Fwww.statista.com%2Fstatistics%2F262747%2Fworldwide-automobile-production-since-2000%2F%0A%20counter%2026012%20Cups%20of%20Coffee%20Consumed%0A%20%20https%3A%2F%2Fwww.rgare.com%2Fknowledge-center%2Farticle%2Fcoffee-consumption-how-much-is-too-much-and-how-little-is-not-enough%0A%20counter%2059321%20YouTubes%20Watched%0A%20%20https%3A%2F%2Fthesocialshepherd.com%2Fblog%2Fyoutube-statistics%0A%20%0A%20%23%23%20Flight%0A%20counter%200.00008%20Objects%20Launched%20into%20Space%0A%20%20https%3A%2F%2Fourworldindata.org%2Fgrapher%2Fyearly-number-of-objects-launched-into-outer-space%0A%20counter%200.00004%20Planes%20Built%0A%20%20https%3A%2F%2Fwww.ibisworld.com%2Fglobal%2Fmarket-research-reports%2Fglobal-commercial-aircraft-manufacturing-industry%2F%0A%20counter%201.17%20Planes%20Landed%0A%20%20https%3A%2F%2Fwww.faa.gov%2Fair_traffic%2Fby_the_numbers%0A%20%0A%20%23%23%20Animals%0A%20counter%200.00004%20Blue%20Whales%20Born%0A%20%20https%3A%2F%2Fwww.marinemammalcenter.org%2Fanimal-care%2Flearn-about-marine-mammals%2Fcetaceans%2Fblue-whale%0A%20counter%200.001%20Elephants%20Born%0A%20%20https%3A%2F%2Felephantconservation.org%2Fabout-elephants%2F25-things-to-know%2F%0A%20counter%203.1e10%20Ants%20Born%0A%20%20https%3A%2F%2Fprivateexterminator.com%2Fare-all-the-ants-as-heavy-as-all-the-humans%0A%20 Try now =================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== * Since you loaded this page... ============================= World Population ================ 4.5 Babies Born https://ourworldindata.org/births-and-deaths 4.5 Babies Born 1.7 Human Deaths https://ourworldindata.org/births-and-deaths 1.7 Human Deaths 8123456789 heart beats https://ourworldindata.org/grapher/population 8123456789 heart beats In Your Body ============ 3112123 Red Blood Cells Made https://www.ncbi.nlm.nih.gov/books/NBK2263/ 3112123 Red Blood Cells Made 3812123 Cells Made https://www.ncbi.nlm.nih.gov/books/NBK2263/ 3812123 Cells Made 2123456789123456789123 ATP molecules made https://bio.libretexts.org/Bookshelves/Human_Biology/Human_Biology_(Wakim_and_Grewal)/05%3A_Cells/5.09%3A_Cellular_Respiration 2123456789123456789123 ATP molecules made In Your Brain ============= 1.2e12 Action Potentials Fired https://www.khanacademy.org/test-prep/mcat/organ-systems/neural-synapses/a/signal-propagation-the-movement-of-signals-between-neurons 1.2e12 Action Potentials Fired 3.64e18 Ketones Consumed (Ketosis) https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7699472/ 3.64e18 Ketones Consumed (Ketosis) 4.64e18 Glucose Molecules Consumed https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3900881/ 4.64e18 Glucose Molecules Consumed World Economy ============= 2.5 Cars Made https://www.statista.com/statistics/262747/worldwide-automobile-production-since-2000/ 2.5 Cars Made 26012 Cups of Coffee Consumed https://www.rgare.com/knowledge-center/article/coffee-consumption-how-much-is-too-much-and-how-little-is-not-enough 26012 Cups of Coffee Consumed 59321 YouTubes Watched https://thesocialshepherd.com/blog/youtube-statistics 59321 YouTubes Watched Flight ====== 0.00008 Objects Launched into Space https://ourworldindata.org/grapher/yearly-number-of-objects-launched-into-outer-space 0.00008 Objects Launched into Space 0.00004 Planes Built https://www.ibisworld.com/global/market-research-reports/global-commercial-aircraft-manufacturing-industry/ 0.00004 Planes Built 1.17 Planes Landed https://www.faa.gov/air_traffic/by_the_numbers 1.17 Planes Landed Animals ======= 0.00004 Blue Whales Born https://www.marinemammalcenter.org/animal-care/learn-about-marine-mammals/cetaceans/blue-whale 0.00004 Blue Whales Born 0.001 Elephants Born https://elephantconservation.org/about-elephants/25-things-to-know/ 0.001 Elephants Born 3.1e10 Ants Born https://privateexterminator.com/are-all-the-ants-as-heavy-as-all-the-humans 3.1e10 Ants Born Computer Chips ============== 66.7 CPUS made by Intel https://www.intel.com/content/www/us/en/architecture-and-technology/global-manufacturing.html 66.7 CPUS made by Intel 6234556543 Transistors made by Nvidia https://nvidianews.nvidia.com/news/nvidia-announces-hopper-architecture-the-next-generation-of-accelerated-computing 6234556543 Transistors made by Nvidia 61234556543 Transistors made by Intel https://www.intel.com/content/www/us/en/history/museum-transistors-to-transformations-brochure.html 61234556543 Transistors made by Intel ⁂ Built with Scroll v165.3.0 ",08/02/2024,1029,5.1 +Heatrix: Heat Maps + Matrix Visualizations,heatrix.html,"Heatrix: Heat Maps + Matrix Visualizations ========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 28, 2024 [Image Omitted] A heatrix on CancerDB. https://cancerdb.com/blog/cancer-heatmaps.html A heatrix on CancerDB. July 28, 2024 Do you love those GitHub Activity Charts and want to make your own but don't know what they are called or what library to use and your work is busy and you have kids and sorry I'll call you back someone is crying? Introducing Scroll's newest parser: `heatrix`! https://scroll.pub/blog/../index.html Scroll's Try Now | Watch Video https://try.scroll.pub/#scroll%0A%20%23%20Heatrix%20Demos%0A%20%0A%20%23%23%20Adjust%20the%20height%2Fwidth%20of%20individual%20cells%2C%20columns%2C%20or%20rows%3A%0A%20heatrix%0A%20%20h20%3BScroll%20h20%3BPLDB%0A%20%20400%20700%0A%20%0A%20%23%23%20Add%20links%3A%0A%20heatrix%0A%20%20h20%3BScroll%3Bhttps%3A%2F%2Fscroll.pub%20h20%3BPLDB%3Bhttps%3A%2F%2Fpldb.io%0A%20%20400%20700%0A%20%0A%20%23%23%20Use%20numbers%20as%20labels%3A%0A%20heatrix%0A%20%20'2021%20'2017%0A%20%20400%20700%0A%20%0A%20%23%23%20Use%20your%20own%20custom%20color%20palettes%20and%20set%20your%20own%20thresholds%3A%0A%20heatrixAdvanced%0A%20%20table%0A%20%20%20%20%0A%20%20%20h10%3Bw30%20'2015%20'2016%20'2017%20'2018%20'2019%20'2020%20'2021%20'2022%20'2023%20'2024%0A%20%20%20h30%3Bw30%3B%200%200%205%201%202%2011%2015%2010%2012%2056%0A%20%20scale%0A%20%20%20%23ffebee%200%0A%20%20%20%23ffcdd2%201%0A%20%20%20%23ef9a9a%205%0A%20%20%20%23e57373%2010%0A%20%20%20%23ef5350%2025%0A%20%20%20%23b71c1c%2050 Try Now https://www.youtube.com/watch?v=ycF3k63qn1Y Watch Video ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= `heatrix` let's you craft custom heatmap visualizations with the fewest keystrokes possible. Heat Map + Matrix = Heatrix =========================== [Image Omitted] Source code. Gif made with CleanShotX. https://try.scroll.pub/#scroll%0A%20heatrix%0A%20%208%206%207%205%0A%20%2030%209 Source code https://cleanshot.com/ CleanShotX * Not just a library, it's a microlanguage! ========================================= `heatrix` is a microlang that let's you customize your visualizations using ""directives"": Adjust the height/width of individual cells, columns, or rows: ============================================================== Add links: ========== Add labels: =========== Use numbers as labels: ====================== Use your own custom color palettes and set your own thresholds: =============================================================== * Like Heatrix? There's more where that came from! ================================================ Join the World Wide Scroll Beta today! ====================================== If you like `heatrix` and want to see more stuff like this, but a folder on the World Wide Scroll beta and good things will come your way: https://wws.scroll.pub/ World Wide Scroll beta ⁂ Built with Scroll v165.3.0 ",07/28/2024,470,2.4 +Contacts: A Microlang for Managing Contacts,contacts.html,"Contacts: A Microlang for Managing Contacts =========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 16, 2024 July 16, 2024 Imagine a single plain text file named `contacts.scroll` where you stored the contact info for your family, friends, and colleagues, and you could track changes with git, compile it to a beautiful PDF or HTML page with search and sort, and it would also compile to CSV and/or JSON for import into iPhone, Android, Gmail, Outlook, et cetera? Also imagine that this tool is free, open source, and public domain. * Introducing *Contacts*, a microlanguage (currently 23 lines of code, including comments) that makes it as concise as possible to add, prune, display, print and export your contacts. https://github.com/breck7/scroll/blob/main/microlangs/contacts.parsers 23 lines of code * There's almost nothing to learn (the code is self-explanatory). In fact, it's almost guaranteed that using Contacts you will need to write less (we've taken every unnecessary character out). * Example ======= ``` 👤 Jack Doe phone +1 (555) 123-4567 email john.doe@example.com birthday 2/23/84 notes Daughter - Samantha. 👤 Jill Smith phone +1 (555) 123-4562 email jill@gmail.com birthday 1/23/80 ``` * How to use ========== 1. Create a file named something like `contacts.scroll` with this content: ``` // You can import the file, or just copy/paste the 21 lines of code here. [pathToScroll]/microlangs/contacts.parser title My Contacts buildConcepts contacts.csv contacts.json contacts.tsv buildHtml theme gazette mediumColumns 1 printTitle table printTable tableSearch 👤 Jack Doe phone +1 (555) 123-4567 email john.doe@example.com birthday 2/23/84 notes Daughter - Samantha. 👤 Jill Smith phone +1 (555) 123-4562 email jill@gmail.com birthday 1/23/80 ``` 2. Run `scroll build` Done! You should now see a contacts.html file for display and printing as well as TSV, CSV, and JSON files. https://scroll.pub/blog/../tests/contacts.html contacts.html * [Image Omitted] Contacts is interoperable with pen and paper. * What do you think? Anything that should be added/removed/improved? * Notes ===== 1. The idea for Contacts was sparked by this tweet from Tyler Tringas. https://x.com/tylertringas/status/1813239718957461528 this tweet from Tyler Tringas ⁂ Built with Scroll v165.3.0 ",07/16/2024,374,1.9 +How I Designed Helpful 404's and Stopped Worrying about Broken Links,helpful404s.html,"How I Designed Helpful 404's and Stopped Worrying about Broken Links ==================================================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 12, 2024 _Woohoo!_ Your blog is on top of Reddit! _OH NO._ There's a typo in your url. 🤦 *What do you do?* * You try to calm yourself down. _Almost no one looks at the url and the content of the article is what's important and the traffic is coming_ But then you think _all I can see is that i before e after c!_ But then you think _is that *really* a rule_ and _maybe that's how it's spelled in London?_ * You can't help yourself. It's an affront to your craftsmanship to not correct the bad filename. You know you can so easily rename the file but then existing links will break and so you'll have to add redirects but that means more files to maintain or god forbid that would require adding a server and you just love your static blog and it's almost 2pm and you have to leave and pick up the kids from school what do you do!?!! Or do you just break the links and going forward everyone will have the proper URL but everyone who clicks the old links will see an unhelpful 404 and you reflect on how great this thing that Tim Berners-Lee gave to the world is and how could you litter his creation with unhelpful 404s? * If the story above resonates with you, the bad news is you may suffer from Broken Link Phobia. Luckily, there is now a cure. * Introducing: Helpful 404's - never worry about broken links again! ================================================================== Scroll now comes with a way to generate a very helpful 404 page so your visitors will get redirected to the right place even if the URL they clicked is off by a few characters. The best part? It works entirely client side on static sites. How to use ========== *Step 1* Create a sitemap: ```sitemap.scroll buildTxt sitemap.txt baseUrl https://scroll.pub/ printSiteMap ``` *Step 2* Create a 404 page: ```404.scroll buildHtml Sorry, the url you requested was not found. helpfulNotFound sitemap.txt ``` That's it! The `helpfulNotFound` parser in Scroll will add Javascript to the 404 page that fetches all the urls found in the sitemap and shows the user the closest match. As a bonus, you also get a `sitemap.txt` file great for Google SEO and other uses. See it in action here by clicking on this intentionally broken link: https://scroll.pub/blog/helpful_404s.html intentionally broken link * I've been using Helpful 404s on all my sites for the past couple of months and it's been delightful. I no longer spend any time worrying about making improvements to URLS. I just do it and I know that users following old links will still have a good experience. * If you like stuff like Helpful 404's, there's _a lot_ more like that in Scroll, which is public domain and open source. Try it today, and if you like what we are doing please consider bringing your site to the World Wide Scroll! https://wws.scroll.pub World Wide Scroll ⁂ Built with Scroll v165.3.0 ",07/12/2024,547,2.7 +Convert CSVs to ScrollSets,csvToScrollSet.html,"Convert CSVs to ScrollSets ========================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits July 9, 2024 ScrollSets are _very_ useful once you get going. But starting from scratch could be a bit tedious. https://breckyunits.com/scrollsets.html ScrollSets Not anymore! Just drop your CSV or TSV into the textarea below to generate a ScrollSet. (P.S. using LLMs with ScrollSets is another great way to get started) https://sets.scroll.pub/ using LLMs with ScrollSets * Your Data: ========== ScrollSet: ========== Related ======= ScrollSets: source code for CSVs ================================ 04/21/2024 https://scroll.pub/blog/scrollsets.html Built with Scroll v165.3.0 ",07/09/2024,100,0.5 +Changes: A Microlang for Change Logs,changes.html,"Changes: A Microlang for Change Logs ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits [Image Omitted] July 1, 2024 Regardless of what languages you write your programs in, you probably maintain files like _changeLog.txt_ or _releaseNotes.txt_. Change logs are very helpful for: - informing your users of new features and bug fixes - providing detailed technical information to your development team (and open source contributors) - periodical data analysis for strategic project planning - how fast are we shipping new features? fixing bugs? breaking things? What if there was 1 language that let you do all 3 things at once? * Introducing Changes, a microlang (only 70 lines of code, including comments) that makes it as concise as possible to write, read and analyze change logs. https://github.com/breck7/scroll/blob/main/microlangs/changes.parsers 70 lines of code Changes generates a pretty HTML file for your end users; allows for including unlimited detailed technical information for your developers; and generates summary statistics as TSV, CSV, and JSON for your project managers. * There's almost nothing to learn (the code is self explanatory). In fact, it's almost guaranteed that using Changes you will need to write less (we've taken every unnecessary character out). * Example ======= We use Changes for the Scroll Release Notes. https://scroll.pub/blog/../releaseNotes.html Scroll Release Notes Be sure to check out the source code that generates that HTML. https://github.com/breck7/scroll/blob/main/releaseNotes.scroll check out the source code * How to use ========== 1. Install Scroll ``` npm install -g scroll-cli ``` 2. Create a release notes file: ```releaseNotes.scroll title My Release Notes printTitle buildConcepts releaseNotes.csv releaseNotes.json releaseNotes.tsv // You can import the changes parsers or just copy/paste the 70 lines into your own file. [pathToScroll]/microlangs/changes.parser thinColumns 📦 0.1.1 7/1/2024 🏥 fixed bug in command line app 📦 0.1.0 7/1/2024 🎉 added command line app endColumns ``` 3. Run `scroll build` Done! You should now see a `releaseNotes.html` file as well as a TSV, CSV, and JSON file. * What do you think? Anything that should be added/removed/improved? ⁂ Related ======= - Changelog https://en.wikipedia.org/wiki/Changelog Changelog - Release Notes https://en.wikipedia.org/wiki/Release_notes Release Notes - Major Version Numbers are Not Sacred https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred Major Version Numbers are Not Sacred - What can we learn from programming language version numbers? https://breckyunits.com/versionNumbers.html What can we learn from programming language version numbers? Built with Scroll v165.3.0 ",07/01/2024,431,2.2 +Write scatterplot to get a scatterplot,plot.html,"Write scatterplot to get a scatterplot ====================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits June 24, 2024 I _engineered on_ many innovative data science tools, including Grapher and Ohayo^engineering. https://github.com/breck7/ohayo Ohayo https://github.com/owid/owid-grapher Grapher So I was excited to see Observable launch something new: Plot. https://observablehq.com/plot/ Plot https://observablehq.com/ Observable * Plot is already great on its own. It handles many of the hard parts of data vis, and it's open source, so we can help them fix the parts that are still a little rough. https://github.com/observablehq/plot open source But I found a way to take Plot to the next level: I combined it with Scroll. https://scroll.pub/blog/../index.html Scroll The Plot/Scroll integration is early, but I can already tell it will evolve into a _very useful_ data science tool. * A Scatterplot with 2 words ========================== You can now make scatterplots with 2 words. Obviously you want to add a few more words, but I don't think I'm exaggerating when I say that this is the simplest way to generate a scatterplot now and forever will be (until the day when we have mind-reading machines that can generate a scatterplot with zero words). But enough talk, let's see some code. A tutorial is below. To follow along, create a new website in 1 second using ScrollHub or install Scroll locally with `npm install -g scroll-cli`. http://hub.scroll.pub ScrollHub * Step 1: Generate a scatterplot with 2 words =========================================== * Step 2: Add a title =================== * Step 3: Add inline data ======================= * Step 4: Everything everywhere all at once ========================================= * That's it (for now)! If you like where this is headed, give us a star on GitHub. https://github.com/breck7/scroll give us a star on GitHub ⁂ ^engineering: The difference between programming and engineering? It takes programming to make a program that works. It takes engineering to make a program that _barely_ works. Built with Scroll v165.3.0 ",06/24/2024,342,1.7 +Stamp: a microlang for project templates,stamp.html,"Stamp: a microlang for project templates ======================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits June 23, 2024 Regardless if you specialize in React, Rails, Django, Next, Java, C#, or ObjectiveC, you probably use _templates_ to start new projects. Templates generate a handful of files like `readme.md`, `.gitignore`, and `main`. They also initialize a handful of directories like `src/` and `tests/`. What if it was even easier to make, edit and use these templates? * Introducing Stamp, a microlang (only 60 lines of code, including comments) that makes it as concise as possible to write, edit, share and expand project templates. https://github.com/breck7/scroll/blob/main/parsers/stamp.parsers 60 lines of code * How to use ========== 1. Install Scroll ``` npm install -g scroll-cli ``` 2. Create `myFirstStamp.scroll` ``` stamp .gitignore *.html readme.scroll # My First Stamp scripts/ hello.js console.log(""Hello world"") ``` 3. Run `scroll build` Done! * Stamp was jointly created by me and Guillaume Papin. Other tools (listed below) do similar things, but with some slight differences. https://github.com/Sarcasm Guillaume Papin https://github.com/breck7/scrollsdk/issues/120 jointly created ⁂ [Image Omitted] Prior Art ========= - cookiecutter https://github.com/cookiecutter/cookiecutter cookiecutter - Dired https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html Dired - vimv https://github.com/thameera/vimv vimv - ptar https://github.com/jtvaughan/ptar ptar - shar https://en.wikipedia.org/wiki/Shar shar - dar http://dar.linux.free.fr/ dar - metatar https://github.com/xyproto/metatar metatar - txtar https://pkg.go.dev/golang.org/x/tools@v0.1.0/txtar txtar - Archiving files in plain text https://blog.oquijano.net/id/9?lang=en Archiving files in plain text - Wikipedia list of archive formats https://en.wikipedia.org/wiki/List_of_archive_formats Wikipedia list of archive formats Built with Scroll v165.3.0 ",06/23/2024,300,1.5 +Scroll builds text files,textFiles.html,"Scroll builds text files ======================== by Breck Yunits https://breckyunits.com Breck Yunits HTML | TXT link textFiles.html HTML link textFiles.txt TXT April 29, 2024 Scroll is a new language for building HTML and CSV files that powers blogs, websites and knowledge bases. https://scroll.pub/blog/scrollsets.html knowledge bases https://scroll.pub/blog/../index.html Scroll * I often need plain text outputs in addition to HTML files. I used to make those plain text versions copying and pasting text by hand. Now Scroll has plain text output built-in. * How do I tell Scroll to build plain text files? =============================================== Add a single line: `buildTxt` ```example.scroll buildTxt Hello world. ``` `scroll build` will create `example.txt`. Done! * You may want to put `buildTxt` into `header.scroll` or `footer.scroll` to build text files for many pages at once. * I've *loved* this new feature in Scroll. Plain text is a *timeless* way to read, review, and share your thoughts! Hope you enjoy it as much as I have! ⁂ Built with Scroll v165.3.0 ",04/29/2024,175,0.9 +ScrollSets: source code for CSVs,scrollsets.html,"ScrollSets: source code for CSVs ================================ by Breck Yunits https://breckyunits.com Breck Yunits [Image Omitted] More examples of ScrollSets from sets.scroll.pub. https://sets.scroll.pub/ sets.scroll.pub April 21, 2024 The source code for this blog post contains a ScrollSet about the planets and generates this HTML file as well as a CSV, a TSV, and a JSON file. This page demonstrates *ScrollSets*. https://scroll.pub/blog/scrollsets.scroll source code for this blog post https://scroll.pub/blog/planets.csv CSV https://scroll.pub/blog/planets.tsv TSV https://scroll.pub/blog/planets.json JSON ScrollSets are useful for small single day projects and large multi-year projects with thousands of concepts like PLDB (a Programming Language Database). https://pldb.io PLDB * ScrollSets are normal plain text files written in Scroll that also contain measurements of concepts and output that data into formats ready for data visualization and analysis tools. https://scroll.pub/ Scroll ScrollSets are line oriented but represent a table(s). You might call them _deconstructed csvs_ or _deconstructed spreadsheets_. - Use LLMs to *instantly generate ScrollSets* that are ready for human verification and improvement. - Intermingle structured data with markup to *annotate any and every part of a ScrollSets* while still generating strict tabular files for data analysis tools. - Put data, schema, citations, and documentation *all* in one (or more) plain text file(s) to easily share, collaborate on, and improve, all *tracked by git for trust*. - Add unlimited citations (or none) to *every* measurement. Quick Code Example: =================== ```planets.scroll This ScrollSets has 2 measures (columns) and 2 concepts (rows). Documentation, column definitions, rows and *any notes/markup/content* can go in the same file. # Measures (aka Header, aka Columns, aka Schema) idParser // Every concept needs an ""id"" (or other concept delimiter) extends abstractIdParser moonsParser extends abstractIntegerParser # Concepts (aka Rows) id mars moons 2 // I verified moon count with Google. - BY id jupiter moons 63 // Note: the moons of Jupiter have their own Wikipedia Page https://en.wikipedia.org/wiki/Moons_of_Jupiter moons of Jupiter buildConcepts demo.csv ``` The code above generates an HTML page and this: =============================================== ```demo.csv id,moons mars,2 jupiter,63 ``` Overview: ========= - ScrollSets are built from 4 atomic elements: - concepts - think of rows in a spreadsheet - denoted by a line starting with `id ` - concepts are multiple lines of measurements - measures - think of these as the column names in a spreadsheet, along with meta information about the column - aka ""parsers"" - measures are defined in Parsers that start with a line like `moonsParser` - values - these are just the values of the measurements - measurements - concept & measure & value = measurement - 1 measurement = 1 line - measurements can have nested comments that are stripped when compiling to TSV/CSV How to use ========== - A concept is like a row in a database. All concepts need an id (or other concept delimiter). When you write `id [conceptId]`, Scroll knows that is the beginning of a new concept. - Measure definitions (aka ""parsers"") must come before the first concept and are written as Parsers, just like any other Scroll Parser. Measure parsers need to extend one of the abstract measure parser classes defined in `measures.scroll`. - Measurements are then done like this `appeared 2024` FAQ === Isn't the better idea to enhance existing spreadsheet GUIs with LLM generation capabilities? ============================================================================================ Almost certainly. Using ScrollSets will be much slower and worse than future spreadsheet apps with carefully crafted LLM integrations. However, it's important to also have simple, lower tech, timeless tools and ScrollSets is one of those. Can't you do this same thing with YAML and/or Markdown? ======================================================= Yes! You can easily achieve the same thing as LLMs & ScrollSets using LLMs & YAML, or LLMs & YAML & Markdown. https://yaml.org/ YAML https://github.github.com/gfm/ Markdown For YAML, just put your documentation and schema in YAML comments up top and then have a tiny script to read that YAML and dump CSV/TSV/JSON or whatever. YAML gives you loads of data structures to use and is widely supported in many languages. But generating HTML from the same file would require more work. If you want to intermix markup content with your data, you can use Markdown to add the marked up content and then have code sections embedding the YAML and a tiny script to parse out those YAML blocks and write your data to disk. So, why use Scroll for storing data instead of YAML? ==================================================== Either can do the job. I expect the Scroll design to end up being more ergonomic, but that might not be true or may be unimportant. If you don't like Scroll's (evolving) version and want to switch it will always be straightforward to automatically refactor to YAML. What other related work is out there? ===================================== This is a simple pattern to implement, so I'm sure it is likely it has been done a few times before. Please let me know so I can include links to--and learn from--any other prior art. What are the advanced features? =============================== - Types correctly exported in JSON - Supports nested measures - Support for computed measures - Autojoins across files on ids^roadmap - Auto generates normalized tables for array measures^roadmap - Support for text blobs^roadmap ^roadmap: Planned. What is the origin of ScrollSets? ================================= LLM dataset generation is a _major_ breakthrough in datasets. ScrollSets are, at best, a minor improvement. They are designed to work alongside LLMs to help solve the Dataset Needed problem. https://breckyunits.com/dataset-needed.html Dataset Needed ScrollSets evolved out of TrueBase. ScrollSets have eliminated the need for the TrueBase software (and existing TrueBase sites should be migrated to ScrollSets), but were informed by the TrueBase build experience. https://truebase.treenotation.org TrueBase Although ScrollSets are designed for a world with LLMs, the design is meant to be useful without them as well, and would also have been mildly useful 30 years ago. What were the design goals? =========================== - Have an LLM do the bulk of the work while humans supervise to remove hallucinations. - Can store everything (documentation, schema, all concepts) in 1 clean plain text file or split into many files (using the `import` parser). - The ScrollSet syntax balances _looseness_ useful in creative thinking with the _tightness_ needed by tabular data visualization and analysis tools. Why are measures and concepts root-level features and not indented? =================================================================== The normal way to implement this in Scroll would be something like: ``` measures id string moons int concept id mars moons 2 concept id jupiter moons 63 ``` The flat design was chosen for ergonomic reasons. ScrollSets seem like they might be useful enough to be worth breaking from Scroll convention a bit. Like all things in Scroll, ScrollSets are an experiment, and maybe this design will evolve. Extended Example: a Planets ScrollSet ===================================== Below is the ScrollSet embedded in this Scroll file. Measurements of the measures ============================ Extended Measures Example ========================= Extended Concepts Example ========================= Related ======= Built with Scroll v165.3.0 ",04/21/2024,1148,5.7 +Introducing Program Links,programLinks.html,"Introducing Program Links ========================= by Breck Yunits https://twitter.com/breckyunits Breck Yunits May 8, 2023 May 8, 2023 Some web apps are designed to load _entire programs_ from a link. But if a program contain certain characters, such as _newlines_, those links won't work as-is. To create working links you have to run them through `encodeURIComponent`. * If you are creating blog content by hand this is annoying. To update a program link you have to keep a copy of the program, update that, then run `encodeURIComponent`, then paste the result into your post. Today's release of Scroll includes a small new addition that solves this problem. You can call them ""Multline Links"" or ""Program Links"". * Here are two examples ===================== Here is a program link to the Scroll web app. https://try.scroll.pub/#scroll%0A%20%23%20Testing%20Program%20Links%0A%20It%20worked!%0A%20%20style%20color%3Agreen%3B%20font-size%3A%20100px%3B program link If you click that link you should see ""It worked!"" in big green text. * Now let's show a complex real world example. The link below contains a 28 line program pasted verbatim from the Ohayo data science studio. See code Discovery of the Elements https://ohayo.breckyunits.com?filename=test.ohayo&data=doc.title%20Discovery%20of%20the%20Elements%0Adoc.subtitle%20What%20is%20the%20growth%20in%20known%20elements%20over%20time%3F%0Asamples.periodicTable%0A%20hidden%0A%20fill.missing%20Year%201000%0A%20%20hidden%0A%20%20columns.keep%20Element%20Year%0A%20%20%20hidden%0A%20%20%20rows.sortBy%20Year%0A%20%20%20%20hidden%0A%20%20group.by%20Year%0A%20%20%20hidden%0A%20%20%20rows.sortBy%20Year%0A%20%20%20%20hidden%0A%20%20%20%20rows.runningTotal%20count%0A%20%20%20%20%20hidden%0A%20%20%20%20%20vega.bar%20Number%20of%20Elements%20Found%20Each%20Year%0A%20%20%20%20%20%20xColumn%20Year%0A%20%20%20%20%20%20yColumn%20count%0A%20%20%20%20%20vega.line%20Cumulative%20Number%20of%20Elements%0A%20%20%20%20%20%20xColumn%20Year%0A%20%20%20%20%20%20yColumn%20total%0A%20vega.scatter%20Year%20of%20Discovery%20by%20Atomic%20Number%0A%20%20xColumn%20Year%0A%20%20yColumn%20AtomicNumber%0A%20tables.basic%0A%20%20rowDisplayLimit%20200%0Adoc.categories%20chemistry Discovery of the Elements If you click that link you should see a few data visualizations generated from that program. Edit the source and the link will update accordingly. Scroll handles the `encodeURIComponent`. * Why not use HTML directly? ========================== Modern browsers do their best to make URLs well-formed and you will notice that they auto encode certain characters like spaces. But by the HTML spec newlines are not a URL code point and generally are stripped and collapsed. https://url.spec.whatwg.org/#url-code-points URL code point https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace stripped and collapsed Program Links in Scroll handle encoding newlines and any other special characters so you can focus on your content and not the encoding. Built with Scroll v165.3.0 ",05/08/2023,510,2.5 +Counterpoints: A new tool for thought in the Scroll Language,counterpoints.html,"Counterpoints: A new tool for thought in the Scroll Language ============================================================ by Breck Yunits https://twitter.com/breckyunits Breck Yunits April 13, 2023 Improve your writing by welcoming counterarguments ================================================== April 13, 2023 There's a tiny new symbol in Scroll today: `!`. https://scroll.pub/ Scroll The exclamation mark stands for *Counterpoint*. ""Counters"" aim to help writers strengthen their ideas by encouraging the integration of counterarguments throughout their essays. You can write your own counters or invite counters from friends, LLMs or Internet commenters. * Counterpoints are easy to use: just start a line with `!`. For example: ``` Humans will eventually establish colonies on Mars. ! But we haven't colonized the Arctic, 1,000x easier ``` You can go as deep as you want in countering your own counters! ``` Humans will eventually establish colonies on Mars. ! But we haven't colonized the Arctic, 1,000x easier - Colonizing Mars is 10,000x more valuable ``` * The Benefits of Countering ========================== When we have a lot of terms for a thing, it's usually a hint that it's a valuable thing. And we have a lot of terms for countering. To name a few: - ""Steel manning"" - ""red teaming"" - ""playing devil's advocate"" Countering is a helpful habit that helps clarify your thoughts, understand and empathize with other perspectives, fix logical blunders, hone your pitch, and improve at truth-seeking. Counterpoints in Scroll are in a sense just a reminder to frequently use these techniques. * The Downsides of Countering =========================== Addressing every plausible counter in your main thread can be difficult if not impossible. It can make your writing too verbose and lose reader interest. Counters in Scroll give you a place to record every scattered counter as it comes to you. You can then choose which are important enough to address in your main argument and relegate the rest to the source code (for the very avid reader). * Implementation ============== Counterpoints do not currently appear in the compiled HTML. Instead you only see them during write time. For now, they are just an alternate syntax for comments. But though they perform no new function, like traffic lines, sometimes form is function. That being said, there are potentially interesting directions this could go in the future, and it would be interesting to hear ideas of what people would like in a v2. * Keep writing, keep thinking! ⁂ Built with Scroll v165.3.0 ",04/13/2023,391,2 +Introducing the Blink Tag,introducingBlink.html,"Introducing the Blink Tag ========================= by Breck Yunits https://github.com/breck7 Breck Yunits October 2, 2022 October 2, 2022 *Scroll's new blink tag lets you call attention to something important* I am really happy with the current state of Scroll and so grateful for the many people who have helped us get it to this point. That being said, I had a feeling we were missing something important. * *So I invented something simple and completely novel* Introducing the `blink` tag. When you have something important to say and you want to interupt people's lives, use the `blink` tag. It's as easy as this: ``` blink This blinks ``` Advertisers have known for ages that human eyes evolved to respond fast to motion. Now, using my new invention, the `blink` tag, you can bring this innovation from advertising to your products and websites. *The blink tag, available now in Scroll 34.1.0* https://scroll.pub/ Scroll 34.1.0 _Note: please don't use this. It's a joke_ Built with Scroll v165.3.0 ",10/02/2022,176,0.9 +"The Power of Indented Heredocs: Markdown, Textile, and BBCode in one file with no escaping",indented-heredocs.html,"The Power of Indented Heredocs: Markdown, Textile, and BBCode in one file with no escaping ========================================================================================== by Breck Yunits https://github.com/breck7 Breck Yunits August 23, 2021 Scroll is a new language and static site generator that is mostly written in Parsers which are both built on a new syntax called Particles. * In this demo, I extend Scroll by adding support for Markdown, Textile, and BBCode. I want to demonstrate how easy it is to compose many languages into one using Particles, which is due to what you might call the Indented or Off-side Heredoc pattern. https://en.wikipedia.org/wiki/Markdown Markdown https://en.wikipedia.org/wiki/Textile_(markup_language) Textile https://en.wikipedia.org/wiki/BBCode BBCode My implementation is still _researchy_—Parsers still needs a lot of work—but my main point here is to demo how _simple and powerful indented heredocs are_. They allow you to compose unlimited languages in one file in a clean and scalable way. You don't need escaping. I think this is a very helpful pattern you can use in your own languages and code. Traditional Heredocs ==================== Traditional heredocs use start and end delimiters, like these examples from Ruby and Python and Markdown: ``` # Heredoc in Ruby puts Particles is that it is just indented or off-side HereDocs. Or in colloquial academic speak _The Off-Side Rule is all you need_. Most people learn of the off-side rule via Python. Imagine if your whole language was just the off-side rule. That's basically Particles. But my code is not the important thing—the important thing is this pattern. Try it yourself—I bet you will love it. https://en.wikipedia.org/wiki/Off-side_rule Off-Side Rule https://en.wikipedia.org/wiki/Here_document HereDocs Extended Examples ================= Markdown ======== Textile ======= BBCode ====== Built with Scroll v165.3.0 ",08/23/2021,306,1.5 -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/stamp.html b/blog/stamp.html index 60b3d9b7b..d30f747c4 100644 --- a/blog/stamp.html +++ b/blog/stamp.html @@ -3,13 +3,13 @@ Stamp: a microlang for project templates - + - + @@ -99,7 +99,7 @@ - + \ No newline at end of file diff --git a/blog/stamp.txt b/blog/stamp.txt index 383be94f8..ac007ee61 100644 --- a/blog/stamp.txt +++ b/blog/stamp.txt @@ -78,4 +78,4 @@ Prior Art - Wikipedia list of archive formats https://en.wikipedia.org/wiki/List_of_archive_formats Wikipedia list of archive formats -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/tables.html b/blog/tables.html index a20392837..5f8c38d41 100644 --- a/blog/tables.html +++ b/blog/tables.html @@ -3,13 +3,13 @@ Tables: a microlang for data science - + - + @@ -76,7 +76,7 @@ - + \ No newline at end of file diff --git a/blog/tables.txt b/blog/tables.txt index 3693d261c..574409180 100644 --- a/blog/tables.txt +++ b/blog/tables.txt @@ -35,4 +35,4 @@ Tables evolved over the past decade primarily by: - thinking about what would be the best tool for Max Roser and Hannah Ritchie. https://ourworldindata.org/ Max Roser and Hannah Ritchie -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/teddyTalk.html b/blog/teddyTalk.html index 528a75367..3103d9594 100644 --- a/blog/teddyTalk.html +++ b/blog/teddyTalk.html @@ -3,13 +3,13 @@ A New Way to Program - + - + @@ -98,7 +98,7 @@ - + \ No newline at end of file diff --git a/blog/teddyTalk.txt b/blog/teddyTalk.txt index 42496c1f8..efec38ff2 100644 --- a/blog/teddyTalk.txt +++ b/blog/teddyTalk.txt @@ -94,4 +94,4 @@ Subreddit ⁂ -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/blog/textFiles.html b/blog/textFiles.html index b1e42829a..7af71bce7 100644 --- a/blog/textFiles.html +++ b/blog/textFiles.html @@ -3,13 +3,13 @@ Scroll builds text files - + - + @@ -78,7 +78,7 @@ - + \ No newline at end of file diff --git a/blog/textFiles.txt b/blog/textFiles.txt index 07720b1d5..033b3f112 100644 --- a/blog/textFiles.txt +++ b/blog/textFiles.txt @@ -50,4 +50,4 @@ Hope you enjoy it as much as I have! ⁂ -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/cloc.html b/cloc.html index 6bebed17c..fa7382e41 100644 --- a/cloc.html +++ b/cloc.html @@ -3,13 +3,13 @@ Scroll Cloc Stats - + - + @@ -57,10 +57,10 @@

      Files

      -
      +


      Code

      -
      +
      @@ -72,17 +72,17 @@ - + - + - + - + - + @@ -138,11 +138,11 @@ - + - + - +
      filescode
      110
      111 Parsers355356 069266948
      140 Scroll19541955 054365439
      12 JavaScript0 1
      278
      279 SUM25042506 911374913774
      \ No newline at end of file diff --git a/download.txt b/download.txt index e5a6f1786..8cd7d6196 100644 --- a/download.txt +++ b/download.txt @@ -11,4 +11,4 @@ wws fetch scroll You can also download it as a zip file. https://github.com/breck7/scroll/archive/refs/heads/wws.zip zip file -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/faq.html b/faq.html index 31f680db4..02cd46e2a 100644 --- a/faq.html +++ b/faq.html @@ -3,13 +3,13 @@ Scroll FAQ - + - + @@ -399,7 +399,7 @@ - + \ No newline at end of file diff --git a/faq.txt b/faq.txt index 7c7c72d46..4c9a52549 100644 --- a/faq.txt +++ b/faq.txt @@ -2,17 +2,17 @@ Scroll FAQ ========== Scroll Tutorial =============== -01/08/2025 +01/09/2025 https://scroll.pub/tutorial.html Scroll Roadmap ============== -01/08/2025 +01/09/2025 https://scroll.pub/roadmap.html Scroll Release Notes ==================== -01/08/2025 +01/09/2025 https://scroll.pub/releaseNotes.html A list of Frequently Asked Questions @@ -536,4 +536,4 @@ Why the name Scroll? ==================== The scroll was invented thousands of years ago and scrolls are still useful today. Scroll has been designed with a focus on simplicity and a goal of making something that would have been useful decades ago, with the hope that this will make it useful decades into the future. -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/index.html b/index.html index a26e46797..ed8ac2856 100644 --- a/index.html +++ b/index.html @@ -3,13 +3,13 @@ Scroll is a language for scientists of all ages - + - + @@ -80,7 +80,7 @@ - + \ No newline at end of file diff --git a/index.txt b/index.txt index 1cfec438b..187978344 100644 --- a/index.txt +++ b/index.txt @@ -34,4 +34,4 @@ scroll prompt · parser prompt https://scroll.pub/scrollPrompt.txt scroll prompt https://scroll.pub/parserPrompt.txt parser prompt -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/leetsheet.csv b/leetsheet.csv index a73404bc0..bd18feb2b 100644 --- a/leetsheet.csv +++ b/leetsheet.csv @@ -210,6 +210,7 @@ nav,,Titles and links in group(s).,5,printSnippets index, nickelbackIpsum,,Generate dummy text.,0,, notices,,Display messages in URL query parameters.,0,, openGraphImage,,Override Open Graph Image.,80,, +p,,A paragraph.,189,p I had a _new_ idea., permalink,,Override output filename.,27,, plainText,,Plain text oneliner or block.,0,, plainTextOnly,,Only print for buildTxt.,8,, @@ -255,6 +256,11 @@ scatterplot", script,,Print script tag.,0,, scrollForm,,Generate a Scroll Form.,640,, scrollVersionLink,,Print Scroll version.,630,, +section,,HTML section tag.,753,"section +# Hello world +p This is a test +section + # Deeper", slideshow,,Slideshow widget. *** delimits slides.,0,"slideshow Why did the cow cross the road? *** diff --git a/leetsheet.html b/leetsheet.html index 1cf655e0e..191493bca 100644 --- a/leetsheet.html +++ b/leetsheet.html @@ -3,13 +3,13 @@ Scroll LeetSheet - + - + @@ -176,6 +176,7 @@
      nickelbackIpsum Generate dummy text.
      notices Display messages in URL query parameters.
      openGraphImage Override Open Graph Image.
      +
      p A paragraph.
      permalink Override output filename.
      plainText Plain text oneliner or block.
      plainTextOnly Only print for buildTxt.
      @@ -208,6 +209,7 @@
      script Print script tag.
      scrollForm Generate a Scroll Form.
      scrollVersionLink Print Scroll version.
      +
      section HTML section tag.
      slideshow Slideshow widget. *** delimits slides.
      sparkline Sparkline widget.
      stamp Expand project template to disk.
      @@ -268,7 +270,7 @@ - + \ No newline at end of file diff --git a/leetsheet.json b/leetsheet.json index caa609fa1..c0aae1b0a 100644 --- a/leetsheet.json +++ b/leetsheet.json @@ -732,6 +732,12 @@ "description": "Override Open Graph Image.", "popularity": 80 }, + { + "id": "p", + "description": "A paragraph.", + "popularity": 189, + "example": "p I had a _new_ idea." + }, { "id": "permalink", "description": "Override output filename.", @@ -894,6 +900,12 @@ "description": "Print Scroll version.", "popularity": 630 }, + { + "id": "section", + "description": "HTML section tag.", + "popularity": 753, + "example": "section\n # Hello world\n p This is a test\n section\n # Deeper" + }, { "id": "slideshow", "description": "Slideshow widget. *** delimits slides.", diff --git a/leetsheet.txt b/leetsheet.txt index 7be1e863e..ceae92690 100644 --- a/leetsheet.txt +++ b/leetsheet.txt @@ -126,6 +126,7 @@ nav - Titles and links in group(s). nickelbackIpsum - Generate dummy text. notices - Display messages in URL query parameters. openGraphImage - Override Open Graph Image. +p - A paragraph. permalink - Override output filename. plainText - Plain text oneliner or block. plainTextOnly - Only print for buildTxt. @@ -158,6 +159,7 @@ scatterplot - Scatterplot Widget. script - Print script tag. scrollForm - Generate a Scroll Form. scrollVersionLink - Print Scroll version. +section - HTML section tag. slideshow - Slideshow widget. *** delimits slides. sparkline - Sparkline widget. stamp - Expand project template to disk. @@ -192,4 +194,4 @@ Links - ScrollHub · Try Scroll · r/WorldWideScroll · Parsers LeetSheet · Par Parser usage rankings A rough _estimate_ of the parser usage in Scroll. Not all parsers have stats available yet. -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index df5db3437..366b00530 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,6 +1,6 @@ { "name": "scroll-cli", - "version": "165.2.0", + "version": "165.3.0", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package-lock.json b/package-lock.json index ac375489f..eaad3ebda 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "scroll-cli", - "version": "165.2.0", + "version": "165.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "scroll-cli", - "version": "165.2.0", + "version": "165.3.0", "dependencies": { "d3": "^6.7.0", "dayjs": "^1.11.7", diff --git a/package.json b/package.json index 6ce6650d9..4b1d656b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "scroll-cli", - "version": "165.2.0", + "version": "165.3.0", "description": "A language for scientists of all ages. A curated collection of tools for refining and sharing thoughts.", "main": "scroll.js", "engines": { diff --git a/pages.csv b/pages.csv index 0f684ee3c..1b657683b 100644 --- a/pages.csv +++ b/pages.csv @@ -1,24 +1,24 @@ date,year,title,permalink,authors,tags,wordCount,minutes -01/08/2025,2025,Top Buttons,topButtons.html,,,0,0 -01/08/2025,2025,Scroll Tutorial,tutorial.html,,main,949,4.7 -01/08/2025,2025,Wws,wws.html,,,35,0.2 -01/08/2025,2025,Wws Redirect,wws.html,,,0,0 -01/08/2025,2025,Particles LeetSheet,particlesLeetsheet.html,,,124,0.6 -01/08/2025,2025,Scroll is a language for scientists of all ages,index.html,,,168,0.8 -01/08/2025,2025,Readme Prompt,readmePrompt.html,,,20589,102.9 -01/08/2025,2025,Scroll Release Notes,releaseNotes.html,,main,15799,79 -01/08/2025,2025,Scroll Roadmap,roadmap.html,,main,137,0.7 -01/08/2025,2025,Scroll Prompt,scrollPrompt.html,,,4513,22.6 -01/08/2025,2025,Settings,settings.html,,,0,0 -01/08/2025,2025,Sitemap,sitemap.html,,,115,0.6 -01/08/2025,2025,Scroll LeetSheet,leetsheet.html,,,965,4.8 -01/08/2025,2025,Parsers LeetSheet,parserLeetsheet.html,,,295,1.5 -01/08/2025,2025,Parser Prompt,parserPrompt.html,,,21997,110 -01/08/2025,2025,Parser Usage,parserUsage.html,,,272,1.4 -01/08/2025,2025,Parsers,parsers.html,,,21595,108 -01/08/2025,2025,Scroll FAQ,faq.html,,main,3307,16.5 -01/08/2025,2025,Header,header.html,,,0,0 -01/08/2025,2025,Ci Badges,ciBadges.html,,,12,0.1 -01/08/2025,2025,Scroll Cloc Stats,cloc.html,,,66,0.3 -01/08/2025,2025,Download Scroll.pub,download.html,,,49,0.2 -01/08/2025,2025,Animation,animation.html,,,13,0.1 \ No newline at end of file +01/09/2025,2025,Top Buttons,topButtons.html,,,0,0 +01/09/2025,2025,Scroll Tutorial,tutorial.html,,main,949,4.7 +01/09/2025,2025,Wws,wws.html,,,35,0.2 +01/09/2025,2025,Wws Redirect,wws.html,,,0,0 +01/09/2025,2025,Particles LeetSheet,particlesLeetsheet.html,,,124,0.6 +01/09/2025,2025,Scroll is a language for scientists of all ages,index.html,,,168,0.8 +01/09/2025,2025,Readme Prompt,readmePrompt.html,,,20599,103 +01/09/2025,2025,Scroll Release Notes,releaseNotes.html,,main,15809,79 +01/09/2025,2025,Scroll Roadmap,roadmap.html,,main,137,0.7 +01/09/2025,2025,Scroll Prompt,scrollPrompt.html,,,4513,22.6 +01/09/2025,2025,Settings,settings.html,,,0,0 +01/09/2025,2025,Sitemap,sitemap.html,,,115,0.6 +01/09/2025,2025,Scroll LeetSheet,leetsheet.html,,,972,4.9 +01/09/2025,2025,Parsers LeetSheet,parserLeetsheet.html,,,295,1.5 +01/09/2025,2025,Parser Prompt,parserPrompt.html,,,22053,110.3 +01/09/2025,2025,Parser Usage,parserUsage.html,,,272,1.4 +01/09/2025,2025,Parsers,parsers.html,,,21649,108.2 +01/09/2025,2025,Scroll FAQ,faq.html,,main,3307,16.5 +01/09/2025,2025,Header,header.html,,,0,0 +01/09/2025,2025,Ci Badges,ciBadges.html,,,12,0.1 +01/09/2025,2025,Scroll Cloc Stats,cloc.html,,,66,0.3 +01/09/2025,2025,Download Scroll.pub,download.html,,,49,0.2 +01/09/2025,2025,Animation,animation.html,,,13,0.1 \ No newline at end of file diff --git a/parserLeetsheet.html b/parserLeetsheet.html index 2a37ad6dd..20a61d40b 100644 --- a/parserLeetsheet.html +++ b/parserLeetsheet.html @@ -3,13 +3,13 @@ Parsers LeetSheet - + - + @@ -207,7 +207,7 @@ - + \ No newline at end of file diff --git a/parserLeetsheet.txt b/parserLeetsheet.txt index e52d75e6e..d61abdf36 100644 --- a/parserLeetsheet.txt +++ b/parserLeetsheet.txt @@ -74,4 +74,4 @@ count id 1 tagsParser 1 rootFlagParser -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/parserPrompt.txt b/parserPrompt.txt index 1a62133c0..d6889225a 100644 --- a/parserPrompt.txt +++ b/parserPrompt.txt @@ -75,7 +75,10 @@ stamp if (tag === "none") // Allow no tag for aftertext in tables return this.text const id = this.has("id") ? "" : `id="${this.htmlId}" ` // always add an html id - return this.getHtmlRequirements(buildSettings) + `${this.text}${this.closingTag}` + return this.getHtmlRequirements(buildSettings) + `${this.htmlContents}${this.closingTag}` + } + get htmlContents() { + return this.text } get closingTag() { const tag = this.get("tag") || this.tag @@ -3980,18 +3983,24 @@ stamp example * I had a _new_ idea. + pParagraphParser + popularity 0.001881 + cue p + extends scrollParagraphParser + description A paragraph. + boolean isArticleContent true + example + p I had a _new_ idea. + abstractIndentableParagraphParser extends scrollParagraphParser inScope abstractAftertextDirectiveParser abstractAftertextAttributeParser abstractIndentableParagraphParser javascript - compileSubparticles() { - return this.map(particle => particle.buildHtml()) + get htmlContents() { + return this.text + this.map(particle => particle.buildHtml()) .join("\n") .trim() } - buildHtml() { - return super.buildHtml() + this.compileSubparticles() - } buildTxt() { return this.getAtom(0) + " " + super.buildTxt() } @@ -5206,7 +5215,7 @@ stamp } get scrollVersion() { // currently manually updated - return "165.2.0" + return "165.3.0" } // Use the first paragraph for the description // todo: add a particle method version of get that gets you the first particle. (actulaly make get return array?) @@ -5816,6 +5825,21 @@ stamp return `Built with Scroll v${this.root.scrollVersion}` } + sections.parsers + scrollSectionParser + popularity 0.007524 + description HTML section tag. + extends abstractIndentableParagraphParser + inScope abstractAftertextDirectiveParser abstractAftertextAttributeParser abstractIndentableParagraphParser scrollParagraphParser + cue section + example + section + # Hello world + p This is a test + section + # Deeper + javascript + tag = "section" sitemaps.parsers // https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap#text printSiteMapParser diff --git a/parserUsage.csv b/parserUsage.csv index 5cd88225c..512ae4aa9 100644 --- a/parserUsage.csv +++ b/parserUsage.csv @@ -1,7 +1,7 @@ parserId,uses -blankLineParser,1132 -versionParser,632 -newFeatureParser,567 +blankLineParser,1133 +versionParser,633 +newFeatureParser,569 catchAllParagraphParser,268 bugFixParser,241 breakingChangeParser,228 diff --git a/parsers/aftertext.parsers b/parsers/aftertext.parsers index 156ec3707..af4b5c7b3 100644 --- a/parsers/aftertext.parsers +++ b/parsers/aftertext.parsers @@ -73,7 +73,10 @@ abstractAftertextParser if (tag === "none") // Allow no tag for aftertext in tables return this.text const id = this.has("id") ? "" : `id="${this.htmlId}" ` // always add an html id - return this.getHtmlRequirements(buildSettings) + `<${tag} ${id}${this.htmlAttributes}${classAttr}${styles}>${this.text}${this.closingTag}` + return this.getHtmlRequirements(buildSettings) + `<${tag} ${id}${this.htmlAttributes}${classAttr}${styles}>${this.htmlContents}${this.closingTag}` + } + get htmlContents() { + return this.text } get closingTag() { const tag = this.get("tag") || this.tag diff --git a/parsers/paragraphs.parsers b/parsers/paragraphs.parsers index a58dabbc2..8bee032b5 100644 --- a/parsers/paragraphs.parsers +++ b/parsers/paragraphs.parsers @@ -30,18 +30,24 @@ quickParagraphParser example * I had a _new_ idea. +pParagraphParser + popularity 0.001881 + cue p + extends scrollParagraphParser + description A paragraph. + boolean isArticleContent true + example + p I had a _new_ idea. + abstractIndentableParagraphParser extends scrollParagraphParser inScope abstractAftertextDirectiveParser abstractAftertextAttributeParser abstractIndentableParagraphParser javascript - compileSubparticles() { - return this.map(particle => particle.buildHtml()) + get htmlContents() { + return this.text + this.map(particle => particle.buildHtml()) .join("\n") .trim() } - buildHtml() { - return super.buildHtml() + this.compileSubparticles() - } buildTxt() { return this.getAtom(0) + " " + super.buildTxt() } \ No newline at end of file diff --git a/parsers/root.parsers b/parsers/root.parsers index 7179adeae..fd99c3b15 100644 --- a/parsers/root.parsers +++ b/parsers/root.parsers @@ -357,7 +357,7 @@ scrollParser } get scrollVersion() { // currently manually updated - return "165.2.0" + return "165.3.0" } // Use the first paragraph for the description // todo: add a particle method version of get that gets you the first particle. (actulaly make get return array?) diff --git a/parsers/sections.parsers b/parsers/sections.parsers new file mode 100644 index 000000000..78be14f4c --- /dev/null +++ b/parsers/sections.parsers @@ -0,0 +1,14 @@ +scrollSectionParser + popularity 0.007524 + description HTML section tag. + extends abstractIndentableParagraphParser + inScope abstractAftertextDirectiveParser abstractAftertextAttributeParser abstractIndentableParagraphParser scrollParagraphParser + cue section + example + section + # Hello world + p This is a test + section + # Deeper + javascript + tag = "section" \ No newline at end of file diff --git a/particlesLeetsheet.html b/particlesLeetsheet.html index 067c79568..051e4a7bd 100644 --- a/particlesLeetsheet.html +++ b/particlesLeetsheet.html @@ -3,13 +3,13 @@ Particles LeetSheet - + - + @@ -77,7 +77,7 @@ - + \ No newline at end of file diff --git a/particlesLeetsheet.txt b/particlesLeetsheet.txt index cb5510a5d..0d4128b8b 100644 --- a/particlesLeetsheet.txt +++ b/particlesLeetsheet.txt @@ -17,4 +17,4 @@ Links - r/WorldWideScroll · Scroll LeetSheet · Parsers LeetSheet https://scroll.pub/leetsheet.html Scroll LeetSheet https://scroll.pub/parserLeetsheet.html Parsers LeetSheet -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/readmePrompt.txt b/readmePrompt.txt index d5cc28937..2c29eab0a 100644 --- a/readmePrompt.txt +++ b/readmePrompt.txt @@ -88,6 +88,10 @@ ciBadges.scroll br thinColumns +📦 165.3.0 1/09/2025 +🎉 added sectionParser +🎉 added pParser + 📦 165.2.0 1/08/2025 🎉 added `keywords` parser because AI keeps trying to use it. 🏥 slideshow fixes diff --git a/releaseNotes.csv b/releaseNotes.csv index abf8b2a06..338ffb117 100644 --- a/releaseNotes.csv +++ b/releaseNotes.csv @@ -1,4 +1,5 @@ version,releaseDate,bugFixes,newFeatures,breakingChanges +165.3.0,1/09/2025,0,2,0 165.2.0,1/08/2025,1,1,0 165.1.1,1/06/2025,1,0,0 165.1.0,1/06/2025,0,1,0 diff --git a/releaseNotes.html b/releaseNotes.html index aacb0f4d6..6eecf3d78 100644 --- a/releaseNotes.html +++ b/releaseNotes.html @@ -3,13 +3,13 @@ Scroll Release Notes - + - + @@ -61,665 +61,669 @@
      -

      165.2.0 1/08/2025

      +

      165.3.0 1/09/2025

        -
      • added keywords parser because AI keeps trying to use it.
      +
    • added sectionParser
    • +
    • added pParser
    +
    +

    165.2.0 1/08/2025

    +
    • added keywords parser because AI keeps trying to use it.
      -
    • slideshow fixes
    +
  • slideshow fixes
  • -

    165.1.1 1/06/2025

    -
    • fix regression in pdf building
    +

    165.1.1 1/06/2025

    +
    • fix regression in pdf building
    -

    165.1.0 1/06/2025

    -
    • support larger data science sessions by using memory if not enough local storage
    +

    165.1.0 1/06/2025

    +
    • support larger data science sessions by using memory if not enough local storage
    -

    165.0.0 1/05/2025

    -
    • quick css and js tags now compile to blank html snippets
    +

    165.0.0 1/05/2025

    +
    • quick css and js tags now compile to blank html snippets
      -
    • BREAKING: (no one should be affected) CSS and Javascript tags will no longer be included by default when compiling snippets
    +
  • BREAKING: (no one should be affected) CSS and Javascript tags will no longer be included by default when compiling snippets
  • -

    164.12.0 1/02/2025

    -
    • added support for URLS with query strings as table data source
    +

    164.12.0 1/02/2025

    +
    • added support for URLS with query strings as table data source
    -

    164.11.0 12/29/2024

    -
    • added slashComment support to table flows
    • -
    • added assertRowCount parser for fast testing of table transformers
    -
    • fix regression where empty and nonEmpty filters were not working
    • -
    • fix "first" reduction to select the first non-blank value
    • -
    • fix syntax highlighting in table flows
    +

    164.11.0 12/29/2024

    +
    • added slashComment support to table flows
    • +
    • added assertRowCount parser for fast testing of table transformers
    +
    • fix regression where empty and nonEmpty filters were not working
    • +
    • fix "first" reduction to select the first non-blank value
    • +
    • fix syntax highlighting in table flows
    -

    164.10.0 12/29/2024

    -
    • added scrollModalParser
    • -
    • added click afterText parser
    • -
    • renamed linkParser to scrollLinkParser to clean up linkParser for userspace
    +

    164.10.0 12/29/2024

    +
    • added scrollModalParser
    • +
    • added click afterText parser
    • +
    • renamed linkParser to scrollLinkParser to clean up linkParser for userspace
    -

    164.9.0 12/24/2024

    -
    • added belowAsHtml and aboveAsHtml from btheado
    +

    164.9.0 12/24/2024

    +
    • added belowAsHtml and aboveAsHtml from btheado
    -

    164.8.0 12/19/2024

    -
    • added title, subtitle and caption parsers to plots
    • -
    • added linechart parser
    • -
    • added parseDate parser
    • -
    • added sampleData parser
    +

    164.8.0 12/19/2024

    +
    • added title, subtitle and caption parsers to plots
    • +
    • added linechart parser
    • +
    • added parseDate parser
    • +
    • added sampleData parser
    -

    164.7.0 12/19/2024

    -
    • added width and height parsers to plots
    +

    164.7.0 12/19/2024

    +
    • added width and height parsers to plots
    -

    164.6.0 12/19/2024

    -
    • added barchart parser
    • -
    • added sort parser to barchart and scatterplot for sorting x axis
    • -
    • updated Observable plot
    +

    164.6.0 12/19/2024

    +
    • added barchart parser
    • +
    • added sort parser to barchart and scatterplot for sorting x axis
    • +
    • updated Observable plot
    -

    164.5.0 12/19/2024

    -
    • perf fix: reuse same disk cache when doing scroll list | scroll build
    +

    164.5.0 12/19/2024

    +
    • perf fix: reuse same disk cache when doing scroll list | scroll build
    -

    164.4.0 12/17/2024

    -
    • assertions now can also be one liners
    • -
    • inlineJs and inlineCss can now take filenames as subparticles
    -
    • bug fixes in buildCss methods
    +

    164.4.0 12/17/2024

    +
    • assertions now can also be one liners
    • +
    • inlineJs and inlineCss can now take filenames as subparticles
    +
    • bug fixes in buildCss methods
    -

    164.3.0 12/16/2024

    -
    • update ScrollSDK
    +

    164.3.0 12/16/2024

    +
    • update ScrollSDK
    -

    164.2.0 12/16/2024

    -
    • add reduceParser to groupBy. Functionality was there but Parser was not.
    • -
    • atom color fixes
    +

    164.2.0 12/16/2024

    +
    • add reduceParser to groupBy. Functionality was there but Parser was not.
    • +
    • atom color fixes
    -

    164.1.0 12/16/2024

    -
    • atom color fixes
    +

    164.1.0 12/16/2024

    +
    • atom color fixes
    -

    164.0.0 12/15/2024

    -
    • much easier to create themes
    • -
    • all 5 themes should largely work now.
    -
    • BREAKING: if you manually included a theme's CSS file, you now need to include ".scroll.css" after it.
    +

    164.0.0 12/15/2024

    +
    • much easier to create themes
    • +
    • all 5 themes should largely work now.
    +
    • BREAKING: if you manually included a theme's CSS file, you now need to include ".scroll.css" after it.
    -

    163.2.1 12/15/2024

    -
    • fix regression in printColumn
    +

    163.2.1 12/15/2024

    +
    • fix regression in printColumn
    -

    163.2.0 12/15/2024

    -
    • added summarize parser
    +

    163.2.0 12/15/2024

    +
    • added summarize parser
    -

    163.1.0 12/15/2024

    -
    • column names in table particles now try to match users intent (case insensitive and close match).
    • -
    • new assertIgnoreBelowErrorsParser for automated testing purposes
    +

    163.1.0 12/15/2024

    +
    • column names in table particles now try to match users intent (case insensitive and close match).
    • +
    • new assertIgnoreBelowErrorsParser for automated testing purposes
    -

    163.0.0 12/13/2024

    -

    Organized the debug parsers into a common namespace.

    -
    • new debugParsers parser
    • -
    • new debugAll parser
    • -
    • debugBelow and debugAbove now have better txt output
    -
    • BREAKING: inspectBelow is now debugBelow.
    • -
    • BREAKING: inspectAbove is now debugAbove.
    • -
    • BREAKING: printSourceStack is now debugSourceStack.
    +

    163.0.0 12/13/2024

    +

    Organized the debug parsers into a common namespace.

    +
    • new debugParsers parser
    • +
    • new debugAll parser
    • +
    • debugBelow and debugAbove now have better txt output
    +
    • BREAKING: inspectBelow is now debugBelow.
    • +
    • BREAKING: inspectAbove is now debugAbove.
    • +
    • BREAKING: printSourceStack is now debugSourceStack.
    -

    162.1.0 12/07/2024

    -
    • upgrade ScrollSDK
    +

    162.1.0 12/07/2024

    +
    • upgrade ScrollSDK
    -

    162.0.1 12/06/2024

    -
    • npm fix
    +

    162.0.1 12/06/2024

    +
    • npm fix
    -

    162.0.0 12/06/2024

    -
    • much cleaner strategy for CSS and JS files shipped with Scroll
    -
    • BREAKING: all external Javascript and CSS files now begin with ..
    +

    162.0.0 12/06/2024

    +
    • much cleaner strategy for CSS and JS files shipped with Scroll
    +
    • BREAKING: all external Javascript and CSS files now begin with ..
    -

    Before this change, people's folders were getting filled with theme and JS files that had to be .gitignored. Now, all of those files will start with a ".".

    -

    So we use the hidden file convention for separating files you want to track from external libs you are using.

    -

    161.3.0 12/04/2024

    -
    • handle macro failures gracefully
    +

    Before this change, people's folders were getting filled with theme and JS files that had to be .gitignored. Now, all of those files will start with a ".".

    +

    So we use the hidden file convention for separating files you want to track from external libs you are using.

    +

    161.3.0 12/04/2024

    +
    • handle macro failures gracefully
    -

    161.2.0 12/04/2024

    -
    • update SDK for better Fusion
    +

    161.2.0 12/04/2024

    +
    • update SDK for better Fusion
    -

    161.1.0 12/04/2024

    -
    • added outputFileNames internal API
    +

    161.1.0 12/04/2024

    +
    • added outputFileNames internal API
    -

    161.0.4 12/02/2024

    -
    • scroll cli format command regression fix
    +

    161.0.4 12/02/2024

    +
    • scroll cli format command regression fix
    -

    161.0.3 12/02/2024

    -
    • scroll format regression fix
    +

    161.0.3 12/02/2024

    +
    • scroll format regression fix
    -

    161.0.2 12/02/2024

    -
    • scroll format regression fix
    +

    161.0.2 12/02/2024

    +
    • scroll format regression fix
    -

    161.0.1 12/02/2024

    -
    • scroll form fixes
    +

    161.0.1 12/02/2024

    +
    • scroll form fixes
    -

    161.0.0 12/01/2024

    -
    • added new theme prestige
    • -
    • upgrade ScrollSDK
    • -
    • scroll theme cleanup:
    -
    • BREAKING: .dinkus is now .abstractDinkusParser
    • -
    • BREAKING: .scrollTitle is now .printTitleParser
    • -
    • BREAKING: .scrollByLine is now .printAuthorsParser
    • -
    • BREAKING: .scrollDateline is now .printDateParser
    • -
    • BREAKING: dateParser is now scrollDateParser
    +

    161.0.0 12/01/2024

    +
    • added new theme prestige
    • +
    • upgrade ScrollSDK
    • +
    • scroll theme cleanup:
    +
    • BREAKING: .dinkus is now .abstractDinkusParser
    • +
    • BREAKING: .scrollTitle is now .printTitleParser
    • +
    • BREAKING: .scrollByLine is now .printAuthorsParser
    • +
    • BREAKING: .scrollDateline is now .printDateParser
    • +
    • BREAKING: dateParser is now scrollDateParser
    -

    160.0.0 11/30/2024

    -
    • upgrade ScrollSDK
    +

    160.0.0 11/30/2024

    +
    • upgrade ScrollSDK
    -

    159.1.0 11/30/2024

    -
    • make Scroll version work in browser version
    +

    159.1.0 11/30/2024

    +
    • make Scroll version work in browser version
    -

    159.0.0 11/30/2024

    -
    • BREAKING: (almost no one should be affected). paragraphParser is now scrollParagraphParser to avoid namespace collisions.
    +

    159.0.0 11/30/2024

    +
    • BREAKING: (almost no one should be affected). paragraphParser is now scrollParagraphParser to avoid namespace collisions.
    -

    158.0.4 11/29/2024

    -
    • fix right button regression
    +

    158.0.4 11/29/2024

    +
    • fix right button regression
    -

    158.0.3 11/29/2024

    -
    • try/catch of buildHtml for better robustness
    • -
    • fix left/right buttons regression
    +

    158.0.3 11/29/2024

    +
    • try/catch of buildHtml for better robustness
    • +
    • fix left/right buttons regression
    -

    158.0.2 11/29/2024

    -
    • fix stumpParser namespace bug
    +

    158.0.2 11/29/2024

    +
    • fix stumpParser namespace bug
    -

    158.0.1 11/29/2024

    -
    • more graceful error handling
    +

    158.0.1 11/29/2024

    +
    • more graceful error handling
    -

    158.0.0 11/29/2024

    -
    • import Scroll files now by URLS
    -
    • BREAKING: (no one should be affected). Lines that are just a URL to a Scroll file now will attempt an import.
    +

    158.0.0 11/29/2024

    +
    • import Scroll files now by URLS
    +
    • BREAKING: (no one should be affected). Lines that are just a URL to a Scroll file now will attempt an import.
    -

    157.0.0 11/29/2024

    -
    • BREAKING: (userspace unaffected. dev API changes only) switched to async Fusion file system.
    • -
    • BREAKING: (userspace unaffected. dev API changes only) build method is now split into load and execute methods.
    +

    157.0.0 11/29/2024

    +
    • BREAKING: (userspace unaffected. dev API changes only) switched to async Fusion file system.
    • +
    • BREAKING: (userspace unaffected. dev API changes only) build method is now split into load and execute methods.
    -

    156.0.0 11/28/2024

    -
    • BREAKING: (no one should be affected) updated scrollsdk to get Fusion
    +

    156.0.0 11/28/2024

    +
    • BREAKING: (no one should be affected) updated scrollsdk to get Fusion
    -

    155.4.2 11/26/2024

    -
    • fix regression in limit on getFilesByTag
    +

    155.4.2 11/26/2024

    +
    • fix regression in limit on getFilesByTag
    -

    155.4.1 11/25/2024

    -
    • namespace cleanup
    +

    155.4.1 11/25/2024

    +
    • namespace cleanup
    -

    155.4.0 11/23/2024

    -
    • loadConcepts now supports other concept cues than "id"
    +

    155.4.0 11/23/2024

    +
    • loadConcepts now supports other concept cues than "id"
    -

    155.3.0 11/22/2024

    -
    • added notices parser
    +

    155.3.0 11/22/2024

    +
    • added notices parser
    -

    155.2.0 11/22/2024

    -
    • added name parser to support naming the field in one textarea
    +

    155.2.0 11/22/2024

    +
    • added name parser to support naming the field in one textarea
    -

    155.1.0 11/21/2024

    -
    • added splitYear parser
    • -
    • added splitMonth parser
    • -
    • added splitDayOfMonth parser
    • -
    • added splitDay parser
    • -
    • added splitMonthName parser
    • -
    • added splitDayName parser
    +

    155.1.0 11/21/2024

    +
    • added splitYear parser
    • +
    • added splitMonth parser
    • +
    • added splitDayOfMonth parser
    • +
    • added splitDay parser
    • +
    • added splitMonthName parser
    • +
    • added splitDayName parser
    -

    155.0.3 11/20/2024

    -
    • temp inheritance parser bug patch.
    +

    155.0.3 11/20/2024

    +
    • temp inheritance parser bug patch.
    -

    155.0.2 11/20/2024

    -
    • fixed regression from version 154.
    +

    155.0.2 11/20/2024

    +
    • fixed regression from version 154.
    -

    155.0.1 11/20/2024

    -
    • fixed bug in buildParsers
    +

    155.0.1 11/20/2024

    +
    • fixed bug in buildParsers
    -

    155.0.0 11/19/2024

    -
    • cleaner Parsers autocomplete
    -
    • BREAKING: (no one should be affected) updated scrollsdk
    +

    155.0.0 11/19/2024

    +
    • cleaner Parsers autocomplete
    +
    • BREAKING: (no one should be affected) updated scrollsdk
    -

    154.3.0 11/18/2024

    -
    • container parser now extends aftertext
    +

    154.3.0 11/18/2024

    +
    • container parser now extends aftertext
    -

    154.2.0 11/16/2024

    -
    • Added footer parser to import statements. Now you can import a footer at top of file.
    • -
    • Added scrollClearStackParser
    • -
    • Upgraded ScrollSDK
    +

    154.2.0 11/16/2024

    +
    • Added footer parser to import statements. Now you can import a footer at top of file.
    • +
    • Added scrollClearStackParser
    • +
    • Upgraded ScrollSDK
    -

    154.1.0 11/15/2024

    -
    • JSON table parser now handles more common kinds of json data
    +

    154.1.0 11/15/2024

    +
    • JSON table parser now handles more common kinds of json data
    -

    154.0.0 11/15/2024

    -
    • compile is now renamed to specific output methods such as buildHtml.
    -
    • BREAKING: if you've written custom parsers please rename your compile methods to buildHtml, buildTxt, et cetera
    +

    154.0.0 11/15/2024

    +
    • compile is now renamed to specific output methods such as buildHtml.
    +
    • BREAKING: if you've written custom parsers please rename your compile methods to buildHtml, buildTxt, et cetera
    -

    153.1.0 11/14/2024

    -
    • added font parser for quickly setting font family
    • -
    • added color parser for quickly setting font family
    • -
    • lorem ipsum parsers now extend aftertext properly
    +

    153.1.0 11/14/2024

    +
    • added font parser for quickly setting font family
    • +
    • added color parser for quickly setting font family
    • +
    • lorem ipsum parsers now extend aftertext properly
    -

    153.0.0 11/14/2024

    -
    • refactored build system so try.scroll.pub can access all build outputs, not just HTML
    -
    • BREAKING: (no one should be affected) low level internal build APIs have changed
    +

    153.0.0 11/14/2024

    +
    • refactored build system so try.scroll.pub can access all build outputs, not just HTML
    +
    • BREAKING: (no one should be affected) low level internal build APIs have changed
    -

    152.0.0 11/13/2024

    -
    • upgraded ScrollSDK
    -
    • fixed problems from namespace collisions
    +

    152.0.0 11/13/2024

    +
    • upgraded ScrollSDK
    +
    • fixed problems from namespace collisions
    -

    151.0.0 11/13/2024

    +

    151.0.0 11/13/2024

    -

    🚨 MAJOR RELEASE

    -
    • try.scroll.pub now supports writing parsers!
    +

    🚨 MAJOR RELEASE

    +
    • try.scroll.pub now supports writing parsers!
    -
    • moved code from desktop to parsers
    -
    • fixed regression where parsers were printing
    -

    150.0.0 11/13/2024

    -
    • added concepts parser for loading concepts in a file into a table
    -
    • BREAKING: (no one should be affected) nearly all Scroll code is now available to Scroll in the browser. Some internal APIs may have changed if using Scroll programmatically.
    +
    • moved code from desktop to parsers
    +
    • fixed regression where parsers were printing
    +

    150.0.0 11/13/2024

    +
    • added concepts parser for loading concepts in a file into a table
    +
    • BREAKING: (no one should be affected) nearly all Scroll code is now available to Scroll in the browser. Some internal APIs may have changed if using Scroll programmatically.
    -

    This is prep work for the major release coming imminently which brings the full power of PPS to the browser, including ability to write Parsers, fully user Scrollsets, and more, dynamically, clientside in browser.

    -

    149.0.0 11/13/2024

    -
    • parsers.parsers now ships with Scroll! Syntax highlighting, autocomplete, and other tools for writing parsers in try.scroll.pub.
      • Note: compiling these Parsers still requires desktop Scroll. Not everything runs in browser...yet
    -
    • BREAKING: (no one should be affected) any custom parsers in your Scroll files will now be fully parsed. So previously undetected errors will now be caught. There may also be some namespace conflicts as we cleanup the Parser code.
    +

    This is prep work for the major release coming imminently which brings the full power of PPS to the browser, including ability to write Parsers, fully user Scrollsets, and more, dynamically, clientside in browser.

    +

    149.0.0 11/13/2024

    +
    • parsers.parsers now ships with Scroll! Syntax highlighting, autocomplete, and other tools for writing parsers in try.scroll.pub.
      • Note: compiling these Parsers still requires desktop Scroll. Not everything runs in browser...yet
    +
    • BREAKING: (no one should be affected) any custom parsers in your Scroll files will now be fully parsed. So previously undetected errors will now be caught. There may also be some namespace conflicts as we cleanup the Parser code.
    -

    148.3.1 11/12/2024

    -
    • fix author bug in postsMeta
    +

    148.3.1 11/12/2024

    +
    • fix author bug in postsMeta
    -

    148.3.0 11/12/2024

    -
    • moved format code to root parser for use in browser
    +

    148.3.0 11/12/2024

    +
    • moved format code to root parser for use in browser
    -

    148.2.0 11/12/2024

    -
    • created bindTo parsers property which tells particles to stick with next/previous when formatting
    • -
    • created allowTrailingWhitespace parser property to allow particles to allow trailing whitespace when formatting
    +

    148.2.0 11/12/2024

    +
    • created bindTo parsers property which tells particles to stick with next/previous when formatting
    • +
    • created allowTrailingWhitespace parser property to allow particles to allow trailing whitespace when formatting
    -

    148.1.0 11/12/2024

    -
    • added codeFromFile parser
    • -
    • buildTxt + code parsers now output code surrounded by backticks
    +

    148.1.0 11/12/2024

    +
    • added codeFromFile parser
    • +
    • buildTxt + code parsers now output code surrounded by backticks
    -

    148.0.0 11/11/2024

    +

    148.0.0 11/11/2024

    -

    🚨 MAJOR RELEASE

    -
    • Vastly improved data science capabilities!
    • -
    • Major cleanup of Scroll to remove loops concept. Tables is all we need.
    • -
    • Major cleanup toward running Scroll fully in browser
    +

    🚨 MAJOR RELEASE

    +
    • Vastly improved data science capabilities!
    • +
    • Major cleanup of Scroll to remove loops concept. Tables is all we need.
    • +
    • Major cleanup toward running Scroll fully in browser
    -
    • added buildTsv parser
    • -
    • added buildJson parser
    • -
    • added posts parser for iterating over posts as a table
    • -
    • added postsMeta parser for iterating over post metadata as a table
    • -
    • added assertBuildIncludes
    • -
    • printTable combined with buildTsv/Csv/Json will now save the table to disk.
    -
    • BREAKING: removed loop. tables can do everything loops could, much better.
    • -
    • BREAKING: removed printCsv parser
    • -
    • BREAKING: removed printSearchTable parser. Can now be done with:
    +
    • added buildTsv parser
    • +
    • added buildJson parser
    • +
    • added posts parser for iterating over posts as a table
    • +
    • added postsMeta parser for iterating over post metadata as a table
    • +
    • added assertBuildIncludes
    • +
    • printTable combined with buildTsv/Csv/Json will now save the table to disk.
    +
    • BREAKING: removed loop. tables can do everything loops could, much better.
    • +
    • BREAKING: removed printCsv parser
    • +
    • BREAKING: removed printSearchTable parser. Can now be done with:
    posts All printTable tableSearch -

    147.1.0 11/11/2024

    -
    • added shuffle parser
    • -
    • added iris parser for easier quick testing/demoing of scroll tables
    +

    147.1.0 11/11/2024

    +
    • added shuffle parser
    • +
    • added iris parser for easier quick testing/demoing of scroll tables
    -

    147.0.0 11/09/2024

    -
    • added quickRunScriptParser to run python, php, ruby, perl, and sh scripts and include output in compiled output
    -
    • match less in quick tables
    -
    • BREAKING: (no one should be affected) if you have a line that is just a filename like *.(py|rb|sh|php|pl), it will now attempt to run that script
    +

    147.0.0 11/09/2024

    +
    • added quickRunScriptParser to run python, php, ruby, perl, and sh scripts and include output in compiled output
    +
    • match less in quick tables
    +
    • BREAKING: (no one should be affected) if you have a line that is just a filename like *.(py|rb|sh|php|pl), it will now attempt to run that script
    -

    146.4.0 11/09/2024

    -
    • when using maps, geolocate now adds an icon to current location
    +

    146.4.0 11/09/2024

    +
    • when using maps, geolocate now adds an icon to current location
    -

    146.3.0 11/08/2024

    -
    • inlineJs now concats without script tag when paired with buildJs
    +

    146.3.0 11/08/2024

    +
    • inlineJs now concats without script tag when paired with buildJs
    -

    146.2.0 11/07/2024

    -
    • more comment support across parsers
    +

    146.2.0 11/07/2024

    +
    • more comment support across parsers
    -

    146.1.0 11/05/2024

    -
    • added background parser
    +

    146.1.0 11/05/2024

    +
    • added background parser
    -

    146.0.0 11/02/2024

    -
    • upgrade ScrollSDK to get "imported" functionality.
    • -
    • added importedParser
    • -
    • added support for optional imports using a temporary parser. Long term implementation coming soon.
    -
    • BREAKING: (no one should be affected) import particles are now replaced by "imported" particles
    +

    146.0.0 11/02/2024

    +
    • upgrade ScrollSDK to get "imported" functionality.
    • +
    • added importedParser
    • +
    • added support for optional imports using a temporary parser. Long term implementation coming soon.
    +
    • BREAKING: (no one should be affected) import particles are now replaced by "imported" particles
    -

    145.12.0 11/02/2024

    -
    • assertion parsers can now be chained and will test the output of previous non-assertion parser
    • -
    • added dependenciesParser
    +

    145.12.0 11/02/2024

    +
    • assertion parsers can now be chained and will test the output of previous non-assertion parser
    • +
    • added dependenciesParser
    -

    145.11.1 11/01/2024

    -
    • remove carriage returns ('\r') when running scroll format
    +

    145.11.1 11/01/2024

    +
    • remove carriage returns ('\r') when running scroll format
    -

    145.11.0 10/31/2024

    -
    • add join parser to printColumn
    +

    145.11.0 10/31/2024

    +
    • add join parser to printColumn
    -

    145.10.0 10/30/2024

    -
    • much improved inspector parsers
    +

    145.10.0 10/30/2024

    +
    • much improved inspector parsers
    -

    145.9.0 10/30/2024

    -
    • added buildParsersParser
    • -
    • added scrollDefParser
    • -
    • added inspectBelowParser
    • -
    • added inspectAboveParser
    -
    • atom highlight fixes for css and html
    • -
    • allow scrollForms gracefully handle zero params
    +

    145.9.0 10/30/2024

    +
    • added buildParsersParser
    • +
    • added scrollDefParser
    • +
    • added inspectBelowParser
    • +
    • added inspectAboveParser
    +
    • atom highlight fixes for css and html
    • +
    • allow scrollForms gracefully handle zero params
    -

    This version starts introduces "Defs", a new short hand way to create forms/parsers/scrollsets.

    -

    Expect Def parsers to evolve quickly.

    -

    145.8.0 10/27/2024

    -
    • added scrollNavParser
    • -
    • added scrollLinkTitleParser
    +

    This version starts introduces "Defs", a new short hand way to create forms/parsers/scrollsets.

    +

    Expect Def parsers to evolve quickly.

    +

    145.8.0 10/27/2024

    +
    • added scrollNavParser
    • +
    • added scrollLinkTitleParser
    -

    145.7.0 10/27/2024

    -
    • improved how long ago magic column to handle timestamps better and also show original date on hover
    +

    145.7.0 10/27/2024

    +
    • improved how long ago magic column to handle timestamps better and also show original date on hover
    -

    145.6.0 10/27/2024

    -
    • added magic last[Verbed] columns to tables which now renders a "how long ago" value
    +

    145.6.0 10/27/2024

    +
    • added magic last[Verbed] columns to tables which now renders a "how long ago" value
    -

    145.5.1 10/26/2024

    -
    • table fix for missing values
    +

    145.5.1 10/26/2024

    +
    • table fix for missing values
    -

    145.5.0 10/25/2024

    -
    • new internal build API to support single file building
    +

    145.5.0 10/25/2024

    +
    • new internal build API to support single file building
    -

    145.4.0 10/25/2024

    -
    • added startsWith and endsWith atoms to where parser
    +

    145.4.0 10/25/2024

    +
    • added startsWith and endsWith atoms to where parser
    -

    145.3.0 10/24/2024

    -
    • added nav styling
    +

    145.3.0 10/24/2024

    +
    • added nav styling
    -

    145.2.0 10/24/2024

    -
    • add HAML parser for plain tags
    +

    145.2.0 10/24/2024

    +
    • add HAML parser for plain tags
    -

    145.1.2 10/23/2024

    -
    • clone fixes
    +

    145.1.2 10/23/2024

    +
    • clone fixes
    -

    145.1.1 10/23/2024

    -
    • clone fix
    +

    145.1.1 10/23/2024

    +
    • clone fix
    -

    145.1.0 10/23/2024

    -
    • clone command api updates
    +

    145.1.0 10/23/2024

    +
    • clone command api updates
    -

    145.0.0 10/23/2024

    -
    • added onclickParser
    • -
    • added scrollEvalParser
    • -
    • started refactoring CSS code to make theming easier
    -
    • BREAKING: if using --base-font-size rename to --scrollBaseFontSize
    +

    145.0.0 10/23/2024

    +
    • added onclickParser
    • +
    • added scrollEvalParser
    • +
    • started refactoring CSS code to make theming easier
    +
    • BREAKING: if using --base-font-size rename to --scrollBaseFontSize
    -

    144.0.0 10/22/2024

    -
    • big refactor to make more of Scroll work entirely in browser
    -
    • BREAKING: (no user breaking changes). Changes for ScrollFile API users: some methods have moved to scrollProgram.
    +

    144.0.0 10/22/2024

    +
    • big refactor to make more of Scroll work entirely in browser
    +
    • BREAKING: (no user breaking changes). Changes for ScrollFile API users: some methods have moved to scrollProgram.
    -

    143.0.0 10/19/2024

    -
    • BREAKING: "viewSource" is now "edit" globally
    +

    143.0.0 10/19/2024

    +
    • BREAKING: "viewSource" is now "edit" globally
    -

    142.3.0 10/19/2024

    -
    • command line output cleanup
    +

    142.3.0 10/19/2024

    +
    • command line output cleanup
    -

    142.2.0 10/18/2024

    -
    • added inlineCss and inlineJs parsers
    +

    142.2.0 10/18/2024

    +
    • added inlineCss and inlineJs parsers
    -

    142.1.0 10/18/2024

    -
    • added new post parser to buttons
    +

    142.1.0 10/18/2024

    +
    • added new post parser to buttons
    -

    142.0.2 10/16/2024

    -
    • clone fix
    +

    142.0.2 10/16/2024

    +
    • clone fix
    -

    142.0.1 10/14/2024

    -
    • clone fixes
    +

    142.0.1 10/14/2024

    +
    • clone fixes
    -

    142.0.0 10/14/2024

    -
    • added new clone cli command
    +

    142.0.0 10/14/2024

    +
    • added new clone cli command
    -

    141.3.1 10/14/2024

    -
    • whoops! major format regression
    +

    141.3.1 10/14/2024

    +
    • whoops! major format regression
    -

    141.3.0 10/14/2024

    -
    • format command should not insert newlines into blank files
    +

    141.3.0 10/14/2024

    +
    • format command should not insert newlines into blank files
    -

    141.2.0 10/14/2024

    -
    • toStamp supports a single file
    • -
    • moved prompt to parsersPrompt
    • -
    • added scrollPrompt
    +

    141.2.0 10/14/2024

    +
    • toStamp supports a single file
    • +
    • moved prompt to parsersPrompt
    • +
    • added scrollPrompt
    -

    141.1.0 10/14/2024

    -
    • added toStamp parser
    • -
    • created prompt.scroll
    +

    141.1.0 10/14/2024

    +
    • added toStamp parser
    • +
    • created prompt.scroll
    -

    141.0.0 10/12/2024

    -
    • updated ScrollSDK
    -
    • bug fix in maps nested under tables. Thanks TD for the report!
    -
    • BREAKING: firstAtom is now cue everywhere
    +

    141.0.0 10/12/2024

    +
    • updated ScrollSDK
    +
    • bug fix in maps nested under tables. Thanks TD for the report!
    +
    • BREAKING: firstAtom is now cue everywhere
    -

    140.0.0 10/12/2024

    -
    • updated ScrollSDK
    -
    • BREAKING: crux, a "temporary" word that lasted years 😀, is now cue
    +

    140.0.0 10/12/2024

    +
    • updated ScrollSDK
    +
    • BREAKING: crux, a "temporary" word that lasted years 😀, is now cue
    -

    139.1.0 10/11/2024

    -
    • added qrcode parser
    +

    139.1.0 10/11/2024

    +
    • added qrcode parser
    -

    139.0.1 10/11/2024

    -
    • bug fix in quick tables. Thanks TD for the report!
    +

    139.0.1 10/11/2024

    +
    • bug fix in quick tables. Thanks TD for the report!
    -

    139.0.0 10/11/2024

    -
    • the quickTable parser now works with JSON files as well.
    -
    • BREAKING: to use the JSON Script parser, instead of *.json you now need to use the cue "jsonScript"
    +

    139.0.0 10/11/2024

    +
    • the quickTable parser now works with JSON files as well.
    +
    • BREAKING: to use the JSON Script parser, instead of *.json you now need to use the cue "jsonScript"
    -

    Regex find:

    +

    Regex find:

    ^[^\s]+\.json -

    138.4.0 10/09/2024

    -
    • added placeholder and value parsers to ScrollForms
    +

    138.4.0 10/09/2024

    +
    • added placeholder and value parsers to ScrollForms
    -

    138.3.0 10/09/2024

    -
    • add geolocate parser for better map UX.
    +

    138.3.0 10/09/2024

    +
    • add geolocate parser for better map UX.
    -

    138.2.0 10/08/2024

    -
    • add theScrollButton parser
    +

    138.2.0 10/08/2024

    +
    • add theScrollButton parser
    -

    138.1.1 10/08/2024

    -
    • scroll forms fixes
    +

    138.1.1 10/08/2024

    +
    • scroll forms fixes
    -

    138.1.0 10/08/2024

    -
    • scroll forms can now post
    +

    138.1.0 10/08/2024

    +
    • scroll forms can now post
    -

    138.0.0 10/08/2024

    -
    • compiled HTML of all aftertext nodes now deep linkable. Thanks to Hari for the request!
    -
    • BREAKING: upgraded ScrollSDK so getIndex is now index on Particles
    +

    138.0.0 10/08/2024

    +
    • compiled HTML of all aftertext nodes now deep linkable. Thanks to Hari for the request!
    +
    • BREAKING: upgraded ScrollSDK so getIndex is now index on Particles
    -

    137.4.0 10/08/2024

    -
    • maps now can request users location
    +

    137.4.0 10/08/2024

    +
    • maps now can request users location
    -

    137.3.0 10/07/2024

    -
    • export SimpleCLI
    +

    137.3.0 10/07/2024

    +
    • export SimpleCLI
    -

    137.2.0 10/06/2024

    -
    • added tiles parser to maps
    +

    137.2.0 10/06/2024

    +
    • added tiles parser to maps
    -

    137.1.0 10/05/2024

    -
    • added rank parser to tables
    +

    137.1.0 10/05/2024

    +
    • added rank parser to tables
    -

    137.0.0 10/04/2024

    -
    • maps now takes a table
    • -
    • maps now supports fullscreen
    • -
    • maps now supports custom hover template strings
    • -
    • maps now supports color
    • -
    • maps now supports fillColor
    • -
    • maps now supports radius
    • -
    • maps now supports fillOpacity
    • -
    • added compute table parser
    -
    • BREAKING: remove "points" parser. maps now takes a table as input.
    +

    137.0.0 10/04/2024

    +
    • maps now takes a table
    • +
    • maps now supports fullscreen
    • +
    • maps now supports custom hover template strings
    • +
    • maps now supports color
    • +
    • maps now supports fillColor
    • +
    • maps now supports radius
    • +
    • maps now supports fillOpacity
    • +
    • added compute table parser
    +
    • BREAKING: remove "points" parser. maps now takes a table as input.
    -

    136.12.0 10/04/2024

    -
    • table now accepts urls
    • -
    • build now works in web version
    +

    136.12.0 10/04/2024

    +
    • table now accepts urls
    • +
    • build now works in web version
    -

    136.11.1 10/02/2024

    -
    • description escape fix
    +

    136.11.1 10/02/2024

    +
    • description escape fix
    -

    136.11.0 10/02/2024

    -
    • added printShortSnippetsParser
    +

    136.11.0 10/02/2024

    +
    • added printShortSnippetsParser
    -

    136.10.0 10/02/2024

    -
    • added footer Parser
    +

    136.10.0 10/02/2024

    +
    • added footer Parser
    -

    136.9.0 9/30/2024

    -
    • added stopwatch Parser
    +

    136.9.0 9/30/2024

    +
    • added stopwatch Parser
    -

    136.8.0 9/30/2024

    -
    • viewSourceButton can now take a url
    +

    136.8.0 9/30/2024

    +
    • viewSourceButton can now take a url
    -

    136.7.0 9/30/2024

    -
    • dark theme improvements
    +

    136.7.0 9/30/2024

    +
    • dark theme improvements
    -

    136.6.0 9/27/2024

    -
    • added printColumn parser
    +

    136.6.0 9/27/2024

    +
    • added printColumn parser
    -

    136.5.0 9/27/2024

    -
    • added disk parser which generates a table from local disk contents
    +

    136.5.0 9/27/2024

    +
    • added disk parser which generates a table from local disk contents
    -

    136.4.1 9/27/2024

    -
    • type fix in table links
    +

    136.4.1 9/27/2024

    +
    • type fix in table links
    -

    136.4.0 9/27/2024

    -
    • new aftertext relative link parser. relative links with 33% fewer words.
    • -
    • use quick links in image tags.
    -
    • bug fix where tableSearch was getting applied to non scroll tables such as Dashboards
    +

    136.4.0 9/27/2024

    +
    • new aftertext relative link parser. relative links with 33% fewer words.
    • +
    • use quick links in image tags.
    +
    • bug fix where tableSearch was getting applied to non scroll tables such as Dashboards
    -

    Find/Replace for shorter relative links:

    +

    Find/Replace for shorter relative links:

    ^ link ([^\s]+)\.html $1.html -

    136.3.0 9/27/2024

    -
    • new expand/collapse button on tables and removed confusing zoom in/zoom out
    • -
    • copy button on tables now generates just data, no more header/footer cruft
    • -
    • removed rarely used csv button on tables in favor of better copy button
    -
    -

    136.2.1 9/26/2024

    -
    • container style fix when in snippets
    +

    136.3.0 9/27/2024

    +
    • new expand/collapse button on tables and removed confusing zoom in/zoom out
    • +
    • copy button on tables now generates just data, no more header/footer cruft
    • +
    • removed rarely used csv button on tables in favor of better copy button
    -

    136.2.0 9/26/2024

    -
    • added container parser
    +

    136.2.1 9/26/2024

    +
    • container style fix when in snippets
    -

    136.1.0 9/26/2024

    -
    • added hakon parser
    +

    136.2.0 9/26/2024

    +
    • added container parser
    -

    136.0.0 9/26/2024

    -
    • BREAKING: (no one should be affected). haml was matching too much. now haml parser requires an #id.
    +

    136.1.0 9/26/2024

    +
    • added hakon parser
    -

    135.0.0 9/26/2024

    -
    • added tufte theme
    -
    • BREAKING: removed gazetteCss. Now use theme gazette.
    • -
    • BREAKING: removed tufteCss. Now use theme tufte.
    +

    136.0.0 9/26/2024

    +
    • BREAKING: (no one should be affected). haml was matching too much. now haml parser requires an #id.
    -

    134.1.0 9/26/2024

    -
    • added theme parser and 3 themes: roboto, dark, and gazette
    • -
    • added iframes parser
    +

    135.0.0 9/26/2024

    +
    • added tufte theme
    +
    • BREAKING: removed gazetteCss. Now use theme gazette.
    • +
    • BREAKING: removed tufteCss. Now use theme tufte.
    -

    134.0.0 9/25/2024

    -
    • added haml quick html tags
    -
    • BREAKING: (no one should be affected) if you have lines starting with a sequence like tag#id or tag.someClassName, they will now get matched to HAML parser.
    +

    134.1.0 9/26/2024

    +
    • added theme parser and 3 themes: roboto, dark, and gazette
    • +
    • added iframes parser
    -

    133.6.0 9/24/2024

    -
    • added links parser to tables
    +

    134.0.0 9/25/2024

    +
    • added haml quick html tags
    +
    • BREAKING: (no one should be affected) if you have lines starting with a sequence like tag#id or tag.someClassName, they will now get matched to HAML parser.
    -

    133.5.0 9/24/2024

    -
    • added compose parser to tables
    +

    133.6.0 9/24/2024

    +
    • added links parser to tables
    -

    133.4.0 9/24/2024

    -
    • added quickIncludeJsonParser parser
    +

    133.5.0 9/24/2024

    +
    • added compose parser to tables
    -

    133.3.0 9/24/2024

    -
    • added cloc parser
    • -
    • you can now use quickHtml in table flows
    +

    133.4.0 9/24/2024

    +
    • added quickIncludeJsonParser parser
    -

    133.2.0 9/22/2024

    -
    • added favIcon parser
    +

    133.3.0 9/24/2024

    +
    • added cloc parser
    • +
    • you can now use quickHtml in table flows
    -

    133.1.0 9/21/2024

    -
    • groupBy now supports better reductions including concat and first
    +

    133.2.0 9/22/2024

    +
    • added favIcon parser
    -

    133.0.1 9/15/2024

    -
    • better error message when eval'ing macros
    +

    133.1.0 9/21/2024

    +
    • groupBy now supports better reductions including concat and first
    -

    133.0.0 9/15/2024

    -
    • Updated ScrollSDK to get new "atoms" terminology.
    -
    • BREAKING: see ScrollSDK breaking changes
    +

    133.0.1 9/15/2024

    +
    • better error message when eval'ing macros
    -

    132.0.1 9/14/2024

    -
    • fix unix timestamps in printTable
    +

    133.0.0 9/15/2024

    +
    • Updated ScrollSDK to get new "atoms" terminology.
    +
    • BREAKING: see ScrollSDK breaking changes
    -

    132.0.0 9/14/2024

    -
    • Updated ScrollSDK to get new "subparticle" terminology
    -
    • BREAKING: see ScrollSDK breaking changes
    +

    132.0.1 9/14/2024

    +
    • fix unix timestamps in printTable
    -

    131.0.0 9/14/2024

    -
    • new parser: quickCssParser
    • -
    • new parser: quickIncludeHtmlParser
    • -
    • new parser: quickScriptParser
    -
    • BREAKING: (no one should be affected) if you have a one atom line that ends with .js, .css, or .html it will now be consumed by these parsers above.
    +

    132.0.0 9/14/2024

    +
    • Updated ScrollSDK to get new "subparticle" terminology
    +
    • BREAKING: see ScrollSDK breaking changes
    -

    130.5.0 9/13/2024

    -
    • new assertHtmlEqualsParser for faster and more intelligent testing
    -
    • fix edge bug in inline markup parsers
    +

    131.0.0 9/14/2024

    +
    • new parser: quickCssParser
    • +
    • new parser: quickIncludeHtmlParser
    • +
    • new parser: quickScriptParser
    +
    • BREAKING: (no one should be affected) if you have a one atom line that ends with .js, .css, or .html it will now be consumed by these parsers above.
    -

    130.4.2 9/13/2024

    -
    • counter should be floor not ceil
    +

    130.5.0 9/13/2024

    +
    • new assertHtmlEqualsParser for faster and more intelligent testing
    +
    • fix edge bug in inline markup parsers
    -

    130.4.1 9/12/2024

    -
    • support for relative links in Url columns in printTable
    -
    • scroll init style fix
    +

    130.4.2 9/13/2024

    +
    • counter should be floor not ceil
    -

    130.4.0 9/12/2024

    -
    • add detection of timestamp columns and print them as dates in printTable
    • -
    • remove "Exported data" from copied text in datatables copy buttons
    +

    130.4.1 9/12/2024

    +
    • support for relative links in Url columns in printTable
    +
    • scroll init style fix
    -

    130.3.6 9/12/2024

    -
    • buttons with link should be fully clickable
    +

    130.4.0 9/12/2024

    +
    • add detection of timestamp columns and print them as dates in printTable
    • +
    • remove "Exported data" from copied text in datatables copy buttons
    -

    130.3.5 9/11/2024

    -
    • ScrollSetCLI fix
    +

    130.3.6 9/12/2024

    +
    • buttons with link should be fully clickable
    -

    130.3.4 9/10/2024

    +

    130.3.5 9/11/2024

    • ScrollSetCLI fix
    -

    130.3.3 9/10/2024

    -
    • ScrollSetCLI fix
    +

    130.3.4 9/10/2024

    +
    • ScrollSetCLI fix
    +
    +

    130.3.3 9/10/2024

    +
    • ScrollSetCLI fix
    -

    130.3.2 9/10/2024

    -
    • make just text clickable in view source links
    +

    130.3.2 9/10/2024

    +
    • make just text clickable in view source links
    -

    130.3.1 9/9/2024

    -
    • npm fix
    +

    130.3.1 9/9/2024

    +
    • npm fix
    -

    130.3.0 9/9/2024

    -
    • upstream ScrollSetCLI
    +

    130.3.0 9/9/2024

    +
    • upstream ScrollSetCLI
    -

    130.2.1 9/8/2024

    -
    • table loop fixes
    • -
    • table json parsing fixes
    +

    130.2.1 9/8/2024

    +
    • table loop fixes
    • +
    • table json parsing fixes
    -

    130.2.0 9/8/2024

    -
    • added limit parser to tables
    • -
    • loop parser can now loop over tables
    +

    130.2.0 9/8/2024

    +
    • added limit parser to tables
    • +
    • loop parser can now loop over tables
    -

    130.1.1 9/5/2024

    -
    • oneTextarea max height
    +

    130.1.1 9/5/2024

    +
    • oneTextarea max height
    -

    130.1.0 9/5/2024

    -
    • oneTextarea forms now show a placeholder and example form
    +

    130.1.0 9/5/2024

    +
    • oneTextarea forms now show a placeholder and example form
    -

    130.0.0 9/4/2024

    -
    • forms now submit via email and generate a nicely formatted email
    -
    • BREAKING: (no one should be effected) classicForm and scrollForm work differently now.
    +

    130.0.0 9/4/2024

    +
    • forms now submit via email and generate a nicely formatted email
    +
    • BREAKING: (no one should be effected) classicForm and scrollForm work differently now.
    -

    129.0.0 9/4/2024

    -
    • added quickImport parser for imports.
    -
    • BREAKING: (no one should be effected) if you had any lines that were just [filename].(scroll|parser), those will now be parsed as imports
    +

    129.0.0 9/4/2024

    +
    • added quickImport parser for imports.
    +
    • BREAKING: (no one should be effected) if you had any lines that were just [filename].(scroll|parser), those will now be parsed as imports
    -

    128.0.1 9/4/2024

    -
    • better handling of circular dependencies with tables
    +

    128.0.1 9/4/2024

    +
    • better handling of circular dependencies with tables
    -

    128.0.0 9/4/2024

    -
    • added quickVideo parser for including videos.
    • -
    • added quickMusic parser for including sound files.
    • -
    • added quickTable parser for including csvs, tsvs, psvs, and ssvs.
    -
    • BREAKING: (no one should be effected) if you had any catch all lines starting with [filename].[one of the above extensions] will now be caught by one of these quick parsers
    +

    128.0.0 9/4/2024

    +
    • added quickVideo parser for including videos.
    • +
    • added quickMusic parser for including sound files.
    • +
    • added quickTable parser for including csvs, tsvs, psvs, and ssvs.
    +
    • BREAKING: (no one should be effected) if you had any catch all lines starting with [filename].[one of the above extensions] will now be caught by one of these quick parsers
    -

    Demos

    +

    Demos

    tests/sipOfCoffee.m4a loop @@ -741,51 +745,51 @@ -

    127.0.0 9/4/2024

    -
    • added quickImage parser. Add an image with just the filename. quickImageParser detects by filename.
    -
    • BREAKING: (no one should be effected) if you had any lines starting with [filename].(png|jpg|et cetera) will be parsed as image.
    +

    127.0.0 9/4/2024

    +
    • added quickImage parser. Add an image with just the filename. quickImageParser detects by filename.
    +
    • BREAKING: (no one should be effected) if you had any lines starting with [filename].(png|jpg|et cetera) will be parsed as image.
    particles.png
    -

    126.1.0 9/3/2024

    - +

    126.1.0 9/3/2024

    +
    -

    126.0.1 9/3/2024

    -
    • column stack fix
    +

    126.0.1 9/3/2024

    +
    • column stack fix
    -

    126.0.0 9/3/2024

    -
    • added scrollForm parser
    • -
    • added support for textarea to ScrollSet forms
    • -
    • added abstractTextareaMeasureParser
    • -
    • added mediumColumn, thinColumn, and wideColumn parsers.
    -
    • BREAKING: renamed form to classicForm
    +

    126.0.0 9/3/2024

    +
    • added scrollForm parser
    • +
    • added support for textarea to ScrollSet forms
    • +
    • added abstractTextareaMeasureParser
    • +
    • added mediumColumn, thinColumn, and wideColumn parsers.
    +
    • BREAKING: renamed form to classicForm
    -

    125.8.0 9/2/2024

    -
    • show * on required form fields
    +

    125.8.0 9/2/2024

    +
    • show * on required form fields
    -

    125.7.0 9/2/2024

    -
    • added form parser
    +

    125.7.0 9/2/2024

    +
    • added form parser
    -

    125.6.0 9/2/2024

    -
    • metaParser now emits link to git tags
    +

    125.6.0 9/2/2024

    +
    • metaParser now emits link to git tags
    -

    125.5.1 9/2/2024

    -
    • make printCsv work with buildCsv
    +

    125.5.1 9/2/2024

    +
    • make printCsv work with buildCsv
    -

    125.5.0 9/2/2024

    -
    • heatrix drops first row if after a transpose
    • -
    • heatrix now does not color years if first row
    +

    125.5.0 9/2/2024

    +
    • heatrix drops first row if after a transpose
    • +
    • heatrix now does not color years if first row
    -

    125.4.0 9/1/2024

    -
    • upgrade ScrollSDK
    +

    125.4.0 9/1/2024

    +
    • upgrade ScrollSDK
    -

    125.3.0 9/1/2024

    -
    • cleanup docs to switch to term Particle Syntax (aka Particles).
    +

    125.3.0 9/1/2024

    +
    • cleanup docs to switch to term Particle Syntax (aka Particles).
    -

    125.2.0 8/31/2024

    -
    • chat parser now supports repeated messages from 1 side via blank lines
    +

    125.2.0 8/31/2024

    +
    • chat parser now supports repeated messages from 1 side via blank lines
    -

    Example:

    +

    Example:

    chat I have some questions @@ -794,83 +798,83 @@ Hmm and for project management? pen and paper
    I have some questions
    What is your current productivity tool
    pen and paper
    Hmm and for project management?
    pen and paper
    -

    125.1.0 8/30/2024

    -
    • switch youTube parser to youtube (all lowercase). Deprecate old spelling.
    +

    125.1.0 8/30/2024

    +
    • switch youTube parser to youtube (all lowercase). Deprecate old spelling.
    -

    125.0.1 8/29/2024

    -
    • particles table fix
    +

    125.0.1 8/29/2024

    +
    • particles table fix
    -

    125.0.0 8/29/2024

    -
    • upgraded ScrollSDK to 84
    -
    • BREAKING: ScrollSDK updates require updating any Parsers with new "Particle" nomenclature
    • -
    • BREAKING: tree is no longer a table format. Use particles instead.
    +

    125.0.0 8/29/2024

    +
    • upgraded ScrollSDK to 84
    +
    • BREAKING: ScrollSDK updates require updating any Parsers with new "Particle" nomenclature
    • +
    • BREAKING: tree is no longer a table format. Use particles instead.
    -

    124.1.0 8/28/2024

    -
    • added buildPdf parser. Currently requires MacOS + Chrome.
    +

    124.1.0 8/28/2024

    +
    • added buildPdf parser. Currently requires MacOS + Chrome.
    -

    124.0.0 8/27/2024

    -
    • BREAKING: removed printMeasures
    • -
    • BREAKING: removed printConcepts
    • -
    • BREAKING: buildConcepts and buildMeasures now generates csv by default instead of tsv
    +

    124.0.0 8/27/2024

    +
    • BREAKING: removed printMeasures
    • +
    • BREAKING: removed printConcepts
    • +
    • BREAKING: buildConcepts and buildMeasures now generates csv by default instead of tsv
    -

    Before:

    +

    Before:

    contacts.scroll
    buildConcepts printConcepts
    -

    After:

    +

    After:

    contacts.scroll
    buildConcepts table printTable
    -

    123.3.0 8/27/2024

    -
    • ending a column with "Url" in tables will now print the column name linked rather than url
    -
    -

    123.2.0 8/26/2024

    -
    • added popularity table to leetsheet
    • -
    • added popularity numbers to parsers
    • -
    • added csv output to printUsageStats
    -
    -

    123.1.0 8/26/2024

    -
    • updated ScrollSDK
    • -
    • better Parsers leetsheet documentation
    -
    -

    123.0.0 8/25/2024

    -
    • updated ScrollSDK
    -
    • BREAKING: (no one should be affected). printLeetSheet is now printScrollLeetSheet
    • -
    • BREAKING: (no one should be affected). printAvancedLeetSheet is now printparsersLeetSheet
    -
    -

    122.0.0 8/25/2024

    -
    • updated ScrollSDK to get paintParser which replaces highlightScopeParser
    -
    • BREAKING: rename highlightScope to paint
    -
    -

    121.0.1 8/20/2024

    -
    • web version printTitle fix.
    -
    -

    121.0.0 8/19/2024

    -
    • emailButton, homeButton, downloadButton can now take a link
    -
    • BREAKING: wwsButton is now downloadButton
    • -
    • BREAKING: removed email. Now do emailButton [email]
    • -
    • BREAKING: removed downloadUrl. Now do downloadButton [url]
    -
    -

    120.2.1 8/19/2024

    -
    • fix indent bug in printRelated
    -
    -

    120.2.0 8/15/2024

    -
    • added br parser
    • -
    • added buildCsv parser
    -
    -

    120.1.0 8/15/2024

    -
    • add clickable examples to leetsheet
    -
    -

    120.0.0 8/14/2024

    -
    • added emailButton parser.
    • -
    • added scrollVersionLink parser.
    • -
    • added wwsButton parser.
    • -
    • center parser now also creates centered sections:
    -
    -

    -

    This should be centered.

    +

    123.3.0 8/27/2024

    +
    • ending a column with "Url" in tables will now print the column name linked rather than url
    +
    +

    123.2.0 8/26/2024

    +
    • added popularity table to leetsheet
    • +
    • added popularity numbers to parsers
    • +
    • added csv output to printUsageStats
    +
    +

    123.1.0 8/26/2024

    +
    • updated ScrollSDK
    • +
    • better Parsers leetsheet documentation
    +
    +

    123.0.0 8/25/2024

    +
    • updated ScrollSDK
    +
    • BREAKING: (no one should be affected). printLeetSheet is now printScrollLeetSheet
    • +
    • BREAKING: (no one should be affected). printAvancedLeetSheet is now printparsersLeetSheet
    +
    +

    122.0.0 8/25/2024

    +
    • updated ScrollSDK to get paintParser which replaces highlightScopeParser
    +
    • BREAKING: rename highlightScope to paint
    +
    +

    121.0.1 8/20/2024

    +
    • web version printTitle fix.
    +
    +

    121.0.0 8/19/2024

    +
    • emailButton, homeButton, downloadButton can now take a link
    +
    • BREAKING: wwsButton is now downloadButton
    • +
    • BREAKING: removed email. Now do emailButton [email]
    • +
    • BREAKING: removed downloadUrl. Now do downloadButton [url]
    +
    +

    120.2.1 8/19/2024

    +
    • fix indent bug in printRelated
    +
    +

    120.2.0 8/15/2024

    +
    • added br parser
    • +
    • added buildCsv parser
    +
    +

    120.1.0 8/15/2024

    +
    • add clickable examples to leetsheet
    +
    +

    120.0.0 8/14/2024

    +
    • added emailButton parser.
    • +
    • added scrollVersionLink parser.
    • +
    • added wwsButton parser.
    • +
    • center parser now also creates centered sections:
    +
    +

    +

    This should be centered.

    -
    • BREAKING: printViewSource is now viewSourceLink
    • -
    • BREAKING: pageFooter has been split into simpler parsers.
    +
    • BREAKING: printViewSource is now viewSourceLink
    • +
    • BREAKING: pageFooter has been split into simpler parsers.
    Find/Replace
    find ^pageFooter replace center @@ -878,122 +882,122 @@ downloadButton viewSourceButton scrollVersionLink
    -

    119.0.0 8/13/2024

    -
    • added homeButton parser.
    • -
    • added leftRightButtons parser.
    • -
    • added viewSourceButton parser.
    -
    • BREAKING: removed pageHeader. Split that into 3 simpler parsers. Change pageHeader to:
    +

    119.0.0 8/13/2024

    +
    • added homeButton parser.
    • +
    • added leftRightButtons parser.
    • +
    • added viewSourceButton parser.
    +
    • BREAKING: removed pageHeader. Split that into 3 simpler parsers. Change pageHeader to:
    Find/Replace
    find ^pageHeader replace homeButton leftRightButtons viewSourceButton
    -
    • BREAKING: printViewSourceBadge is now viewSourceButton
    • -
    • BREAKING: removed homeUrl. Insead do:
    +
    • BREAKING: printViewSourceBadge is now viewSourceButton
    • +
    • BREAKING: removed homeUrl. Insead do:
    homeButton link ../someOtherURL.html
    -

    118.9.0 8/11/2024

    -
    • added video parser.
    +

    118.9.0 8/11/2024

    +
    • added video parser.
    video tests/spirit.mp4 loop
    -

    118.8.0 8/11/2024

    -
    • added music parser for playing songs, podcasts, sounds, et cetera.
    +

    118.8.0 8/11/2024

    +
    • added music parser for playing songs, podcasts, sounds, et cetera.
    music tests/sipOfCoffee.m4a loop
    -

    118.7.0 8/11/2024

    -
    • added v0.1.0 of nickelbackIpsum parser. Idea from gigamick.
    +

    118.7.0 8/11/2024

    +
    • added v0.1.0 of nickelbackIpsum parser. Idea from gigamick.
    -

    118.6.3 8/10/2024

    -
    • label should show up in scatterplot autocomplete
    +

    118.6.3 8/10/2024

    +
    • label should show up in scatterplot autocomplete
    -

    118.6.2 8/9/2024

    -
    • don't trigger keyboard shortcuts if someone is trying to use keyboard back button shortcut. Thanks to Ben Atkin for the bug report!
    +

    118.6.2 8/9/2024

    +
    • don't trigger keyboard shortcuts if someone is trying to use keyboard back button shortcut. Thanks to Ben Atkin for the bug report!
    -

    118.6.1 8/9/2024

    -
    • button link color fix
    +

    118.6.1 8/9/2024

    +
    • button link color fix
    -

    118.6.0 8/9/2024

    -
    • added button parser
    • -
    • added dinkus parser
    +

    118.6.0 8/9/2024

    +
    • added button parser
    • +
    • added dinkus parser
    -

    118.5.0 8/8/2024

    -
    • make image parser easier to extend
    +

    118.5.0 8/8/2024

    +
    • make image parser easier to extend
    -

    118.4.0 8/6/2024

    -
    • add impute parser
    +

    118.4.0 8/6/2024

    +
    • add impute parser
    -

    118.3.0 8/6/2024

    -
    • fetch now writes to localStorage in browser environment.
    • -
    • table now can read from localStorage in browser environment.
    -
    • handle empty values in groupBy parser
    +

    118.3.0 8/6/2024

    +
    • fetch now writes to localStorage in browser environment.
    • +
    • table now can read from localStorage in browser environment.
    +
    • handle empty values in groupBy parser
    -

    118.2.2 8/6/2024

    -
    • fix mac file name lower case issue
    +

    118.2.2 8/6/2024

    +
    • fix mac file name lower case issue
    -

    118.2.1 8/6/2024

    -
    • fix mac file name lower case issue
    +

    118.2.1 8/6/2024

    +
    • fix mac file name lower case issue
    -

    118.2.0 8/6/2024

    -
    • more concise tableSearch styling
    +

    118.2.0 8/6/2024

    +
    • more concise tableSearch styling
    -

    118.1.0 8/6/2024

    -
    • tableSearch now adds copy and CSV buttons.
    +

    118.1.0 8/6/2024

    +
    • tableSearch now adds copy and CSV buttons.
    -

    118.0.0 8/6/2024

    -
    • tables: added delimiter autodetection
    • -
    • tables: added columnName autocomplete
    • -
    • tables: added transpose parser
    • -
    • scatterplot: added x, y, and other autocompletes
    -
    • BREAKING: sparkline [columnName] is now sparkline\n y [columnName]
    +

    118.0.0 8/6/2024

    +
    • tables: added delimiter autodetection
    • +
    • tables: added columnName autocomplete
    • +
    • tables: added transpose parser
    • +
    • scatterplot: added x, y, and other autocompletes
    +
    • BREAKING: sparkline [columnName] is now sparkline\n y [columnName]
    -

    117.1.0 8/5/2024

    -
    • tables: added groupBy parser for "pivot tables"
    +

    117.1.0 8/5/2024

    +
    • tables: added groupBy parser for "pivot tables"
    -

    117.0.1 8/5/2024

    -
    • fix highlight bug in where parser
    +

    117.0.1 8/5/2024

    +
    • fix highlight bug in where parser
    -

    117.0.0 8/5/2024

    -
    • tables: added select parser
    • -
    • tables: added orderBy parser
    • -
    • tables: added rename parser
    • -
    • tables: added reverse parser
    • -
    • added fetch parser
    -
    • BREAKING: (no one should be affected) Scroll now requires NodeJS >= 18.0.0.
    +

    117.0.0 8/5/2024

    +
    • tables: added select parser
    • +
    • tables: added orderBy parser
    • +
    • tables: added rename parser
    • +
    • tables: added reverse parser
    • +
    • added fetch parser
    +
    • BREAKING: (no one should be affected) Scroll now requires NodeJS >= 18.0.0.
    -

    116.0.0 8/3/2024

    -
    • BREAKING: scatterplot now gets data from table.
    +

    116.0.0 8/3/2024

    +
    • BREAKING: scatterplot now gets data from table.
    -

    115.2.0 8/3/2024

    -
    • fix extra space in related snippets
    +

    115.2.0 8/3/2024

    +
    • fix extra space in related snippets
    -

    115.1.0 8/3/2024

    -
    • more regression fixes.
    +

    115.1.0 8/3/2024

    +
    • more regression fixes.
    -

    115.0.2 8/3/2024

    -
    • more regression fixes.
    +

    115.0.2 8/3/2024

    +
    • more regression fixes.
    -

    115.0.1 8/3/2024

    -
    • fix table regression.
    +

    115.0.1 8/3/2024

    +
    • fix table regression.
    -

    115.0.0 8/3/2024

    -
    • table [filename].[json|tsv|csv] to load and print a table from disk
    • -
    • sparkline now can take a table as input:
    +

    115.0.0 8/3/2024

    +
    • table [filename].[json|tsv|csv] to load and print a table from disk
    • +
    • sparkline now can take a table as input:
    table posts.csv sparkline y wordCount -
    • BREAKING: removed support for root level TSV. Not useful enough. Convert any root TSV to a standard table.
    • -
    • BREAKING: removed printTable at root level. Now works nested under table
    • -
    • BREAKING: removed spaceTable. See below to migrate.
    • -
    • BREAKING: removed tabTable. See below to migrate.
    • -
    • BREAKING: removed treeTable. See below to migrate.
    • -
    • BREAKING: removed commaTable. See below to migrate.
    • -
    • BREAKING: removed pipeTable. See below to migrate.
    • -
    • BREAKING: table now takes delimiter and data parsers. Usage:
    +
    • BREAKING: removed support for root level TSV. Not useful enough. Convert any root TSV to a standard table.
    • +
    • BREAKING: removed printTable at root level. Now works nested under table
    • +
    • BREAKING: removed spaceTable. See below to migrate.
    • +
    • BREAKING: removed tabTable. See below to migrate.
    • +
    • BREAKING: removed treeTable. See below to migrate.
    • +
    • BREAKING: removed commaTable. See below to migrate.
    • +
    • BREAKING: removed pipeTable. See below to migrate.
    • +
    • BREAKING: table now takes delimiter and data parsers. Usage:
    @@ -1003,83 +1007,83 @@
    name35
    -

    Regex to find all breaks: ^(printTable|spaceTable|tabTable|treeTable|commaTable|pipeTable|table )

    +

    Regex to find all breaks: ^(printTable|spaceTable|tabTable|treeTable|commaTable|pipeTable|table )

    -

    114.0.0 8/2/2024

    -
    • inlineMarkups now supports setting attributes and tags
    -
    • upgrade scrollsdk to get exponential notation numbers fix
    -
    • BREAKING: (no one should be affected). Removed short form of link inline markup. Just use a href="url" instead.
    +

    114.0.0 8/2/2024

    +
    • inlineMarkups now supports setting attributes and tags
    +
    • upgrade scrollsdk to get exponential notation numbers fix
    +
    • BREAKING: (no one should be affected). Removed short form of link inline markup. Just use a href="url" instead.
    -

    113.0.0 8/1/2024

    -
    • added inlineMarkups parser. Thanks to eugenesvk for the idea.
    • -
    • printSourceStack now prints [Unchanged] if the source was not changed during a compiler step.
    -
    • BREAKING: wrapsOn is now inlineMarkupsOn
    • -
    • BREAKING: wrap is now inlineMarkup
    +

    113.0.0 8/1/2024

    +
    • added inlineMarkups parser. Thanks to eugenesvk for the idea.
    • +
    • printSourceStack now prints [Unchanged] if the source was not changed during a compiler step.
    +
    • BREAKING: wrapsOn is now inlineMarkupsOn
    • +
    • BREAKING: wrap is now inlineMarkup
    -

    112.1.2 7/31/2024

    -
    • counters fix
    +

    112.1.2 7/31/2024

    +
    • counters fix
    -

    112.1.1 7/31/2024

    -
    • counters fix
    +

    112.1.1 7/31/2024

    +
    • counters fix
    -

    112.1.0 7/31/2024

    -
    • added counters parser.
    +

    112.1.0 7/31/2024

    +
    • added counters parser.
    -

    112.0.0 7/31/2024

    -
    • added printSourceStack parser to provide a clean way to view source code at each step in compilation.
    -
    • BREAKING: removed readingList parser. Aftertext is a better choice.
    • -
    • BREAKING: merged printExpandedSource and printOriginalSource into printSourceStack
    +

    112.0.0 7/31/2024

    +
    • added printSourceStack parser to provide a clean way to view source code at each step in compilation.
    +
    • BREAKING: removed readingList parser. Aftertext is a better choice.
    • +
    • BREAKING: merged printExpandedSource and printOriginalSource into printSourceStack
    -

    111.5.0 7/29/2024

    -
    • added buildFiles to CLI class
    +

    111.5.0 7/29/2024

    +
    • added buildFiles to CLI class
    -

    111.4.0 7/29/2024

    -
    • added printExpandedSource and printOriginalSource parsers
    +

    111.4.0 7/29/2024

    +
    • added printExpandedSource and printOriginalSource parsers
    -

    111.3.0 7/29/2024

    -
    • better error messages
    +

    111.3.0 7/29/2024

    +
    • better error messages
    -

    111.2.0 7/29/2024

    -
    • added testStrict parser to allow disabling catch all paragraph on a per file basis.
    +

    111.2.0 7/29/2024

    +
    • added testStrict parser to allow disabling catch all paragraph on a per file basis.
    -

    111.1.0 7/26/2024

    -
    • heatrix now supports using custom labels even for numeric atoms.
    -
    • always include a 0 value in heatrix
    +

    111.1.0 7/26/2024

    +
    • heatrix now supports using custom labels even for numeric atoms.
    +
    • always include a 0 value in heatrix
    -

    111.0.0 7/26/2024

    -
    • redesigned heatrix.
    -
    • BREAKING: (no one should be affected). heatrix is now heatrixAdvanced. heatrix is the simplest fast version now.
    +

    111.0.0 7/26/2024

    +
    • redesigned heatrix.
    +
    • BREAKING: (no one should be affected). heatrix is now heatrixAdvanced. heatrix is the simplest fast version now.
    -

    110.3.0 7/25/2024

    -
    • print 0's in heatrix
    -
    • remove stray console.log
    +

    110.3.0 7/25/2024

    +
    • print 0's in heatrix
    +
    • remove stray console.log
    -

    110.2.0 7/25/2024

    -
    • printCsv now includes year column
    • -
    • added heatrix parser
    +

    110.2.0 7/25/2024

    +
    • printCsv now includes year column
    • +
    • added heatrix parser
    -

    110.1.0 7/25/2024

    -
    • captions now have the same width as their images
    +

    110.1.0 7/25/2024

    +
    • captions now have the same width as their images
    -

    110.0.0 7/24/2024

    -
    • printRelated now has support for tags! No need to add a related line on each post.
    -
    • BREAKING: groups is now tags.
    • -
    • BREAKING: printRelatedList is now just printRelated.
    • -
    • BREAKING: removed related parser. Now just use tags. Apply tags liberally.
    +

    110.0.0 7/24/2024

    +
    • printRelated now has support for tags! No need to add a related line on each post.
    +
    • BREAKING: groups is now tags.
    • +
    • BREAKING: printRelatedList is now just printRelated.
    • +
    • BREAKING: removed related parser. Now just use tags. Apply tags liberally.
    -

    109.5.0 7/21/2024

    -
    • added codeWithHeader parser
    • -
    • added center aftertext markup parser
    • -
    • txt versions of aftertext links now includes the pattern
    • -
    • added printFormatLinks parser
    +

    109.5.0 7/21/2024

    +
    • added codeWithHeader parser
    • +
    • added center aftertext markup parser
    • +
    • txt versions of aftertext links now includes the pattern
    • +
    • added printFormatLinks parser
    -

    109.4.0 7/21/2024

    -
    • printAdvancedLeetSheet now also prints atom parser docs
    +

    109.4.0 7/21/2024

    +
    • printAdvancedLeetSheet now also prints atom parser docs
    -

    109.3.0 7/20/2024

    -
    • easily apply styling to a whole paragraph using aftertext.
    +

    109.3.0 7/20/2024

    +
    • easily apply styling to a whole paragraph using aftertext.
    -

    Demo:

    +

    Demo:

    Hello world bold This is italicized @@ -1088,583 +1092,583 @@ code Strikethrough this whole line. strike -

    Hello world

    -

    This is italicized

    -

    Make this code

    -

    Strikethrough this whole line.

    -

    109.2.0 7/19/2024

    - -
    -

    109.1.0 7/19/2024

    -
    • added support for height and width to images
    • -
    • added support for float to images
    -
    -

    109.0.2 7/19/2024

    -
    • fixed incorrect error report.
    -
    -

    109.0.1 7/19/2024

    -
    • fix atom syntax highlighting in wrapsOn. You can write wrapsOn none to disable all wraps.
    -
    -

    109.0.0 7/18/2024

    -
    • printCsv now exports authors as well
    • -
    • added authors parser to support multiple authors
    • -
    • authors now can use all aftertext features
    -
    • BREAKING: printAuthor is now printAuthors
    • -
    • BREAKING: author is now authors.
    -
    -

    To update from author to authors, you can use this regex find/replace:

    -

    Find: ^author ([^ ]+) (.*)

    -

    Replace: authors 2\n 1 $2

    -

    108.3.1 7/16/2024

    -
    • include microlangs in npm package
    -
    -

    108.3.0 7/16/2024

    -
    • added contacts microlang.
    • -
    • changed gazetteCss link color to be subtler
    • -
    • added microlangs folder
    -
    -

    108.2.0 7/15/2024

    -
    • added center parser! first blink, now center!
    -
    -

    108.1.0 7/15/2024

    -
    • table style improvements
    -
    -

    108.0.0 7/15/2024

    -
    • BREAKING: (no one should be affected) Renamed printCheatSheet to printLeetSheet
    -
    -

    107.3.0 7/14/2024

    -
    • added printUsageStats parser.
    • -
    • docs: bolded commonly used parsers in cheat sheet.
    • -
    • docs: other cheat sheet improvements.
    • -
    • docs: printCheatSheet now prints good txt only docs too.
    -
    -

    107.2.0 7/14/2024

    -
    • docs: clearer, more conscise descriptions of 7 atoms or less on every parser.
    • -
    • docs: printCheatSheet now prints descriptions.
    -
    -

    107.1.0 7/14/2024

    -
    • add printCheatSheet parser v0.1.0
    -
    -

    107.0.0 7/14/2024

    -
    • correct syntax highlighting for the different kinds of Parsers.
    • -
    • removed some parsers from appearing in autocomplete
    -
    • blink works for any colors now.
    -
    • BREAKING: If you have written your own parsers keywordAtom has been replaced by cueAtom. You can do a simple find/replace or just add:
    +

    Hello world

    +

    This is italicized

    +

    Make this code

    +

    Strikethrough this whole line.

    +

    109.2.0 7/19/2024

    + +
    +

    109.1.0 7/19/2024

    +
    • added support for height and width to images
    • +
    • added support for float to images
    +
    +

    109.0.2 7/19/2024

    +
    • fixed incorrect error report.
    +
    +

    109.0.1 7/19/2024

    +
    • fix atom syntax highlighting in wrapsOn. You can write wrapsOn none to disable all wraps.
    +
    +

    109.0.0 7/18/2024

    +
    • printCsv now exports authors as well
    • +
    • added authors parser to support multiple authors
    • +
    • authors now can use all aftertext features
    +
    • BREAKING: printAuthor is now printAuthors
    • +
    • BREAKING: author is now authors.
    +
    +

    To update from author to authors, you can use this regex find/replace:

    +

    Find: ^author ([^ ]+) (.*)

    +

    Replace: authors 2\n 1 $2

    +

    108.3.1 7/16/2024

    +
    • include microlangs in npm package
    +
    +

    108.3.0 7/16/2024

    +
    • added contacts microlang.
    • +
    • changed gazetteCss link color to be subtler
    • +
    • added microlangs folder
    +
    +

    108.2.0 7/15/2024

    +
    • added center parser! first blink, now center!
    +
    +

    108.1.0 7/15/2024

    +
    • table style improvements
    +
    +

    108.0.0 7/15/2024

    +
    • BREAKING: (no one should be affected) Renamed printCheatSheet to printLeetSheet
    +
    +

    107.3.0 7/14/2024

    +
    • added printUsageStats parser.
    • +
    • docs: bolded commonly used parsers in cheat sheet.
    • +
    • docs: other cheat sheet improvements.
    • +
    • docs: printCheatSheet now prints good txt only docs too.
    +
    +

    107.2.0 7/14/2024

    +
    • docs: clearer, more conscise descriptions of 7 atoms or less on every parser.
    • +
    • docs: printCheatSheet now prints descriptions.
    +
    +

    107.1.0 7/14/2024

    +
    • add printCheatSheet parser v0.1.0
    +
    +

    107.0.0 7/14/2024

    +
    • correct syntax highlighting for the different kinds of Parsers.
    • +
    • removed some parsers from appearing in autocomplete
    +
    • blink works for any colors now.
    +
    • BREAKING: If you have written your own parsers keywordAtom has been replaced by cueAtom. You can do a simple find/replace or just add:
    keywordAtom extends cueAtom
    -

    106.0.1 7/13/2024

    -
    • fix bug where running scroll build through passed in SSH command was hanging
    +

    106.0.1 7/13/2024

    +
    • fix bug where running scroll build through passed in SSH command was hanging
    -

    106.0.0 7/11/2024

    -
    • added missing documentation for better autocomplete
    -
    • BREAKING: removed deprecated parsers: startColumns, gazetteHeader, gazetteFooter, byLine
    +

    106.0.0 7/11/2024

    +
    • added missing documentation for better autocomplete
    +
    • BREAKING: removed deprecated parsers: startColumns, gazetteHeader, gazetteFooter, byLine
    -

    105.1.0 7/11/2024

    -
    • added printViewSourceBadge parser
    +

    105.1.0 7/11/2024

    +
    • added printViewSourceBadge parser
    -

    105.0.0 7/11/2024

    -
    • BREAKING: removed the git parser. No longer needed now that we use deep link to all source pages.
    • -
    • BREAKING: renamed viewSource to printViewSource to clarify that it prints an HTML element.
    +

    105.0.0 7/11/2024

    +
    • BREAKING: removed the git parser. No longer needed now that we use deep link to all source pages.
    • +
    • BREAKING: renamed viewSource to printViewSource to clarify that it prints an HTML element.
    -

    104.0.0 7/11/2024

    -
    • BREAKING: the git icons now point to the viewSource url, not to a master git repo page. This should make it easier to go to the specific source file of interest.
    +

    104.0.0 7/11/2024

    +
    • BREAKING: the git icons now point to the viewSource url, not to a master git repo page. This should make it easier to go to the specific source file of interest.
    -

    103.0.2 7/11/2024

    -
    • pageHeader and pageFooter parsers will now only emit icons for git, downloadUrl, and email if those items are set
    +

    103.0.2 7/11/2024

    +
    • pageHeader and pageFooter parsers will now only emit icons for git, downloadUrl, and email if those items are set
    -

    103.0.1 7/11/2024

    -
    • code div fix in slideshows
    +

    103.0.1 7/11/2024

    +
    • code div fix in slideshows
    -

    103.0.0 7/10/2024

    -
    • BREAKING: shortened strikethrough parser to strike
    +

    103.0.0 7/10/2024

    +
    • BREAKING: shortened strikethrough parser to strike
    -

    102.3.0 7/08/2024

    -
    • add support for TSVs to scatterplot
    +

    102.3.0 7/08/2024

    +
    • add support for TSVs to scatterplot
    -

    102.2.2 7/08/2024

    -
    • measureStats fix
    +

    102.2.2 7/08/2024

    +
    • measureStats fix
    -

    102.2.1 7/08/2024

    -
    • loadConcepts fix
    +

    102.2.1 7/08/2024

    +
    • loadConcepts fix
    -

    102.2.0 7/08/2024

    -
    • build scrollsets first and so the outputs can be used to build html files
    +

    102.2.0 7/08/2024

    +
    • build scrollsets first and so the outputs can be used to build html files
    -

    102.1.0 7/07/2024

    - +

    102.1.0 7/07/2024

    +
    -

    102.0.0 7/06/2024

    -
    • changed relatedParser to relatedScrollFilesParser to free up relatedParser for userland.
    -
    • BREAKING: renamed relatedList to printRelatedList
    +

    102.0.0 7/06/2024

    +
    • changed relatedParser to relatedScrollFilesParser to free up relatedParser for userland.
    +
    • BREAKING: renamed relatedList to printRelatedList
    -

    101.6.0 7/06/2024

    -
    • added sortBy to printConcepts parser
    +

    101.6.0 7/06/2024

    +
    • added sortBy to printConcepts parser
    -

    101.5.0 7/05/2024

    -
    • scroll init generates a smaller site
    +

    101.5.0 7/05/2024

    +
    • scroll init generates a smaller site
    -

    101.4.0 7/04/2024

    -
    • renamed descriptionParser to openGraphParser and titleParser to pageTitleParser to free up those names for userparserland.
    +

    101.4.0 7/04/2024

    +
    • renamed descriptionParser to openGraphParser and titleParser to pageTitleParser to free up those names for userparserland.
    -

    101.3.0 7/03/2024

    -
    • added buildJs and script parsers
    +

    101.3.0 7/03/2024

    +
    • added buildJs and script parsers
    -

    101.2.0 7/03/2024

    -
    • added buildCss parser
    -
    • fix css text regression
    +

    101.2.0 7/03/2024

    +
    • added buildCss parser
    +
    • fix css text regression
    -

    101.0.1 7/03/2024

    -
    • fix sitemap regression
    +

    101.0.1 7/03/2024

    +
    • fix sitemap regression
    -

    101.0.0 7/03/2024

    -

    This is a major breaking release meant to simplify and standardize a lot of the core Scroll concepts.

    -
    • added buildHtml parser
    • -
    • added buildRss parser
    • -
    • you no longer need to write importOnly on a file if the file uses no buildCommandParsers.
    -
    • BREAKING: snippets => printSnippets
    • -
    • BREAKING: fullSnippets => printFullSnippets
    • -
    • BREAKING: buildText => buildTxt
    • -
    • BREAKING: scroll build will no longer write anything by default. You now need to explicitly include 1 or more buildCommands in your files, such as buildHtml or buildTxt.
    • -
    • BREAKING: removed tags parser in css themes. Instead of this:
    +

    101.0.0 7/03/2024

    +

    This is a major breaking release meant to simplify and standardize a lot of the core Scroll concepts.

    +
    • added buildHtml parser
    • +
    • added buildRss parser
    • +
    • you no longer need to write importOnly on a file if the file uses no buildCommandParsers.
    +
    • BREAKING: snippets => printSnippets
    • +
    • BREAKING: fullSnippets => printFullSnippets
    • +
    • BREAKING: buildText => buildTxt
    • +
    • BREAKING: scroll build will no longer write anything by default. You now need to explicitly include 1 or more buildCommands in your files, such as buildHtml or buildTxt.
    • +
    • BREAKING: removed tags parser in css themes. Instead of this:
    permalink style.css gazetteCss tags false -

    Do this:

    +

    Do this:

    buildCss style.css gazetteCss -

    100.0.0 7/02/2024

    -
    • if not present, date is now derived from file creation time
    • -
    • if not present, title is now computed by un-camelcasing the filename
    -
    • BREAKING: (no one should be affected) date and title are now computed automatically so if you had a file missing those previously on purpose (for some reason), they will now actually have those.
    +

    100.0.0 7/02/2024

    +
    • if not present, date is now derived from file creation time
    • +
    • if not present, title is now computed by un-camelcasing the filename
    +
    • BREAKING: (no one should be affected) date and title are now computed automatically so if you had a file missing those previously on purpose (for some reason), they will now actually have those.
    -

    99.2.0 7/01/2024

    -
    • added changes.parsers
    • -
    • Scrollsets now supports defining concept delimiters other than id
    +

    99.2.0 7/01/2024

    +
    • added changes.parsers
    • +
    • Scrollsets now supports defining concept delimiters other than id
    -

    99.1.0 7/01/2024

    -
    • added limit parser to snippets
    +

    99.1.0 7/01/2024

    +
    • added limit parser to snippets
    -

    99.0.0 6/30/2024

    -
    • BREAKING: I moved wws to its own repo
    +

    99.0.0 6/30/2024

    +
    • BREAKING: I moved wws to its own repo
    -

    98.0.2 6/30/2024

    -
    • another missing file in package fix
    +

    98.0.2 6/30/2024

    +
    • another missing file in package fix
    -

    98.0.1 6/29/2024

    - +

    98.0.1 6/29/2024

    +
    -

    98.0.0 6/26/2024

    -
    • BREAKING: writeText is now buildText
    • -
    • BREAKING: writeConcepts is now buildConcepts
    • -
    • BREAKING: writeMeasures is now buildMeasures
    • -
    • BREAKING: (no one should be affected), buildFilesInFolder now returns an object of all built files.
    +

    98.0.0 6/26/2024

    +
    • BREAKING: writeText is now buildText
    • +
    • BREAKING: writeConcepts is now buildConcepts
    • +
    • BREAKING: writeMeasures is now buildMeasures
    • +
    • BREAKING: (no one should be affected), buildFilesInFolder now returns an object of all built files.
    -

    97.4.0 6/25/2024

    -
    • added scatterplot can now take a url as a data source
    +

    97.4.0 6/25/2024

    +
    • added scatterplot can now take a url as a data source
    -

    97.3.1 6/24/2024

    -
    • bug fix
    +

    97.3.1 6/24/2024

    +
    • bug fix
    -

    97.3.0 6/24/2024

    -
    • added scatterplot parser
    +

    97.3.0 6/24/2024

    +
    • added scatterplot parser
    -

    97.2.0 6/23/2024

    -
    • added stamp mini language
    +

    97.2.0 6/23/2024

    +
    • added stamp mini language
    -

    97.1.1 6/21/2024

    -
    • test fix
    +

    97.1.1 6/21/2024

    +
    • test fix
    -

    97.1.0 6/21/2024

    - +

    97.1.0 6/21/2024

    +
    sparkline 5 7 27 87 300 17 10 5 -

    97.0.0 6/19/2024

    -
    • BREAKING: upgraded scrollSDK to get grammar to parsers change.
    +

    97.0.0 6/19/2024

    +
    • BREAKING: upgraded scrollSDK to get grammar to parsers change.
    -

    96.0.0 6/18/2024

    -
    • Instead of grammar it's just parsers.
    -
    • BREAKING: (no one should be affected) files previously ending in .grammar now end in .parsers.
    +

    96.0.0 6/18/2024

    +
    • Instead of grammar it's just parsers.
    +
    • BREAKING: (no one should be affected) files previously ending in .grammar now end in .parsers.
    -

    95.2.0 6/16/2024

    -
    • added formatAndSave method.
    +

    95.2.0 6/16/2024

    +
    • added formatAndSave method.
    -

    95.1.0 6/14/2024

    -
    • added wws command line app.
    +

    95.1.0 6/14/2024

    +
    • added wws command line app.
    -

    95.0.0 6/11/2024

    -
    • added downloadUrl parser.
    -
    • BREAKING: canonicalLink is now canonicalUrl.
    • -
    • BREAKING: homeLink is now homeUrl.
    +

    95.0.0 6/11/2024

    +
    • added downloadUrl parser.
    +
    • BREAKING: canonicalLink is now canonicalUrl.
    • +
    • BREAKING: homeLink is now homeUrl.
    -

    94.0.1 6/1/2024

    -
    • make slideshow start after the first dinkus
    +

    94.0.1 6/1/2024

    +
    • make slideshow start after the first dinkus
    -

    94.0.0 5/31/2024

    -
    • jtree is now the "ScrollSDK" and "Tree Notation" is now "Particles"
    -
    • BREAKING: (only advanced users affected), if you wrote custom Parsers, you may need to find/replace jtree with scrollsdk
    +

    94.0.0 5/31/2024

    +
    • jtree is now the "ScrollSDK" and "Tree Notation" is now "Particles"
    +
    • BREAKING: (only advanced users affected), if you wrote custom Parsers, you may need to find/replace jtree with scrollsdk
    -

    93.7.1 5/30/2024

    -
    • katex should print contents in txt compilation
    +

    93.7.1 5/30/2024

    +
    • katex should print contents in txt compilation
    -

    93.7.0 5/29/2024

    -
    • added classes parser
    +

    93.7.0 5/29/2024

    +
    • added classes parser
    -

    93.6.2 5/28/2024

    -
    • more Windows fixes
    +

    93.6.2 5/28/2024

    +
    • more Windows fixes
    -

    93.6.1 5/28/2024

    -
    • upgrade JTree to try and get Scroll working on Windows
    +

    93.6.1 5/28/2024

    +
    • upgrade JTree to try and get Scroll working on Windows
    -

    93.6.0 5/28/2024

    -
    • clean up generated html (add a tag).
    +

    93.6.0 5/28/2024

    +
    • clean up generated html (add a tag).
    -

    93.5.0 5/27/2024

    -
    • clean up generated html (add a tag, for instance).
    +

    93.5.0 5/27/2024

    +
    • clean up generated html (add a tag, for instance).
    -

    93.4.0 5/27/2024

    -
    • improved meta tags
    +

    93.4.0 5/27/2024

    +
    • improved meta tags
    -

    93.3.0 5/27/2024

    -
    • all Parsers can now use requireOnce
    • -
    • added abstractCustomListItemParser for making HTML lists with custom markers
    -
    • bug fix in slideshow
    +

    93.3.0 5/27/2024

    +
    • all Parsers can now use requireOnce
    • +
    • added abstractCustomListItemParser for making HTML lists with custom markers
    +
    • bug fix in slideshow
    -

    93.2.0 5/23/2024

    -
    • writeConcepts and writeMeasures now strips blank values when generating JSON and/or JS
    +

    93.2.0 5/23/2024

    +
    • writeConcepts and writeMeasures now strips blank values when generating JSON and/or JS
    -

    93.1.0 5/23/2024

    -
    • tableSearch now will save the sort order to the url
    -
    • fixed bug where updates to externals would not get copied
    +

    93.1.0 5/23/2024

    +
    • tableSearch now will save the sort order to the url
    +
    • fixed bug where updates to externals would not get copied
    -

    93.0.0 5/21/2024

    -
    • scroll format command now also prettifies concepts and measurements in ScrollSets. If a measurement's sortIndex jumps to a new integer (for example, 1.9 to 2.1), a newline will be inserted before it.
    -
    • BREAKING: (no one should be affected) the default sortIndex is now 1.9, and the sort index of id is 1.0. Update sortIndex accordingly.
    +

    93.0.0 5/21/2024

    +
    • scroll format command now also prettifies concepts and measurements in ScrollSets. If a measurement's sortIndex jumps to a new integer (for example, 1.9 to 2.1), a newline will be inserted before it.
    +
    • BREAKING: (no one should be affected) the default sortIndex is now 1.9, and the sort index of id is 1.0. Update sortIndex accordingly.
    -

    92.0.0 5/20/2024

    -
    • simplified ScrollSets by removing the filename "magic". When putting a concept into a file, make the id the filename (without the extension). Have the id be a simple one atom url friendly string. If you want a pretty title, add a name measure. Everything much simpler this way.
    -
    • BREAKING: (no one should be affected) remove any spaghetti filename code.
    +

    92.0.0 5/20/2024

    +
    • simplified ScrollSets by removing the filename "magic". When putting a concept into a file, make the id the filename (without the extension). Have the id be a simple one atom url friendly string. If you want a pretty title, add a name measure. Everything much simpler this way.
    +
    • BREAKING: (no one should be affected) remove any spaghetti filename code.
    -

    91.0.0 5/19/2024

    -
    • printAuthor parser prints the author defined by author. byLine has been deprecated--replace with printAuthor.
    -
    • BREAKING: author parser now takes a URL.
    +

    91.0.0 5/19/2024

    +
    • printAuthor parser prints the author defined by author. byLine has been deprecated--replace with printAuthor.
    +
    • BREAKING: author parser now takes a URL.
    -

    90.5.0 5/19/2024

    -
    • added printDate parser
    +

    90.5.0 5/19/2024

    +
    • added printDate parser
    -

    90.4.1 5/19/2024

    -
    • helpfulNotFound now assumes the script can be found at the root of the domain.
    +

    90.4.1 5/19/2024

    +
    • helpfulNotFound now assumes the script can be found at the root of the domain.
    -

    90.4.0 5/19/2024

    -
    • helpful 404 can now take multiple sitemaps as a parameter
    +

    90.4.0 5/19/2024

    +
    • helpful 404 can now take multiple sitemaps as a parameter
    -

    90.3.0 5/18/2024

    -
    • renamed Scroll Datasets to ScrollSets.
    +

    90.3.0 5/18/2024

    +
    • renamed Scroll Datasets to ScrollSets.
    -

    90.2.3 5/18/2024

    -
    • Coverage in Measurements should round down.
    +

    90.2.3 5/18/2024

    +
    • Coverage in Measurements should round down.
    -

    90.2.2 5/18/2024

    -
    • fixed Grammar method name conflict with measures. Now they should be isMeasureRequired.
    +

    90.2.2 5/18/2024

    +
    • fixed Grammar method name conflict with measures. Now they should be isMeasureRequired.
    -

    90.2.1 5/18/2024

    -
    • fixed metaTags from breaking try.scroll.pub
    • -
    • got slideshow working on try.scroll.pub
    +

    90.2.1 5/18/2024

    +
    • fixed metaTags from breaking try.scroll.pub
    • +
    • got slideshow working on try.scroll.pub
    -

    90.2.0 5/18/2024

    -
    • added slideshow parser
    • -
    • grammar extensions can now use "copyFromExternal"
    +

    90.2.0 5/18/2024

    +
    • added slideshow parser
    • +
    • grammar extensions can now use "copyFromExternal"
    -

    90.1.1 5/17/2024

    -
    • added test and fixed bug with printTitle in text files
    +

    90.1.1 5/17/2024

    +
    • added test and fixed bug with printTitle in text files
    -

    90.1.0 5/17/2024

    -
    • 2.5x faster test running thanks to adding cacheing to measure parser
    +

    90.1.0 5/17/2024

    +
    • 2.5x faster test running thanks to adding cacheing to measure parser
    -

    90.0.0 5/16/2024

    -
    • BREAKING: idParser and filenameParser no longer ship in default grammar. This will allow for useful future dataset features. Instead, add them yourself if you are using Concepts like this:
    +

    90.0.0 5/16/2024

    +
    • BREAKING: idParser and filenameParser no longer ship in default grammar. This will allow for useful future dataset features. Instead, add them yourself if you are using Concepts like this:
    idParser extends abstractIdParser filenameParser extends abstractFilenameParser -

    89.2.1 5/16/2024

    -
    • fixed required measurements when computeds are involved
    -
    • print folder name when running scroll test
    +

    89.2.1 5/16/2024

    +
    • fixed required measurements when computeds are involved
    +
    • print folder name when running scroll test
    -

    89.2.0 5/16/2024

    -
    • added support for required measurements
    +

    89.2.0 5/16/2024

    +
    • added support for required measurements
    -

    89.1.2 5/16/2024

    -
    • loadConcepts should only load Scroll files containing a concept (as determined by having an "id ").
    +

    89.1.2 5/16/2024

    +
    • loadConcepts should only load Scroll files containing a concept (as determined by having an "id ").
    -

    89.1.1 5/16/2024

    -
    • minor fix in themes grammar.
    +

    89.1.1 5/16/2024

    +
    • minor fix in themes grammar.
    -

    89.1.0 5/15/2024

    -
    • added ability to override content in printTitle
    +

    89.1.0 5/15/2024

    +
    • added ability to override content in printTitle
    -

    89.0.0 5/15/2024

    -
    • printTitle parser added for easier templates
    -
    • BREAKING: title is now a setter. This regex handles the migration:
      • ^title printTitle\ntitle
        • Then (optionally) run "scroll format" or "scroll list | scroll format" to format which will automove your titles up top.
    +

    89.0.0 5/15/2024

    +
    • printTitle parser added for easier templates
    +
    • BREAKING: title is now a setter. This regex handles the migration:
      • ^title printTitle\ntitle
        • Then (optionally) run "scroll format" or "scroll list | scroll format" to format which will automove your titles up top.
    -

    88.0.0 5/15/2024

    -
    • easier snippets! if you have a dinkus anywhere "**|***|---", that will be used as an "endSnippet"
    -
    • BREAKING: (no one should be affected). If you had a post that purposefully had no endSnippet and does have a dinkus, it will now generate a snippet rather than using the whole post.
    +

    88.0.0 5/15/2024

    +
    • easier snippets! if you have a dinkus anywhere "**|***|---", that will be used as an "endSnippet"
    +
    • BREAKING: (no one should be affected). If you had a post that purposefully had no endSnippet and does have a dinkus, it will now generate a snippet rather than using the whole post.
    -

    87.0.1 5/15/2024

    -
    • fixed off by 1 bug in computed measures
    +

    87.0.1 5/15/2024

    +
    • fixed off by 1 bug in computed measures
    -

    87.0.0 5/14/2024

    -
    • BREAKING: added stricter conventions for measureNames. Restrict them from containing "_", which we use to combine nested measures.
    +

    87.0.0 5/14/2024

    +
    • BREAKING: added stricter conventions for measureNames. Restrict them from containing "_", which we use to combine nested measures.
    -

    86.0.2 5/12/2024

    -
    • add relative paths to sitemaps if needed
    +

    86.0.2 5/12/2024

    +
    • add relative paths to sitemaps if needed
    -

    86.0.1 5/12/2024

    -
    • improved test coverage
    +

    86.0.1 5/12/2024

    +
    • improved test coverage
    -

    86.0.0 5/12/2024

    -
    • added a v1 version of a markdown style of doing quotes > (with aftertext support)!
    +

    86.0.0 5/12/2024

    +
    • added a v1 version of a markdown style of doing quotes > (with aftertext support)!
      -
    • made the View Source links have same style as other Scroll chrome, and removed those links in short snippet renders (never get needed there--only on the actual page)
    -
    • BREAKING: if you have any lines starting with > , those will now be parsed by the quickQuoteParser
    +
  • made the View Source links have same style as other Scroll chrome, and removed those links in short snippet renders (never get needed there--only on the actual page)
  • +
    • BREAKING: if you have any lines starting with > , those will now be parsed by the quickQuoteParser
    -

    85.9.0 5/12/2024

    -
    • added minutes to read (assuming 200 atoms/minute) to printSearch and printCsv exports
    • -
    • you can now pass groups to sitemap for making sitemaps specific to certain folders/groups
    • -
    • for printFeed, snippets, fullSnippets providing groups is now optional
    +

    85.9.0 5/12/2024

    +
    • added minutes to read (assuming 200 atoms/minute) to printSearch and printCsv exports
    • +
    • you can now pass groups to sitemap for making sitemaps specific to certain folders/groups
    • +
    • for printFeed, snippets, fullSnippets providing groups is now optional
    -

    85.8.0 5/10/2024

    -
    • measures and concepts can now also be written as Javascript for explore pages.
    +

    85.8.0 5/10/2024

    +
    • measures and concepts can now also be written as Javascript for explore pages.
    -

    85.7.0 5/10/2024

    -
    • replaceJs now has access to the filepath
    +

    85.7.0 5/10/2024

    +
    • replaceJs now has access to the filepath
    -

    85.6.0 5/10/2024

    -
    • sortBy can now sort on multiple columns and handle asc/desc
    +

    85.6.0 5/10/2024

    +
    • sortBy can now sort on multiple columns and handle asc/desc
    -

    85.5.0 5/10/2024

    -
    • writeConcepts and writeMeasures can now take multiple filenames in one line and also include a sortBy condition.
    +

    85.5.0 5/10/2024

    +
    • writeConcepts and writeMeasures can now take multiple filenames in one line and also include a sortBy condition.
    -

    85.4.0 5/10/2024

    -
    • Scroll now auto-adds a "filename" measure as to which file the concept appears in.
    +

    85.4.0 5/10/2024

    +
    • Scroll now auto-adds a "filename" measure as to which file the concept appears in.
    -

    85.3.0 5/10/2024

    -
    • Scroll now only wraps compiler output with html tags if permalink ends in "html" or "htm". Makes it easier to use Scroll to compile files to different language targets.
    +

    85.3.0 5/10/2024

    +
    • Scroll now only wraps compiler output with html tags if permalink ends in "html" or "htm". Makes it easier to use Scroll to compile files to different language targets.
    -

    85.2.1 5/10/2024

    -
    • fixed bug where id measure was appearing twice
    +

    85.2.1 5/10/2024

    +
    • fixed bug where id measure was appearing twice
    -

    85.2.0 5/10/2024

    -
    • fixed bug with nested measure names.
    -
    • some slight enhancements to computed measures
    +

    85.2.0 5/10/2024

    +
    • fixed bug with nested measure names.
    +
    • some slight enhancements to computed measures
    -

    85.1.0 5/09/2024

    -
    • added support for nested measures. The underscore "_" character is used for column names for nested measures for the broadest compatibility with other data science tools
    +

    85.1.0 5/09/2024

    +
    • added support for nested measures. The underscore "_" character is used for column names for nested measures for the broadest compatibility with other data science tools
    -

    85.0.0 5/08/2024

    -
    • upgraded jtree to get ability for faster compilations
    -
    • BREAKING: removed replaceDefault parser. No one should be affected.
    • -
    • BREAKING: renamed nodejs parser to `replaceNodejs. Few should be affected.
    +

    85.0.0 5/08/2024

    +
    • upgraded jtree to get ability for faster compilations
    +
    • BREAKING: removed replaceDefault parser. No one should be affected.
    • +
    • BREAKING: renamed nodejs parser to `replaceNodejs. Few should be affected.
    -

    84.10.1 5/08/2024

    -
    • fix hanging test (infinite loop regression) during build when you have just 1 file.
    +

    84.10.1 5/08/2024

    +
    • fix hanging test (infinite loop regression) during build when you have just 1 file.
    -

    84.10.0 5/08/2024

    -
    • faster html generation when keyboardNav was in use. First implementation was accidentally quadratic.
    +

    84.10.0 5/08/2024

    +
    • faster html generation when keyboardNav was in use. First implementation was accidentally quadratic.
    -

    84.9.0 5/08/2024

    -
    • faster concepts and measures compilation
    +

    84.9.0 5/08/2024

    +
    • faster concepts and measures compilation
    -

    84.8.1 5/07/2024

    -
    • printSearchTable now generates correct links when searching across multiple folders
    +

    84.8.1 5/07/2024

    +
    • printSearchTable now generates correct links when searching across multiple folders
    -

    84.8.0 5/07/2024

    -
    • tableSearch now takes a parameter from the url #q=[search]. Updating the searching box also updates url.
    +

    84.8.0 5/07/2024

    +
    • tableSearch now takes a parameter from the url #q=[search]. Updating the searching box also updates url.
    -

    84.7.0 5/07/2024

    -
    • Added printSearchTable parser
    +

    84.7.0 5/07/2024

    +
    • Added printSearchTable parser
    -

    84.6.0 5/07/2024

    -
    • Added support for computed measures
    • -
    • better measure statistics printing
    +

    84.6.0 5/07/2024

    +
    • Added support for computed measures
    • +
    • better measure statistics printing
    -

    84.5.1 5/07/2024

    -
    • better error printing with scroll test and fix bug in percentAtom
    +

    84.5.1 5/07/2024

    +
    • better error printing with scroll test and fix bug in percentAtom
    -

    84.5.0 5/07/2024

    -
    • Added writeMeasures and printMeasures parsers
    • -
    • Added abstractPercentageMeasureParser
    +

    84.5.0 5/07/2024

    +
    • Added writeMeasures and printMeasures parsers
    • +
    • Added abstractPercentageMeasureParser
    -

    84.4.0 5/06/2024

    -
    • Added loadConcepts parser for if you had a dataset split into many files in a folder.
    • -
    • Added float sortIndex [int] for sorting the measures(columns) in dataset generation. Lower sort indexes come first.
    +

    84.4.0 5/06/2024

    +
    • Added loadConcepts parser for if you had a dataset split into many files in a folder.
    • +
    • Added float sortIndex [int] for sorting the measures(columns) in dataset generation. Lower sort indexes come first.
    -

    84.3.0 5/06/2024

    -
    • scroll test will now report if an aftertext pattern has no matches.
    +

    84.3.0 5/06/2024

    +
    • scroll test will now report if an aftertext pattern has no matches.
    -

    84.2.0 5/06/2024

    -
    • added **** as an "end of post dinkus" which prints ⁂
    • -
    • tabular tables now support aftertext!
    -
    • allow multiatom strings to be used as an id in concepts
    +

    84.2.0 5/06/2024

    +
    • added **** as an "end of post dinkus" which prints ⁂
    • +
    • tabular tables now support aftertext!
    +
    • allow multiatom 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.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 parser 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 parser
    +

    84.0.0 5/04/2024

    +
    • Datasets (aka "Concept files") version 2! Much simpler.
    • +
    • Added the id parser 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 parser
    -
    • BREAKING: removed :: parser. Now concepts are simply identified by the parser 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.
    -

    83.3.0 5/04/2024

    -
    • repeating the baseUrl after openGraphImage is no longer required. Will be auto-added if not present.
    +
    • BREAKING: removed :: parser. Now concepts are simply identified by the parser 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.
    +

    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 parser
    • -
    • added thinColumns parser.
    +

    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 parser
    • +
    • added thinColumns parser.
    -

    Note: startColumns will eventually be removed. You can now safely switch those to thinColumns.

    -

    83.1.0 5/03/2024

    -
    • added expander parser
    +

    Note: startColumns will eventually be removed. You can now safely switch those to thinColumns.

    +

    83.1.0 5/03/2024

    +
    • added expander parser
    -
    Click me -

    Anything in the section will show up here. A blank line ends a section.

    +
    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 parser
    -
    • 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 parser 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 parsers
    -
    -

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

    80.2.0 4/29/2024

    -
    • added helpfulNotFound parser 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

    - -
    -

    Note: there are likely to be a few rapid releases to refine this.

    -

    79.1.0 4/27/2024

    -
    • added printSiteMap parser 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 *:: parsers.
    -
    -
    • BREAKING: if you had lines starting with a atom 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:

    +

    83.0.0 5/03/2024

    +
    • all tables now print in plain text outputs
    • +
    • added printTable parser
    +
    • 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 parser 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 parsers
    +
    +

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

    80.2.0 4/29/2024

    +
    • added helpfulNotFound parser 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

    + +
    +

    Note: there are likely to be a few rapid releases to refine this.

    +

    79.1.0 4/27/2024

    +
    • added printSiteMap parser 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 *:: parsers.
    +
    +
    • BREAKING: if you had lines starting with a atom 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:

    css html {font-size: var(--scrollBaseFontSize, 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
    +
    • 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.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.1 4/16/2024

    +
    • fix bug where quick links could not be used inside a footnote definition.
    -

    75.1.0 4/10/2024

    -
    • Added *** parser to print a Dinkus
    +

    75.1.0 4/10/2024

    +
    • Added *** parser to print a Dinkus
    Now I will show an example. @@ -1672,54 +1676,54 @@ *** Above is a dinkus. -

    Now I will show an example.

    +

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

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

    74.0.0 4/06/2024

    +
    • (Reverted)
    -

    73.2.0 4/05/2024

    -
    • added thanksTo parser
    +

    73.2.0 4/05/2024

    +
    • added thanksTo parser
    -

    73.1.0 4/05/2024

    -
    • added plainText parser
    • -
    • added printSource parser to be able to dump the source code for a group of posts to a plain text file.
    +

    73.1.0 4/05/2024

    +
    • added plainText parser
    • +
    • added printSource parser 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 parser to make it as easy to generate a CSV of a blog as it is to generate an RSS feed
    +

    73.0.0 4/03/2024

    +
    • added printCsv parser 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.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.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.2 11/04/2023

    +
    • do not compile aftertext nodes having the "hidden" attribute
    -

    72.4.1 11/04/2023

    -
    • fixed regression where was present in RSS pages. Thank you to Joao for the report.
    +

    72.4.1 11/04/2023

    +
    • fixed regression where 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
    +

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

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

    72.2.0 5/31/2023

    +
    • added wideColumns parser
    -

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

    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.
    @@ -1734,264 +1738,264 @@
    -

    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 parser 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 parser 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 parser 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 parsers start with a lowercase or symbol, and you will avoid any future parser 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 parser. KaTeX: "The fastest math typesetting library for the web."
    -
    -

    69.2.0 4/18/2023

    -
    • added the tag parser to thought nodes so you can change the compiled html tag (needed in rare circumstances)
    • -
    • added the thought parser and standardized vocab to calling the thought node the main node that most nodes extend.
    • -
    • added the style parser 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 ParticleFileSystem 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:
    +

    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 parser 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 parser 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 parser 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 parsers start with a lowercase or symbol, and you will avoid any future parser 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 parser. KaTeX: "The fastest math typesetting library for the web."
    +
    +

    69.2.0 4/18/2023

    +
    • added the tag parser to thought nodes so you can change the compiled html tag (needed in rare circumstances)
    • +
    • added the thought parser and standardized vocab to calling the thought node the main node that most nodes extend.
    • +
    • added the style parser 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 ParticleFileSystem 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.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 parsers 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
    +

    67.0.0 4/2/2023

    +

    This is The Theme Release.

    +
    • Introduce the idea of parsers 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).
    +

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

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

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

    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.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 parser canonicalUrl if you need to include query strings in canonical link.
    +

    62.5.0 3/23/2023

    +
    • New parser canonicalUrl if you need to include query strings in canonical link.
    canonicalUrl https://scroll.pub/tests/maps.html?canonLinkTest=true -

    62.4.0 3/23/2023

    -
    • SEO fix: metaTags now sets canonical link
    +

    62.4.0 3/23/2023

    +
    • SEO fix: metaTags now sets canonical link
    -

    62.3.0 3/22/2023

    - +

    62.3.0 3/22/2023

    +
    -

    62.2.0 3/15/2023

    -
    • Added copyButtons parser. Use that to give code blocks a copy-to-clipboard button on hover.
    +

    62.2.0 3/15/2023

    +
    • Added copyButtons parser. 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.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.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
    +

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

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

    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> -
    • 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 parser: ---
    +
    • 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 parser: ---

    -

    59.5.0 3/9/2023

    -
    • Additional shorter comment syntax: //. Previously it was only comment
    +

    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.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.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.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.1.0 3/6/2023

    +
    • scroll init now creates a .gitignore file and also runs git init.
    -

    59.0.0 3/3/2023

    -
    • image parser 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
    +

    59.0.0 3/3/2023

    +
    • image parser 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.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.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.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.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
    +

    58.3.0 2/28/2023

    +
    • checklists! use [] and [x]
    • +
    • lists - are now indentable
    -

    Scroll now has checklists!

    +

    Scroll now has checklists!

    -

    -

    -
    • Regular Lists are also now indentable
      • This is a subparticle
        • And this is a subsubparticle
    -

    58.2.3 2/22/2023

    -
    • Windows fix
    +

    +

    +
    • Regular Lists are also now indentable
      • This is a subparticle
        • And this is a subsubparticle
    +

    58.2.3 2/22/2023

    +
    • Windows fix
    -

    58.2.2 2/21/2023

    -
    • Bug fix
    +

    58.2.2 2/21/2023

    +
    • Bug fix
    -

    58.2.1 2/21/2023

    -
    • fix for empty atoms
    +

    58.2.1 2/21/2023

    +
    • fix for empty atoms
    -

    58.2.0 2/21/2023

    -
    • table nodes now make atoms that are just a link links
    +

    58.2.0 2/21/2023

    +
    • table nodes now make atoms that are just a link links
    -

    58.1.0 2/16/2023

    -
    • added loop node type:
    +

    58.1.0 2/16/2023

    +
    • added loop node type:
    loop atoms #2a2d34ff #009ddcff #f26430ff #6761a8ff #009b72ff javascript `<span style="background-color: ${item}; width: 30px; height: 30px; display: inline-block;"> </span>` -

    loop

    -

    58.0.1 2/9/2023

    -
    • made startColumns clear the section stack. Simpler behavior.
    +

    loop

    +

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

    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.1 2/8/2023

    +
    • fix permalink regression
    -

    57.0.0 2/8/2023

    -
    • added support for css one liners
    +

    57.0.0 2/8/2023

    +
    • added support for css one liners
    🎉 added support for `css` one liners class blueOneLiner css .blueOneLiner { color: blue;}
    -
    • title nodes are now proper aftertext nodes and can use all features of aftertext
    • -
    • the hidden parser 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:
    +
    • title nodes are now proper aftertext nodes and can use all features of aftertext
    • +
    • the hidden parser 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:
    # 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.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.
    +

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

    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. -
    3. Two
    4. -
    5. Three
    +
    1. One
    2. +
    3. Two
    4. +
    5. Three
    -

    55.4.1 1/31/2023

    -
    • fix spurious table grammar error message
    +

    55.4.1 1/31/2023

    +
    • fix spurious table grammar error message
    -

    55.4.0 1/30/2023

    -
    • added table parser which supports custom delimiters:
    +

    55.4.0 1/30/2023

    +
    • added table parser which supports custom delimiters:
    table delimiter && @@ -1999,208 +2003,208 @@ 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.
    +

    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
    +

    This whole text will be blue.

    +

    55.2.0 1/26/2023

    +
    • upgrade jtree
    -

    55.1.0 1/20/2023

    -
    • added replaceJs parser.
    +

    55.1.0 1/20/2023

    +
    • added replaceJs parser.
    -

    55.0.1 1/19/2023

    -
    • fix bug where variables were replacing themselves, leading to possible errors.
    +

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

    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:
    nodemon -e scroll -x "scroll build" -

    Or alias it:

    +

    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:

    +

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

    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. https://scroll.pub 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 parser 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.
    +
    • 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 parser 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 atom type for url.
    +

    53.0.2 1/18/2023

    +
    • fix: youTube definition was missing a atom type for url.
    -

    53.0.1 1/17/2023

    -
    • fix: redirectTo definition was missing a atom type for url.
    +

    53.0.1 1/17/2023

    +
    • fix: redirectTo definition was missing a atom 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.
    +

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

    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: getFilesWithTag was including files marked with importOnly
    +

    52.1.1 1/12/2023

    +
    • fix: getFilesWithTag was including files marked with importOnly
    -

    52.1.0 1/12/2023

    -
    • Upgrade JTree.
    +

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

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

    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.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.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 parser. Referencing a footnote is done the same way but now footnotes just print immediately like you'd expect.
    +

    50.0.0 1/4/2023

    +
    • made footnotes compile faster
    +
    • BREAKING: simplified footnotes by removing notes parser. Referencing a footnote is done the same way but now footnotes just print immediately like you'd expect.
    For example^exampleFootnote -

    For example[1]

    +

    For example[1]

    [1] This is an example footnote.

    ^exampleFootnote This is an example footnote. -

    49.1.0 1/4/2023

    -
    • add viewSource parser.
    +

    49.1.0 1/4/2023

    +
    • add viewSource parser.
    -

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

    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 parser for embedding youTube videos with proper responsive sizing.
    +

    48.3.0 1/2/2023

    +
    • added youTube parser for embedding youTube videos with proper responsive sizing.
    -

    48.2.0 1/2/2023

    -
    • simplify default theme by removing ornamental borders
    +

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

    +

    48.0.0 1/1/2023

    +

    This release simplifies and removes things from the default install.

    -
    • BREAKING: the github parser is now git to make it clearer what it does. The git SVG is now used in the default theme.
    • -
    • BREAKING: removed twitter parser and removed the Twitter link from default theme.
    • -
    • BREAKING: SVGS is no longer exported.
    - -

    47.4.0 12/30/2022

    -
    • rss 2.0 now generated with printFeed, meaning pubDate and lastBuildDate are included.
    +
    • BREAKING: the github parser is now git to make it clearer what it does. The git SVG is now used in the default theme.
    • +
    • BREAKING: removed twitter parser and removed the Twitter link from default theme.
    • +
    • BREAKING: SVGS is no longer exported.
    + +

    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.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.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.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.2 12/05/2022

    +
    • character encoding regression fix.
    -

    47.1.1 11/30/2022

    -
    • init fixes
    +

    47.1.1 11/30/2022

    +
    • init fixes
    -

    47.1.0 11/29/2022

    -
    • you can now specify number of max columns in startColumns parser
    -
    • fixed body padding regression
    +

    47.1.0 11/29/2022

    +
    • you can now specify number of max columns in startColumns parser
    +
    • 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.

    +

    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 parser.
    • -
    • BREAKING: removed , , , and 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 parser works now
    +
    • BREAKING: removed automatic meta tag generation. You now need to explicitly add a metaTags parser.
    • +
    • BREAKING: removed , , , and 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 parser works now
    -

    46.1.0 11/27/2022

    -
    • scrollCss 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.

    +

    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 parser 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.
    +
    • 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 parser 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

    +

    Footnotes example

    -

    Brockton is a city in Massachusetts[2]. It was incorporated in 1881[3].

    -

    Notes

    +

    Brockton is a city in Massachusetts[2]. It was incorporated in 1881[3].

    +

    Notes

    [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.1 11/24/2022

    +
    • fix hidden title bug
    -

    44.0.0 11/24/2022

    -

    This is the title simplification refactor release.

    -
    • new: description parser for use in open graph description generation.
    • -
    • new: optional hidden parser 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 parsers. 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 parser.
    +

    44.0.0 11/24/2022

    +

    This is the title simplification refactor release.

    +
    • new: description parser for use in open graph description generation.
    • +
    • new: optional hidden parser 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 parsers. 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 parser.
    -

    43.1.1 11/22/2022

    -
    • fix aftertext bug where http quick links were not matching.
    +

    43.1.1 11/22/2022

    +
    • fix aftertext bug where http quick links were not matching.
    -

    43.1.0 11/14/2022

    -
    • new: new SVGS export when using as a library.
    +

    43.1.0 11/14/2022

    +
    • new: new SVGS export when using as a library.
    -

    43.0.1 11/14/2022

    -
    • list element (- some item) compiler was generating an extra p tag.
    +

    43.0.1 11/14/2022

    +
    • list element (- some item) compiler was generating an extra p tag.
    -

    43.0.0 11/12/2022

    -
    • 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.
    +

    43.0.0 11/12/2022

    +
    • 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 11/09/2022

    -
    • BREAKING: scroll check is now scroll test
    +

    42.0.0 11/09/2022

    +
    • BREAKING: scroll check is now scroll test
    -

    41.0.0 11/08/2022

    -
    • BREAKING: switched from date format of MM-DD-YYYY to YYYY.MM.DD
    +

    41.0.0 11/08/2022

    +
    • 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 11/05/2022

    -
    • BREAKING: (no one should be affected) caption now extends the thought (*) node.
    +

    40.0.0 11/05/2022

    +
    • 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 parser caption and you can just use * directly.

    -

    39.0.0 11/03/2022

    -
    • 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:
    +

    39.0.0 11/03/2022

    +
    • 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 settings.scroll @@ -2209,180 +2213,180 @@ printFeed index comment Add the line below to your posts and/or settings import file. rssFeedUrl feed.xml -

    38.2.0 11/01/2022

    -
    • new dayjs aftertext directive.
    -
    -

    38.1.0 11/01/2022

    -
    • fix group page not having a header.
    -
    -

    38.0.0 10/31/2022

    -
    • add left and right buttons to default theme.
    -
    -

    37.1.1 10/28/2022

    -
    • Fixed bad table regression where table content was not printing
    -
    -

    37.1.0 10/28/2022

    -
    • Documentation improvement
    -
    -

    37.0.0 10/28/2022

    -
    • 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: ([^ ]+)🔗([^ ]+) 2">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 parsers 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 parsers above if you'd prefer.

    -

    36.1.0 10/27/2022

    -
    • 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 10/24/2022

    -
    • Fix home icon
    -
    -

    36.0.0 10/22/2022

    -
    • BREAKING: simpler CSS and header
    -
    -

    35.1.2 10/12/2022

    -
    • cleanup previous commit
    -
    -

    35.1.1 10/12/2022

    -
    • fix duplicated text in * nodes bug
    -
    -

    35.1.0 10/05/2022

    -
    • Added new better way to do lists.
    +

    38.2.0 11/01/2022

    +
    • new dayjs aftertext directive.
    +
    +

    38.1.0 11/01/2022

    +
    • fix group page not having a header.
    +
    +

    38.0.0 10/31/2022

    +
    • add left and right buttons to default theme.
    +
    +

    37.1.1 10/28/2022

    +
    • Fixed bad table regression where table content was not printing
    +
    +

    37.1.0 10/28/2022

    +
    • Documentation improvement
    +
    +

    37.0.0 10/28/2022

    +
    • 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: ([^ ]+)🔗([^ ]+) 2">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 parsers 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 parsers above if you'd prefer.

    +

    36.1.0 10/27/2022

    +
    • 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 10/24/2022

    +
    • Fix home icon
    +
    +

    36.0.0 10/22/2022

    +
    • BREAKING: simpler CSS and header
    +
    +

    35.1.2 10/12/2022

    +
    • cleanup previous commit
    +
    +

    35.1.1 10/12/2022

    +
    • fix duplicated text in * nodes bug
    +
    +

    35.1.0 10/05/2022

    +
    • Added new better way to do lists.
    🎉 Added new better way to do lists.
    -

    35.0.0 10/04/2022

    -
    • BREAKING: (no one should be affected) changed return value of api method findScrollsInDirRecursive.
    +

    35.0.0 10/04/2022

    +
    • BREAKING: (no one should be affected) changed return value of api method findScrollsInDirRecursive.
    -

    34.2.0 10/03/2022

    -
    • add redirectTo tag
    +

    34.2.0 10/03/2022

    +
    • add redirectTo tag
    -

    34.1.0 10/02/2022

    -
    • had an idea for a new type of text tag that blinks
    +

    34.1.0 10/02/2022

    +
    • had an idea for a new type of text tag that blinks
    -

    34.0.3 9/30/2022

    -
    • Fix github workflow building.
    +

    34.0.3 9/30/2022

    +
    • Fix github workflow building.
    -

    34.0.2 9/30/2022

    -
    • !
    +

    34.0.2 9/30/2022

    +
    • !
    -

    34.0.1 9/30/2022

    -
    • test fix
    +

    34.0.1 9/30/2022

    +
    • test fix
    -

    34.0.0 9/30/2022

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

    34.0.0 9/30/2022

    +
    • 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 9/29/2022

    -
    • remove extraneous atoms and lines printing in CLI
    +

    33.1.0 9/29/2022

    +
    • remove extraneous atoms and lines printing in CLI
    -

    33.0.0 9/29/2022

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

    33.0.0 9/29/2022

    +
    • 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 9/27/2022

    -
    • improved 'where' command to scan pwd and skip node_modules folders. much faster and simpler.
    +

    32.0.0 9/27/2022

    +
    • improved 'where' command to scan pwd and skip node_modules folders. much faster and simpler.
    -

    31.5.0 9/9/2022

    -
    • new parsers: ?, # and ##
    +

    31.5.0 9/9/2022

    +
    • new parsers: ?, # and ##
    -

    A Header

    +

    A Header

    -

    A Subheader

    +

    A Subheader

    -

    Have you thought of the most important question?

    +

    Have you thought of the most important question?

    -

    31.4.1 9/3/2022

    -
    • and that is why you always run the tests.
    +

    31.4.1 9/3/2022

    +
    • and that is why you always run the tests.
    -

    31.4.0 9/3/2022

    -
    • New parsers: *, footnote, and readingList
    +

    31.4.0 9/3/2022

    +
    • New parsers: *, 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.

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

    31.3.0 9/3/2022

    -
    • Fixed bad regression where only the first atom of a replacement line was getting replaced.
    +

    31.3.0 9/3/2022

    +
    • Fixed bad regression where only the first atom of a replacement line was getting replaced.
    -

    31.2.0 9/2/2022

    -
    • added openGraphImage node
    +

    31.2.0 9/2/2022

    +
    • added openGraphImage node
    -

    31.1.0 9/1/2022

    -
    • replace now supports multiline strings
    -
    • fixed broken links bug if using keyboard nav without groups
    +

    31.1.0 9/1/2022

    +
    • replace now supports multiline strings
    +
    • fixed broken links bug if using keyboard nav without groups
    -

    31.0.0 8/31/2022

    -
    • 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 parser abstract from your grammar node definitions.
    +

    31.0.0 8/31/2022

    +
    • 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 parser abstract from your grammar node definitions.
    -

    30.1.1 8/30/2022

    -
    • Improve header message thanks to dg's feedback
    +

    30.1.1 8/30/2022

    +
    • Improve header message thanks to dg's feedback
    -

    30.1.0 8/29/2022

    -
    • Perf: ~2x as fast as v30.1
    +

    30.1.0 8/29/2022

    +
    • Perf: ~2x as fast as v30.1
    -

    30.0.0 8/29/2022

    -
    • 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.
    +

    30.0.0 8/29/2022

    +
    • 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 8/28/2022

    -
    • BREAKING: if using programatically instead of ScrollPage use ScrollFile
    +

    29.0.0 8/28/2022

    +
    • BREAKING: if using programatically instead of ScrollPage use ScrollFile
    -

    28.3.2 8/27/2022

    -
    • fixed bug with open graph image tags
    +

    28.3.2 8/27/2022

    +
    • fixed bug with open graph image tags
    -

    28.3.1 8/27/2022

    -
    • fixed minor grammar typo and added test
    +

    28.3.1 8/27/2022

    +
    • fixed minor grammar typo and added test
    -

    28.3.0 8/27/2022

    -
    • added author and kpiTable node types
    +

    28.3.0 8/27/2022

    +
    • added author and kpiTable node types
    -

    28.2.0 8/26/2022

    -
    • export getFullyExpandedFile
    +

    28.2.0 8/26/2022

    +
    • export getFullyExpandedFile
    -

    28.1.0 8/26/2022

    -
    • imports can now be recursive
    +

    28.1.0 8/26/2022

    +
    • imports can now be recursive
    -

    28.0.0 8/26/2022

    -

    This is a major update that radically simplifies Scroll and adds significant new capabilities.

    +

    28.0.0 8/26/2022

    +

    This is a major update that radically simplifies Scroll and adds significant new capabilities.

    -

    From 3 file types to 1

    +

    From 3 file types to 1

    -

    scroll.settings and *.grammar files are gone. Everything is now done with .scroll files, and now every parser is documented and usable on try.scroll.com and type checked.

    -

    Imports and variables

    +

    scroll.settings and *.grammar files are gone. Everything is now done with .scroll files, and now every parser is documented and usable on try.scroll.com and type checked.

    +

    Imports and variables

    -

    Use [filepath] to import one scroll file into another. Use replace and replaceDefault for variables.

    -

    Add your own Grammar extensions directly in your Scroll files

    +

    Use [filepath] to import one scroll 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 parser and build your own collection of common reusable node types for your project(s).

    -

    Unlimited Tags and Tag Pages

    +

    Define new nodeTypes or create your own aliases on a per file basis. Use the import parser and build your own collection of common reusable node types for your project(s).

    +

    Unlimited Tags and Tag Pages

    -

    Add files to one or more tags and then customize how each tag page prints. No more magic or implicit creation of collection pages.

    -

    Multiple Compiler Passes

    +

    Add files to one or more tags and then customize how each tag 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

    +

    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 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:
    +
    • 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 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:
    scrollArticleDateComponent => scrollDateComponent scrollArticlePageComponent => scrollFilePageComponent scrollSingleArticleTitle => scrollFilePageTitle @@ -2390,53 +2394,53 @@ 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

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

    comment Put this in a file named style.scroll buildCss style.css gazetteCSS -

    27.1.1 8/24/2022

    -
    • only activate keyboard shortcuts if no element has focus
    +

    27.1.1 8/24/2022

    +
    • only activate keyboard shortcuts if no element has focus
    -

    27.1.0 8/24/2022

    -
    • added new cli command: scroll where
    +

    27.1.0 8/24/2022

    +
    • added new cli command: scroll where
    -

    27.0.1 8/23/2022

    -
    • mutability fix
    +

    27.0.1 8/23/2022

    +
    • mutability fix
    -

    27.0.0 8/23/2022

    -
    • added keyboardNav node
    -
    • BREAKING: all permalink lines in .scroll files need .html. Run scroll migrate to find and update automatically.
    +

    27.0.0 8/23/2022

    +
    • added keyboardNav node
    +
    • BREAKING: all permalink lines in .scroll files need .html. Run scroll migrate to find and update automatically.
    -

    26.1.0 8/23/2022

    -
    • export SCROLL_CSS for tryscroll app
    -
    • now calling the language ScrollScript instead of Scrolldown
    +

    26.1.0 8/23/2022

    +
    • export SCROLL_CSS for tryscroll app
    +
    • now calling the language ScrollScript instead of Scrolldown
    -

    26.0.0 8/23/2022

    -
    • (potentially) breaking: scrolldown.grammar is no longer built/checked in and SCROLLDOWNGRAMMARFILENAME no longer exported.
    +

    26.0.0 8/23/2022

    +
    • (potentially) breaking: scrolldown.grammar is no longer built/checked in and SCROLLDOWNGRAMMARFILENAME no longer exported.
    -

    25.6.0 8/19/2022

    -
    • simpler API for programmatic usage: new ScrollPage('title Hello world')
    +

    25.6.0 8/19/2022

    +
    • simpler API for programmatic usage: new ScrollPage('title Hello world')
    -

    25.5.1 7/22/2022

    -
    • minor grammar fix
    +

    25.5.1 7/22/2022

    +
    • minor grammar fix
    -

    25.5.0 7/22/2022

    -
    • path fixes for Windows thanks to @celtic-coder
    +

    25.5.0 7/22/2022

    +
    • path fixes for Windows thanks to @celtic-coder
    -

    25.4.0 7/14/2022

    -
    • 50% faster builds
    +

    25.4.0 7/14/2022

    +
    • 50% faster builds
    -

    25.3.2 7/14/2022

    -
    • added cacheing for 40% faster builds
    +

    25.3.2 7/14/2022

    +
    • added cacheing for 40% faster builds
    -

    25.3.1 7/14/2022

    -
    • fixed links in treeTable
    +

    25.3.1 7/14/2022

    +
    • fixed links in treeTable
    -

    25.3.0 7/14/2022

    -
    • added treeTable
    +

    25.3.0 7/14/2022

    +
    • added treeTable
    table delimiter particles @@ -2466,33 +2470,33 @@ print "Hello world" -

    25.2.1 7/01/2022

    -
    • fixed broken links in feed.xml
    +

    25.2.1 7/01/2022

    +
    • fixed broken links in feed.xml
    -

    25.2.0 6/22/2022

    -
    • added htmlTitle and sourceLink parsers so an article can override the defaults
    +

    25.2.0 6/22/2022

    +
    • added htmlTitle and sourceLink parsers so an article can override the defaults
    -

    25.1.0 6/19/2022

    -
    • if scroll has an rss feed add a tag to built pages
    +

    25.1.0 6/19/2022

    +
    • if scroll has an rss feed add a tag to built pages
    -

    25.0.0 6/15/2022

    -
    • on single article pages, the header will now span across all columns.
    +

    25.0.0 6/15/2022

    +
    • on single article pages, the header will now span across all columns.
    -

    24.9.0 6/15/2022

    -
    • 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.9.0 6/15/2022

    +
    • 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 6/15/2022

    -
    • if "baseUrl" is set building will also generate an RSS "feed.xml"
    +

    24.8.0 6/15/2022

    +
    • if "baseUrl" is set building will also generate an RSS "feed.xml"
    -

    24.7.0 6/13/2022

    -
    • fix when using Scroll programmatically image sizeOf check will use correct folder
    -
    • add param to specify index/snippets page when using programmatically
    +

    24.7.0 6/13/2022

    +
    • 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 6/10/2022

    -
    • added wrap parser for advanced custom wraps in aftertext.
    +

    24.6.0 6/10/2022

    +
    • added wrap parser 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.

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

    24.5.0 6/10/2022

    -
    • added wrapsOn parser to aftertext.
    +

    24.5.0 6/10/2022

    +
    • added wrapsOn parser to aftertext.
    -

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

    +

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

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

    24.4.0 6/08/2022

    -
    • if your scroll has an article(s) with "endSnippet", scroll will create "snippets.html".
    +

    24.4.0 6/08/2022

    +
    • if your scroll has an article(s) with "endSnippet", scroll will create "snippets.html".
    -

    24.3.1 5/25/2022

    -
    • fix bug where images were stuck at 35ch even when the browser sized columns wider
    +

    24.3.1 5/25/2022

    +
    • fix bug where images were stuck at 35ch even when the browser sized columns wider
    -

    24.3.0 2/16/2022

    -

    This tiny release adds some ways to include more caveats and context around atoms 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
    +

    24.3.0 2/16/2022

    +

    This tiny release adds some ways to include more caveats and context around atoms 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

    +

    Caveat Example

    -

    This is a great idea.

    +

    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

    +

    Link Quote Example

    -

    This report showed the treatment had a big impact.

    +

    This report showed the treatment had a big impact.

    This report showed the treatment had a big impact. https://example.com/report This report title The average growth in the treatment group was 14.2x higher than the control group. -

    24.2.0 1/18/2022

    -
    • added 'id' directive to aftertext for adding ids to paragraphs

    • -
    • added 'loremIpsum' nodeType to help in testing and exploring
    +

    24.2.0 1/18/2022

    +
    • added 'id' directive to aftertext for adding ids to paragraphs

    • +
    • added 'loremIpsum' nodeType to help in testing and exploring
    -

    Example demonstrating the above:

    +

    Example demonstrating the above:

    aftertext Click here to go to the middle paragraph. link #middleParagraph Click here @@ -2545,17 +2549,17 @@ id middleParagraph loremIpsum 20 -

    24.1.1 1/13/2022

    -
    • fix bug where migrator was not replacing 🔗 links in paragraphs when upgrading to aftertext
    • -
    • fix typo in release notes
    +

    24.1.1 1/13/2022

    +
    • fix bug where migrator was not replacing 🔗 links in paragraphs when upgrading to aftertext
    • +
    • fix typo in release notes
    -

    24.1.0 1/13/2022

    -
    • added migrate command to automate migrations when there are breaking changes
    -
    • added background color and styling to inline code elements in default theme
    +

    24.1.0 1/13/2022

    +
    • 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 1/11/2022

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

    24.0.0 1/11/2022

    +
    • 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
    table delimiter | @@ -2569,22 +2573,22 @@ Wikipedia -
    • the first paragraph of an article no longer prints a dateline. Use aftertext instead. See example below.
    -

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

    +
    • the first paragraph of an article no longer prints a dateline. Use aftertext instead. See example below.
    +

    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 12/22/2021

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

    +

    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 12/22/2021

    +
    • 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? https://en.wikipedia.org/wiki/Groundhog woodchuck matchAll @@ -2601,126 +2605,126 @@ border: 1px dashed red; padding: 5px; } -

    23.1.0 12/21/2021

    -
    • add dateline node to aftertext.
    +

    23.1.0 12/21/2021

    +
    • add dateline node to aftertext.
    -

    23.0.0 12/09/2021

    -
    • add aftertext node type, with bold, italics, underline, link (& quick link), email, code and strikethrough parsers
    • -
    • add belowAsCode and aboveAsCode
    • -
    • split base grammar into files for easier extensibility
    +

    23.0.0 12/09/2021

    +
    • add aftertext node type, with bold, italics, underline, link (& quick link), email, code and strikethrough parsers
    • +
    • add belowAsCode and aboveAsCode
    • +
    • split base grammar into files for easier extensibility
    -

    Can you show an example of aftertext?

    +

    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:

    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 11/25/2021

    -
    • add basic caption support to images
    +

    22.4.0 11/25/2021

    +
    • add basic caption support to images

    This is a caption

    blog/screenshot.png caption This is a caption -

    22.3.0 08/23/2021

    -
    • columnWidth to set a custom column width per article or folder
    • -
    • maxColumns can be set globally in settings
    +

    22.3.0 08/23/2021

    +
    • columnWidth to set a custom column width per article or folder
    • +
    • maxColumns can be set globally in settings
    -

    22.2.0 08/23/2021

    -
    • integrated design feedback into default theme for better readability
    +

    22.2.0 08/23/2021

    +
    • integrated design feedback into default theme for better readability
    -

    22.1.0 07/23/2021

    -
    • you can now ignore custom grammar files in a dir with ignoreGrammarFiles
    +

    22.1.0 07/23/2021

    +
    • you can now ignore custom grammar files in a dir with ignoreGrammarFiles
    -

    22.0.0 07/09/2021

    -
    • 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.
    +

    22.0.0 07/09/2021

    +
    • 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 07/08/2021

    -
    • you can now set 'maxColumns' on articles.
    +

    21.4.0 07/08/2021

    +
    • you can now set 'maxColumns' on articles.
    -

    21.3.0 07/07/2021

    -
    • if all articles have 'skipIndexPage', 'index.html' will not be built
    +

    21.3.0 07/07/2021

    +
    • if all articles have 'skipIndexPage', 'index.html' will not be built
    -

    21.2.0 07/06/2021

    -
    • internal CSS changes
    +

    21.2.0 07/06/2021

    +
    • internal CSS changes
    -

    21.0.0 06/21/2021

    -
    • built in support for custom grammars!
    -
    • internal nodejs API changes: Article is no longer exported and ScrollBuilder is now ScrollFolder
    +

    21.0.0 06/21/2021

    +
    • built in support for custom grammars!
    +
    • internal nodejs API changes: Article is no longer exported and ScrollBuilder is now ScrollFolder
    -

    20.0.0 06/21/2021

    -
    • 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.
    +

    20.0.0 06/21/2021

    +
    • 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?

    +

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

    -

    How do I migrate from title# nodes?

    +

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

    +

    How do I migrate from title# nodes?

    -

    The below regex may help.

    +

    The below regex may help.

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

    19.3.1 06/20/2021

    -
    • show the version in footer
    -
    • fix title in single pages without a title
    +

    19.3.1 06/20/2021

    +
    • show the version in footer
    +
    • fix title in single pages without a title
    -

    19.3.0 06/20/2021

    -
    • fix bug where readme.scroll could be overwritten by init
    +

    19.3.0 06/20/2021

    +
    • fix bug where readme.scroll could be overwritten by init
    -

    19.2.0 06/17/2021

    -
    • improved styling for tables
    +

    19.2.0 06/17/2021

    +
    • improved styling for tables
    -

    19.1.0 06/17/2021

    -
    • fix bug with http links
    • -
    • simpler article padding and changed scroll title to h2 from h1
    +

    19.1.0 06/17/2021

    +
    • fix bug with http links
    • +
    • simpler article padding and changed scroll title to h2 from h1
    -

    19.0.0 06/17/2021

    -
    • ability to override header and footer
    +

    19.0.0 06/17/2021

    +
    • ability to override header and footer
    -

    18.4.0 06/17/2021

    -
    • improved alignment of images
    +

    18.4.0 06/17/2021

    +
    • improved alignment of images
    -

    18.3.0 06/16/2021

    -
    • og meta tags for social media sharing
    +

    18.3.0 06/16/2021

    +
    • og meta tags for social media sharing
    -

    18.2.0 06/16/2021

    -
    • title now links to "index.html". less magic and works much better locally
    +

    18.2.0 06/16/2021

    +
    • title now links to "index.html". less magic and works much better locally
    -

    18.1.1 06/16/2021

    -
    • fix regression where 2 columns on mobile were not downsizing to 1
    +

    18.1.1 06/16/2021

    +
    • fix regression where 2 columns on mobile were not downsizing to 1
    -

    18.1.0 06/16/2021

    -
    • short articles now are put into 1 or 2 columns
    +

    18.1.0 06/16/2021

    +
    • short articles now are put into 1 or 2 columns
    -

    18.0.0 06/15/2021

    -
    • build is now ~46% faster
    -
    • refactored html generation in preparation for easier extending and theming
    +

    18.0.0 06/15/2021

    +
    • build is now ~46% faster
    +
    • refactored html generation in preparation for easier extending and theming
    -

    17.5.0 06/05/2021

    -
    • fixed numerous bugs in importing RSS feeds and added examples
    +

    17.5.0 06/05/2021

    +
    • fixed numerous bugs in importing RSS feeds and added examples
    -

    17.4.0 06/04/2021

    -
    • typography adjustments
    -
    • fixed overlapping social icons up top on mobile. just keep git link
    +

    17.4.0 06/04/2021

    +
    • typography adjustments
    +
    • fixed overlapping social icons up top on mobile. just keep git link
    -

    17.3.0 06/03/2021

    -
    • images now link to the full size image
    +

    17.3.0 06/03/2021

    +
    • images now link to the full size image
    -

    17.2.2 06/02/2021

    -
    • fixed safari-only bug not painting overflowing code blocks on single pages
    +

    17.2.2 06/02/2021

    +
    • fixed safari-only bug not painting overflowing code blocks on single pages
    -

    17.2.1 05/25/2021

    -
    • fixed bug where sequential links were not getting parsed
    +

    17.2.1 05/25/2021

    +
    • fixed bug where sequential links were not getting parsed
    -

    17.2.0 05/25/2021

    -
    • tables can now break on single pages for higher information density
    +

    17.2.0 05/25/2021

    +
    • tables can now break on single pages for higher information density
    -

    17.1.0 05/25/2021

    -
    • pipeTable
    +

    17.1.0 05/25/2021

    +
    • pipeTable
    @@ -2731,123 +2735,123 @@
    whatBecause it's awesome!
    -

    17.0.0 05/25/2021

    -
    • tabTable and commaTable
    -
    • table is now spaceTable
    -
    • do not crash if an empty row in a table
    +

    17.0.0 05/25/2021

    +
    • tabTable and commaTable
    +
    • table is now spaceTable
    +
    • do not crash if an empty row in a table
    -

    16.2.0 05/24/2021

    -
    • do not crash if an image is not found
    +

    16.2.0 05/24/2021

    +
    • do not crash if an image is not found
    -

    16.1.0 05/24/2021

    -
    • building a site is now ~2.4x faster 🏎
    +

    16.1.0 05/24/2021

    +
    • building a site is now ~2.4x faster 🏎
    -

    16.0.0 05/22/2021

    -
    • rename scrollSettings.map to scroll.settings
    +

    16.0.0 05/22/2021

    +
    • rename scrollSettings.map to scroll.settings
    -

    15.0.0 05/21/2021

    -
    • Scroll will detect and emit image sizes during build to reduce layout shifts.
    +

    15.0.0 05/21/2021

    +
    • Scroll will detect and emit image sizes during build to reduce layout shifts.
    -

    14.3.0 05/21/2021

    -
    • Scroll is now somewhat usable as an NPM module.
    +

    14.3.0 05/21/2021

    +
    • Scroll is now somewhat usable as an NPM module.
    -

    14.2.0 05/20/2021

    -
    • added html head meta viewport tag for better mobile experience.
    +

    14.2.0 05/20/2021

    +
    • added html head meta viewport tag for better mobile experience.
    -

    14.1.0 05/20/2021

    -
    • added doctype tag
    • -
    • added html head meta description tag
    +

    14.1.0 05/20/2021

    +
    • added doctype tag
    • +
    • added html head meta description tag
    -

    14.0.0 05/19/2021

    -
    • removed links nodeType
    • -
    • fixed bug where sometimes permalinks were still using title and not filename
    +

    14.0.0 05/19/2021

    +
    • removed links nodeType
    • +
    • fixed bug where sometimes permalinks were still using title and not filename
    -

    13.3.0 05/18/2021

    -
    • html and image node types
    +

    13.3.0 05/18/2021

    +
    • html and image node types
    -

    To use an image node:

    +

    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:

    +

    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 05/18/2021

    -
    • Added scroll check command
    +

    13.2.0 05/18/2021

    +
    • Added scroll check command
    -

    13.1.0 05/18/2021

    -
    • 🔗links in lists as well as paragraphs
    +

    13.1.0 05/18/2021

    +
    • 🔗links in lists as well as paragraphs
    -

    13.0.0 05/17/2021

    -
    • 🔗links in paragraph nodes.
    • -
    • skipIndexPage nodeType
    +

    13.0.0 05/17/2021

    +
    • 🔗links in paragraph nodes.
    • +
    • skipIndexPage nodeType
    -

    How do I use the new single atom links?

    +

    How do I use the new single atom links?

    -

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

    +

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

    paragraph This is a link🔗example.com -

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

    +

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

    <a href="https://([^"]+)">([^ ]+)</a> $2🔗$1 -

    How do I use the 🔗link tag with multiatom links?

    +

    How do I use the 🔗link tag with multiatom links?

    -

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

    -
    • 1. Link just one atom. If you need more, perhaps camelCase or snake_case your atoms together into one concept.
    • -
    • 2. Repeat the link twice foo 🔗link bar 🔗link
    • -
    • 3. Use <a> tags.
    • -
    • 4. Extend the ScrollScript grammar for your site.
    -

    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.

    +

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

    +
    • 1. Link just one atom. If you need more, perhaps camelCase or snake_case your atoms together into one concept.
    • +
    • 2. Repeat the link twice foo 🔗link bar 🔗link
    • +
    • 3. Use <a> tags.
    • +
    • 4. Extend the ScrollScript grammar for your site.
    +

    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 05/14/2021

    -
    • chat nodeType
    +

    12.1.0 05/14/2021

    +
    • chat nodeType
    You can now do dialogues
    Cool!
    -

    12.0.0 05/12/2021

    -
    • scroll create is now scroll init
    • -
    • Removed export command
    -
    • removed example.com folder. Less code and now flat.
    -
    -

    11.0.0 05/11/2021

    -
    • list, orderedList, and links node types
    • -
    • codeWithLanguageNode
    -
    • HTML escaped in code blocks
    -
    -

    10.0.0 05/10/2021

    -
    • 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 05/05/2021

    -
    • ScrollScript now has a quote nodeType.
    -
    • Code block format bug fixes.
    • -
    • Styling improvements
    -
    -

    8.0.0 04/10/2021

    -
    • Scroll now just builds files. No web server needed.
    -
    -

    7.0.0 04/03/2021

    -
    • Scroll the language is now called Scrolldown (thanks FB!).
    -
    • Bug fixes.
    -
    • Better perf.
    -
    -

    6.0.0 03/08/2021

    -
    • 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 02/28/2021

    -
    • 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 02/22/2021

    -
    • Fixed paragraph parsing and rendering
    -
    -

    4.1.0 02/22/2021

    -
    • "git" scrollSetting for article source links.
    +

    12.0.0 05/12/2021

    +
    • scroll create is now scroll init
    • +
    • Removed export command
    +
    • removed example.com folder. Less code and now flat.
    +
    +

    11.0.0 05/11/2021

    +
    • list, orderedList, and links node types
    • +
    • codeWithLanguageNode
    +
    • HTML escaped in code blocks
    +
    +

    10.0.0 05/10/2021

    +
    • 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 05/05/2021

    +
    • ScrollScript now has a quote nodeType.
    +
    • Code block format bug fixes.
    • +
    • Styling improvements
    +
    +

    8.0.0 04/10/2021

    +
    • Scroll now just builds files. No web server needed.
    +
    +

    7.0.0 04/03/2021

    +
    • Scroll the language is now called Scrolldown (thanks FB!).
    +
    • Bug fixes.
    +
    • Better perf.
    +
    +

    6.0.0 03/08/2021

    +
    • 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 02/28/2021

    +
    • 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 02/22/2021

    +
    • Fixed paragraph parsing and rendering
    +
    +

    4.1.0 02/22/2021

    +
    • "git" scrollSetting for article source links.
    -

    +

    - +
    \ No newline at end of file diff --git a/releaseNotes.json b/releaseNotes.json index 3f9a978ae..7ddb13d1a 100644 --- a/releaseNotes.json +++ b/releaseNotes.json @@ -1,4 +1,11 @@ [ + { + "version": "165.3.0", + "releaseDate": "1/09/2025", + "bugFixes": 0, + "newFeatures": 2, + "breakingChanges": 0 + }, { "version": "165.2.0", "releaseDate": "1/08/2025", diff --git a/releaseNotes.scroll b/releaseNotes.scroll index 5b37d156f..31470e2d5 100644 --- a/releaseNotes.scroll +++ b/releaseNotes.scroll @@ -22,6 +22,10 @@ ciBadges.scroll br thinColumns +📦 165.3.0 1/09/2025 +🎉 added sectionParser +🎉 added pParser + 📦 165.2.0 1/08/2025 🎉 added `keywords` parser because AI keeps trying to use it. 🏥 slideshow fixes diff --git a/releaseNotes.tsv b/releaseNotes.tsv index ad1131627..c1fe20a16 100644 --- a/releaseNotes.tsv +++ b/releaseNotes.tsv @@ -1,4 +1,5 @@ version releaseDate bugFixes newFeatures breakingChanges +165.3.0 1/09/2025 0 2 0 165.2.0 1/08/2025 1 1 0 165.1.1 1/06/2025 1 0 0 165.1.0 1/06/2025 0 1 0 diff --git a/releaseNotes.txt b/releaseNotes.txt index b4dcb3675..d9987344b 100644 --- a/releaseNotes.txt +++ b/releaseNotes.txt @@ -2,17 +2,17 @@ Scroll Release Notes ==================== Scroll Tutorial =============== -01/08/2025 +01/09/2025 https://scroll.pub/tutorial.html Scroll Roadmap ============== -01/08/2025 +01/09/2025 https://scroll.pub/roadmap.html Scroll FAQ ========== -01/08/2025 +01/09/2025 https://scroll.pub/faq.html A list of what has changed in Scroll releases. @@ -25,6 +25,11 @@ Download as CSV | TSV | JSON [Image Omitted] https://github.com/breck7/scroll/actions/workflows/didTheTestsPass.yml undefined +165.3.0 1/09/2025 +================= +🎉 added sectionParser +🎉 added pParser + 165.2.0 1/08/2025 ================= 🎉 added `keywords` parser because AI keeps trying to use it. @@ -869,29 +874,29 @@ Demos ===== date,year,title,permalink,authors,tags,wordCount,minutes -01/08/2025,2025,Top Buttons,topButtons.html,,,0,0 -01/08/2025,2025,Scroll Tutorial,tutorial.html,,main,949,4.7 -01/08/2025,2025,Wws,wws.html,,,35,0.2 -01/08/2025,2025,Wws Redirect,wws.html,,,0,0 -01/08/2025,2025,Particles LeetSheet,particlesLeetsheet.html,,,124,0.6 -01/08/2025,2025,Scroll is a language for scientists of all ages,index.html,,,168,0.8 -01/08/2025,2025,Readme Prompt,readmePrompt.html,,,20589,102.9 -01/08/2025,2025,Scroll Release Notes,releaseNotes.html,,main,15799,79 -01/08/2025,2025,Scroll Roadmap,roadmap.html,,main,137,0.7 -01/08/2025,2025,Scroll Prompt,scrollPrompt.html,,,4513,22.6 -01/08/2025,2025,Settings,settings.html,,,0,0 -01/08/2025,2025,Sitemap,sitemap.html,,,115,0.6 -01/08/2025,2025,Scroll LeetSheet,leetsheet.html,,,965,4.8 -01/08/2025,2025,Parsers LeetSheet,parserLeetsheet.html,,,295,1.5 -01/08/2025,2025,Parser Prompt,parserPrompt.html,,,21997,110 -01/08/2025,2025,Parser Usage,parserUsage.html,,,272,1.4 -01/08/2025,2025,Parsers,parsers.html,,,21595,108 -01/08/2025,2025,Scroll FAQ,faq.html,,main,3307,16.5 -01/08/2025,2025,Header,header.html,,,0,0 -01/08/2025,2025,Ci Badges,ciBadges.html,,,12,0.1 -01/08/2025,2025,Scroll Cloc Stats,cloc.html,,,66,0.3 -01/08/2025,2025,Download Scroll.pub,download.html,,,49,0.2 -01/08/2025,2025,Animation,animation.html,,,13,0.1 +01/09/2025,2025,Top Buttons,topButtons.html,,,0,0 +01/09/2025,2025,Scroll Tutorial,tutorial.html,,main,949,4.7 +01/09/2025,2025,Wws,wws.html,,,35,0.2 +01/09/2025,2025,Wws Redirect,wws.html,,,0,0 +01/09/2025,2025,Particles LeetSheet,particlesLeetsheet.html,,,124,0.6 +01/09/2025,2025,Scroll is a language for scientists of all ages,index.html,,,168,0.8 +01/09/2025,2025,Readme Prompt,readmePrompt.html,,,20599,103 +01/09/2025,2025,Scroll Release Notes,releaseNotes.html,,main,15809,79 +01/09/2025,2025,Scroll Roadmap,roadmap.html,,main,137,0.7 +01/09/2025,2025,Scroll Prompt,scrollPrompt.html,,,4513,22.6 +01/09/2025,2025,Settings,settings.html,,,0,0 +01/09/2025,2025,Sitemap,sitemap.html,,,115,0.6 +01/09/2025,2025,Scroll LeetSheet,leetsheet.html,,,972,4.9 +01/09/2025,2025,Parsers LeetSheet,parserLeetsheet.html,,,295,1.5 +01/09/2025,2025,Parser Prompt,parserPrompt.html,,,22053,110.3 +01/09/2025,2025,Parser Usage,parserUsage.html,,,272,1.4 +01/09/2025,2025,Parsers,parsers.html,,,21649,108.2 +01/09/2025,2025,Scroll FAQ,faq.html,,main,3307,16.5 +01/09/2025,2025,Header,header.html,,,0,0 +01/09/2025,2025,Ci Badges,ciBadges.html,,,12,0.1 +01/09/2025,2025,Scroll Cloc Stats,cloc.html,,,66,0.3 +01/09/2025,2025,Download Scroll.pub,download.html,,,49,0.2 +01/09/2025,2025,Animation,animation.html,,,13,0.1 127.0.0 9/4/2024 ================ @@ -3525,4 +3530,4 @@ Cool! ================ 🎉 "git" scrollSetting for article source links. -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/releaseNotesMeasures.tsv b/releaseNotesMeasures.tsv index 8a10a6f53..3340dabd2 100644 --- a/releaseNotesMeasures.tsv +++ b/releaseNotesMeasures.tsv @@ -1,6 +1,6 @@ Name Values Coverage Question Example Type Source SortIndex IsComputed IsRequired IsConceptDelimiter Cue -version 632 100% What is the semantic version number? 165.2.0 string 1 true true 📦 -releaseDate 632 100% 1/08/2025 string 1.1 true true -bugFixes 632 100% How many bug fixes in this release? 1 number 1.2 true -newFeatures 632 100% How many new features in this release? 1 number 1.2 true -breakingChanges 632 100% How many breaking changes in this release? 0 number 1.2 true \ No newline at end of file +version 633 100% What is the semantic version number? 165.3.0 string 1 true true 📦 +releaseDate 633 100% 1/09/2025 string 1.1 true true +bugFixes 633 100% How many bug fixes in this release? 0 number 1.2 true +newFeatures 633 100% How many new features in this release? 2 number 1.2 true +breakingChanges 633 100% How many breaking changes in this release? 0 number 1.2 true \ No newline at end of file diff --git a/roadmap.html b/roadmap.html index 444c30b68..e4c2aa0cd 100644 --- a/roadmap.html +++ b/roadmap.html @@ -3,13 +3,13 @@ Scroll Roadmap - + - + @@ -77,7 +77,7 @@ - +
    \ No newline at end of file diff --git a/roadmap.txt b/roadmap.txt index afb4b2bd8..bc03b6ad3 100644 --- a/roadmap.txt +++ b/roadmap.txt @@ -2,17 +2,17 @@ Scroll Roadmap ============== Scroll Tutorial =============== -01/08/2025 +01/09/2025 https://scroll.pub/tutorial.html Scroll Release Notes ==================== -01/08/2025 +01/09/2025 https://scroll.pub/releaseNotes.html Scroll FAQ ========== -01/08/2025 +01/09/2025 https://scroll.pub/faq.html What major improvements are coming next? @@ -38,4 +38,4 @@ In addition to the above, Scroll is written in Parsers and will get all the plan ⁂ -Built with Scroll v165.2.0 +Built with Scroll v165.3.0 diff --git a/scroll.parsers b/scroll.parsers index 6f97ff7df..6dc70bc58 100644 --- a/scroll.parsers +++ b/scroll.parsers @@ -291,7 +291,10 @@ abstractAftertextParser if (tag === "none") // Allow no tag for aftertext in tables return this.text const id = this.has("id") ? "" : `id="${this.htmlId}" ` // always add an html id - return this.getHtmlRequirements(buildSettings) + `<${tag} ${id}${this.htmlAttributes}${classAttr}${styles}>${this.text}${this.closingTag}` + return this.getHtmlRequirements(buildSettings) + `<${tag} ${id}${this.htmlAttributes}${classAttr}${styles}>${this.htmlContents}${this.closingTag}` + } + get htmlContents() { + return this.text } get closingTag() { const tag = this.get("tag") || this.tag @@ -438,14 +441,11 @@ abstractIndentableParagraphParser extends scrollParagraphParser inScope abstractAftertextDirectiveParser abstractAftertextAttributeParser abstractIndentableParagraphParser javascript - compileSubparticles() { - return this.map(particle => particle.buildHtml()) + get htmlContents() { + return this.text + this.map(particle => particle.buildHtml()) .join("\n") .trim() } - buildHtml() { - return super.buildHtml() + this.compileSubparticles() - } buildTxt() { return this.getAtom(0) + " " + super.buildTxt() } @@ -524,6 +524,20 @@ quickQuoteParser javascript defaultClassName = "scrollQuote" tag = "blockquote" +scrollSectionParser + popularity 0.007524 + description HTML section tag. + extends abstractIndentableParagraphParser + inScope abstractAftertextDirectiveParser abstractAftertextAttributeParser abstractIndentableParagraphParser scrollParagraphParser + cue section + example + section + # Hello world + p This is a test + section + # Deeper + javascript + tag = "section" scrollCounterParser description Visualize the speed of something. extends scrollParagraphParser @@ -781,6 +795,14 @@ quickParagraphParser boolean isArticleContent true example * I had a _new_ idea. +pParagraphParser + popularity 0.001881 + cue p + extends scrollParagraphParser + description A paragraph. + boolean isArticleContent true + example + p I had a _new_ idea. scrollStopwatchParser description A stopwatch. extends scrollParagraphParser @@ -6196,7 +6218,7 @@ scrollParser } get scrollVersion() { // currently manually updated - return "165.2.0" + return "165.3.0" } // Use the first paragraph for the description // todo: add a particle method version of get that gets you the first particle. (actulaly make get return array?) diff --git a/tests/a-review-of-my-sink.html b/tests/a-review-of-my-sink.html index feb5e2e73..4b99abaa8 100644 --- a/tests/a-review-of-my-sink.html +++ b/tests/a-review-of-my-sink.html @@ -3,13 +3,13 @@ A review of my sink - + - + @@ -44,7 +44,7 @@ else if (event.key === "ArrowRight") getLinks()[1].click() });
    -
    • 14927 days old
    +
    • 14928 days old
    diff --git a/tests/about.html b/tests/about.html index 9aea9dae3..beb33c00a 100644 --- a/tests/about.html +++ b/tests/about.html @@ -3,13 +3,13 @@ About the Kitchen Sink Blog - + - + @@ -26,6 +26,6 @@

    This blog is for testing purposes—to exercise/test all the features of Scroll.

    -

    January 8, 2025 — Public domain products are strictly superior to equivalent non-public domain alternatives by a significant margin on three dimensions: trust, speed, and cost to build. If enough capable people start building public domain products we can change the world.

    +

    January 9, 2025 — Public domain products are strictly superior to equivalent non-public domain alternatives by a significant margin on three dimensions: trust, speed, and cost to build. If enough capable people start building public domain products we can change the world.

    \ No newline at end of file diff --git a/tests/all.html b/tests/all.html index 6466c6e33..4cdc456db 100644 --- a/tests/all.html +++ b/tests/all.html @@ -6,7 +6,7 @@

    This blog is for testing purposes—to exercise/test all the features of Scroll.

    -

    January 8, 2025 — Public domain products are strictly superior to equivalent non-public domain alternatives by a significant margin on three dimensions: trust, speed, and cost to build. If enough capable people start building public domain products we can change the world.

    Edit
    +

    January 9, 2025 — Public domain products are strictly superior to equivalent non-public domain alternatives by a significant margin on three dimensions: trust, speed, and cost to build. If enough capable people start building public domain products we can change the world.

    Edit
    @@ -20,7 +20,7 @@
  • You can put things in them
    • This should be in a new list

    This is not a sink.

    -
    • 14927 days old
    +
    • 14928 days old
    Edit
    @@ -36,7 +36,7 @@ $0budget 3countries - +
    @@ -48,7 +48,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -60,7 +60,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -72,7 +72,7 @@
    sinkManufacturer countryCanada
    -

    Today is Wed Jan 08 2025 21:30:38 GMT+0000 (Coordinated Universal Time)

    +

    Today is Thu Jan 09 2025 16:27:54 GMT+0000 (Coordinated Universal Time)

    1+1 = 2

    January 11, 2019 was a great day

    There are 283 in my list.

    diff --git a/tests/autoTitle.html b/tests/autoTitle.html index 0f7754d1a..6a87f75bd 100644 --- a/tests/autoTitle.html +++ b/tests/autoTitle.html @@ -2,7 +2,7 @@

    Auto Title

    -
    January 8, 2025
    +
    January 9, 2025

    This file has no title set and no date set, but those should be autogenerated from the filename and file ctime data.

    diff --git a/tests/blogPost.html b/tests/blogPost.html index ce47ac76a..e4997336b 100644 --- a/tests/blogPost.html +++ b/tests/blogPost.html @@ -3,13 +3,13 @@ Blog Post - + - + @@ -32,7 +32,7 @@ - +
    \ No newline at end of file diff --git a/tests/cloc.html b/tests/cloc.html index 452de6437..eb8e36e0c 100644 --- a/tests/cloc.html +++ b/tests/cloc.html @@ -29,17 +29,17 @@ 8110 56269 -110 +111 Parsers -355 +356 0 -6926 +6948 140 Scroll -1954 +1955 0 -5436 +5439 14 CSS @@ -89,11 +89,11 @@ 0 1 -303 +304 SUM -9715 +9717 8212 -72484 +72509
    diff --git a/tests/debugging.html b/tests/debugging.html index e464fed17..f0c0ec1ec 100644 --- a/tests/debugging.html +++ b/tests/debugging.html @@ -79,7 +79,7 @@ - + \ No newline at end of file diff --git a/tests/dependencies.html b/tests/dependencies.html index 19b3192e6..693d835a2 100644 --- a/tests/dependencies.html +++ b/tests/dependencies.html @@ -3,13 +3,13 @@ Dependencies - + - + @@ -53,7 +53,7 @@ - + \ No newline at end of file diff --git a/tests/disk.html b/tests/disk.html index 07ff842a5..10360ebec 100644 --- a/tests/disk.html +++ b/tests/disk.html @@ -16,962 +16,967 @@ .clocLangs.txt file 215 -2025-01-08T21:30:40.302Z +2025-01-09T16:27:56.268Z .codeMirror.css file 9413 -2025-01-08T21:30:38.943Z +2025-01-09T16:27:54.927Z .constants.js file 214465 -2025-01-08T21:30:38.947Z +2025-01-09T16:27:54.932Z .dark.css file 551 -2025-01-08T21:30:40.259Z +2025-01-09T16:27:56.231Z .datatables.css file 57644 -2025-01-08T21:30:38.904Z +2025-01-09T16:27:54.889Z .datatables.js file 697329 -2025-01-08T21:30:38.907Z +2025-01-09T16:27:54.892Z .dayjs.min.js file 14556 -2025-01-08T21:30:38.904Z +2025-01-09T16:27:54.889Z .gazette.css file 628 -2025-01-08T21:30:38.907Z +2025-01-09T16:27:54.893Z .jquery-3.7.1.min.js file 87533 -2025-01-08T21:30:38.903Z +2025-01-09T16:27:54.889Z .leaflet.css file 14272 -2025-01-08T21:30:40.240Z +2025-01-09T16:27:56.212Z .leaflet.js file 141941 -2025-01-08T21:30:40.241Z +2025-01-09T16:27:56.213Z .prestige.css file 2034 -2025-01-08T21:30:40.264Z +2025-01-09T16:27:56.236Z .roboto.css file 544 -2025-01-08T21:30:38.899Z +2025-01-09T16:27:54.884Z .scroll.css file 8908 -2025-01-08T21:30:38.899Z +2025-01-09T16:27:54.884Z .scrollLibs.js file 961754 -2025-01-08T21:30:38.946Z +2025-01-09T16:27:54.931Z .sparkline.js file 6973 -2025-01-08T21:30:38.910Z +2025-01-09T16:27:54.899Z .tableSearch.js file 7018 -2025-01-08T21:30:38.907Z +2025-01-09T16:27:54.892Z .tufte.css file 1029 -2025-01-08T21:30:38.939Z +2025-01-09T16:27:54.923Z a-review-of-my-sink.html file 6874 -2025-01-08T21:30:40.284Z +2025-01-09T16:27:56.251Z a-review-of-my-sink.scroll file 586 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z aParser.scroll file 250 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z about.html file 5134 -2025-01-08T21:30:40.286Z +2025-01-09T16:27:56.252Z about.scroll file 451 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z all.html file 4272 -2025-01-08T21:30:40.288Z +2025-01-09T16:27:56.254Z all.scroll file 50 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z autoTitle.html file 392 -2025-01-08T21:30:40.289Z +2025-01-09T16:27:56.254Z autoTitle.scroll file 149 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z background.html file 161 -2025-01-08T21:30:40.289Z +2025-01-09T16:27:56.255Z background.scroll file 41 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z blogPost.html file 8740 -2025-01-08T21:30:40.291Z +2025-01-09T16:27:56.256Z blogPost.scroll file 71 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z browserstack.node.js file 2521 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z buildDelimited.csv file 209 -2025-01-08T21:30:38.887Z +2025-01-09T16:27:54.873Z buildDelimited.html file 1180 -2025-01-08T21:30:40.292Z +2025-01-09T16:27:56.258Z buildDelimited.json file 802 -2025-01-08T21:30:38.888Z +2025-01-09T16:27:54.874Z buildDelimited.scroll file 148 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z buildDelimited.tsv file 209 -2025-01-08T21:30:38.887Z +2025-01-09T16:27:54.873Z buildDelimited.txt file 210 -2025-01-08T21:30:40.291Z +2025-01-09T16:27:56.257Z bundling.css file 3067 -2025-01-08T21:30:40.292Z +2025-01-09T16:27:56.258Z bundling.js file 7490 -2025-01-08T21:30:40.293Z +2025-01-09T16:27:56.258Z bundling.scroll file 212 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z buttons.html file 750 -2025-01-08T21:30:40.294Z +2025-01-09T16:27:56.259Z buttons.scroll file 133 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z center.html file 434 -2025-01-08T21:30:40.294Z +2025-01-09T16:27:56.260Z center.scroll file 114 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z classicFormsTest.html file 1285 -2025-01-08T21:30:40.302Z +2025-01-09T16:27:56.268Z classicFormsTest.scroll file 240 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z cloc.html file 1648 -2025-01-08T21:30:40.704Z +2025-01-09T16:27:56.648Z cloc.scroll file 68 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z clocLangs.txt file 215 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z comments.scroll file 25 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z concepts.html file 1117 -2025-01-08T21:30:40.707Z +2025-01-09T16:27:56.651Z concepts.scroll file 305 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z contacts.csv file 161 -2025-01-08T21:30:38.897Z +2025-01-09T16:27:54.883Z contacts.html file 1120 -2025-01-08T21:30:40.708Z +2025-01-09T16:27:56.653Z contacts.json file 295 -2025-01-08T21:30:38.898Z +2025-01-09T16:27:54.883Z contacts.scroll file 374 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z contacts.tsv file 161 -2025-01-08T21:30:38.898Z +2025-01-09T16:27:54.883Z content.scroll file 174 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z css.css file 29 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z css.html file 187 -2025-01-08T21:30:40.709Z +2025-01-09T16:27:56.653Z css.scroll file 50 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z customMarkups.html file 819 -2025-01-08T21:30:40.710Z +2025-01-09T16:27:56.654Z customMarkups.scroll file 377 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z dark.html file 1313 -2025-01-08T21:30:40.711Z +2025-01-09T16:27:56.655Z dark.scroll file 38 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z dateTransforms.html file 1954 -2025-01-08T21:30:40.732Z +2025-01-09T16:27:56.673Z dateTransforms.scroll file 453 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z debug.html file 222 -2025-01-08T21:30:40.732Z +2025-01-09T16:27:56.673Z debug.scroll file 62 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z debugging.html file 5126 -2025-01-08T21:30:40.733Z +2025-01-09T16:27:56.674Z debugging.scroll file 155 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z defs.parsers file 825 -2025-01-08T21:30:38.898Z +2025-01-09T16:27:54.883Z defs.scroll file 273 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z defsForm.html file 3707 -2025-01-08T21:30:40.738Z +2025-01-09T16:27:56.682Z defsForm.scroll file 166 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z dependencies.html file 9531 -2025-01-08T21:30:40.743Z +2025-01-09T16:27:56.687Z dependencies.scroll file 441 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z disk.scroll file 75 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z edit.scroll file 72 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z extension.parsers file 164 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z favicon.scroll file 45 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z feed.scroll file 69 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z fetchTest.scroll file 129 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z footer.scroll file 108 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.686Z + +full.html +file +6518 +2025-01-09T16:27:54.953Z full.scroll file 52 -2025-01-08T21:30:21.515Z +2025-01-09T16:27:35.687Z gazette.html file 1322 -2025-01-08T21:30:38.966Z +2025-01-09T16:27:54.954Z gazette.scroll file 44 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z hakon.html file 187 -2025-01-08T21:30:38.968Z +2025-01-09T16:27:54.956Z hakon.scroll file 81 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z haml.html file 469 -2025-01-08T21:30:38.969Z +2025-01-09T16:27:54.957Z haml.scroll file 264 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z haml.txt file 70 -2025-01-08T21:30:38.969Z +2025-01-09T16:27:54.957Z header.scroll file 100 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z heatrix.html file 10668 -2025-01-08T21:30:38.970Z +2025-01-09T16:27:54.959Z heatrix.scroll file 531 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z html.html file 205 -2025-01-08T21:30:38.971Z +2025-01-09T16:27:54.960Z html.scroll file 93 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z htmlInclude.html file 65 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z index.html file -46479 -2025-01-08T21:30:40.237Z +46568 +2025-01-09T16:27:56.208Z index.scroll file 89 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z inline.html file 935 -2025-01-08T21:30:40.238Z +2025-01-09T16:27:56.209Z inline.scroll file 95 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z iris.html file 1051 -2025-01-08T21:30:40.238Z +2025-01-09T16:27:56.210Z iris.scroll file 66 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z javascript.html file 170 -2025-01-08T21:30:40.239Z +2025-01-09T16:27:56.210Z javascript.js file 46 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z javascript.scroll file 56 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z json.html file 1753 -2025-01-08T21:30:40.239Z +2025-01-09T16:27:56.210Z json.scroll file 122 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z keyboardNav.html file 739 -2025-01-08T21:30:40.239Z +2025-01-09T16:27:56.211Z keyboardNav.scroll file 51 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z lists.html file 237 -2025-01-08T21:30:40.240Z +2025-01-09T16:27:56.211Z lists.scroll file 84 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z maps.html file 14375 -2025-01-08T21:30:40.258Z +2025-01-09T16:27:56.230Z maps.scroll file 1432 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z markups.html file 473 -2025-01-08T21:30:40.259Z +2025-01-09T16:27:56.231Z markups.scroll file 351 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z meta.csv file 1971 -2025-01-08T21:30:38.862Z +2025-01-09T16:27:54.850Z meta.scroll file 115 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z modal.html file 12772 -2025-01-08T21:30:40.261Z +2025-01-09T16:27:56.232Z modal.scroll file 187 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z music.html file 299 -2025-01-08T21:30:40.261Z +2025-01-09T16:27:56.233Z music.scroll file 74 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z notices.html file 710 -2025-01-08T21:30:40.261Z +2025-01-09T16:27:56.233Z notices.scroll file 19 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z openGraphImages.html file 2138 -2025-01-08T21:30:40.263Z +2025-01-09T16:27:56.234Z openGraphImages.scroll file 303 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z optionalImport.html file 800 -2025-01-08T21:30:40.263Z +2025-01-09T16:27:56.235Z optionalImport.scroll file 131 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z postTemplate.scroll file 86 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z posts.html file 5500 -2025-01-08T21:30:40.264Z +2025-01-09T16:27:56.236Z posts.scroll file 566 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z prestige.html file 2203 -2025-01-08T21:30:40.265Z +2025-01-09T16:27:56.237Z prestige.scroll file 115 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z prompt.txt file 583 -2025-01-08T21:30:38.964Z +2025-01-09T16:27:54.948Z push.html file 263 -2025-01-08T21:30:40.265Z +2025-01-09T16:27:56.237Z push.scroll file 134 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z python.html file 113 -2025-01-08T21:30:40.266Z +2025-01-09T16:27:56.237Z python.py file 12 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z python.scroll file 39 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z python.txt file 12 -2025-01-08T21:30:40.266Z +2025-01-09T16:27:56.238Z qrcodes.html file 5755 -2025-01-08T21:30:40.273Z +2025-01-09T16:27:56.244Z qrcodes.scroll file 53 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z redirectTest.scroll file 22 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z relativeSnippets.html file 7796 -2025-01-08T21:30:40.278Z +2025-01-09T16:27:56.247Z relativeSnippets.scroll file 51 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z roboto.html file 1319 -2025-01-08T21:30:40.280Z +2025-01-09T16:27:56.248Z roboto.scroll file 42 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z script.html file 176 -2025-01-08T21:30:40.280Z +2025-01-09T16:27:56.249Z script.js file 86 -2025-01-08T21:30:40.280Z +2025-01-09T16:27:56.249Z script.scroll file 134 -2025-01-08T21:30:21.516Z +2025-01-09T16:27:35.687Z scroll.test.js file 10210 -2025-01-08T21:30:21.517Z +2025-01-09T16:27:35.688Z scrollFormsTest.html file 5480 -2025-01-08T21:30:38.958Z +2025-01-09T16:27:54.943Z scrollFormsTest.scroll file 955 -2025-01-08T21:30:21.517Z +2025-01-09T16:27:35.688Z scrollVersion.html file 276 -2025-01-08T21:30:38.959Z +2025-01-09T16:27:54.943Z scrollVersion.scroll file 43 -2025-01-08T21:30:21.517Z +2025-01-09T16:27:35.688Z settings.scroll file 151 -2025-01-08T21:30:21.517Z +2025-01-09T16:27:35.688Z sipOfCoffee.m4a file 45809 -2025-01-08T21:30:21.517Z +2025-01-09T16:27:35.688Z sitemap.scroll file 63 -2025-01-08T21:30:21.517Z +2025-01-09T16:27:35.688Z sitemap.txt file 2580 -2025-01-08T21:30:38.960Z +2025-01-09T16:27:54.944Z slideshowDemo.scroll file 127 -2025-01-08T21:30:21.517Z +2025-01-09T16:27:35.688Z snippets.html file 852 -2025-01-08T21:30:38.963Z +2025-01-09T16:27:54.947Z snippets.scroll file 65 -2025-01-08T21:30:21.517Z +2025-01-09T16:27:35.688Z source.scroll file 400 -2025-01-08T21:30:21.517Z +2025-01-09T16:27:35.688Z spirit.mp4 file 153185 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z stampTest.scroll file 193 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z stopwatch.html file 738 -2025-01-08T21:30:38.900Z +2025-01-09T16:27:54.885Z stopwatch.scroll file 88 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z stump.html file 88 -2025-01-08T21:30:38.903Z +2025-01-09T16:27:54.888Z stump.scroll file 38 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z style.css file 0 -2025-01-08T21:30:38.903Z +2025-01-09T16:27:54.888Z style.scroll file 133 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z subfolder directory 4096 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z tableDates.html file 960 -2025-01-08T21:30:38.908Z +2025-01-09T16:27:54.894Z tableDates.scroll file 137 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z tables.html file 15844 -2025-01-08T21:30:38.927Z +2025-01-09T16:27:54.912Z tables.scroll file 1759 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z tables.txt file 3489 -2025-01-08T21:30:38.930Z +2025-01-09T16:27:54.914Z tabularData.html file 7453 -2025-01-08T21:30:38.937Z +2025-01-09T16:27:54.922Z tabularData.scroll file 1047 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z tabularData.txt file 922 -2025-01-08T21:30:38.932Z +2025-01-09T16:27:54.917Z testOutput directory 4096 -2025-01-08T21:30:38.849Z +2025-01-09T16:27:54.838Z theScroll.html file 3830 -2025-01-08T21:30:38.937Z +2025-01-09T16:27:54.922Z theScroll.scroll file 27 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z themes.html file 602 -2025-01-08T21:30:38.938Z +2025-01-09T16:27:54.923Z themes.scroll file 165 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z top-sinks.scroll file 736 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z tufte.html file 1316 -2025-01-08T21:30:38.940Z +2025-01-09T16:27:54.924Z tufte.scroll file 40 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z video.html file 407 -2025-01-08T21:30:38.941Z +2025-01-09T16:27:54.925Z video.scroll file 123 -2025-01-08T21:30:21.518Z +2025-01-09T16:27:35.689Z diff --git a/tests/favicon.html b/tests/favicon.html index a0b8b5304..8e88844b5 100644 --- a/tests/favicon.html +++ b/tests/favicon.html @@ -3,13 +3,13 @@ Favicon - + - + diff --git a/tests/feed.rss b/tests/feed.rss index 7e5539d9d..3f2ad9846 100644 --- a/tests/feed.rss +++ b/tests/feed.rss @@ -4,7 +4,7 @@ Feed https://scroll.pub/tests/ Kitchen sink test site. - Wed, 08 Jan 2025 21:30:40 +0000 + Thu, 09 Jan 2025 16:27:56 +0000 en-us Tabular data test diff --git a/tests/full.html b/tests/full.html index 372e75650..5ffc172d1 100644 --- a/tests/full.html +++ b/tests/full.html @@ -201,7 +201,7 @@
  • You can put things in them
    • This should be in a new list

    This is not a sink.

    -
    • 14927 days old
    +
    • 14928 days old
    Edit
    @@ -217,7 +217,7 @@ $0budget 3countries - +
    @@ -229,7 +229,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -241,7 +241,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -253,7 +253,7 @@
    sinkManufacturer countryCanada
    -

    Today is Wed Jan 08 2025 21:30:38 GMT+0000 (Coordinated Universal Time)

    +

    Today is Thu Jan 09 2025 16:27:54 GMT+0000 (Coordinated Universal Time)

    1+1 = 2

    January 11, 2019 was a great day

    There are 283 in my list.

    diff --git a/tests/index.html b/tests/index.html index 06bdf954b..b4f8895e2 100644 --- a/tests/index.html +++ b/tests/index.html @@ -3,13 +3,13 @@ Index - + - + @@ -25,7 +25,7 @@

    Scroll Tests

    - +
    @@ -38,474 +38,474 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - - + + + + + + + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - - - + + + - + - + - - + + - + - - + + - - - - - - - + @@ -520,6 +520,6 @@ - + \ No newline at end of file diff --git a/tests/iris.html b/tests/iris.html index fdd3d0278..e69549af8 100644 --- a/tests/iris.html +++ b/tests/iris.html @@ -1,7 +1,7 @@ -
    title text
    Stamp Test 01/08/202501/09/2025 0 0
    Stopwatch 01/08/202501/09/2025 0 0
    Stump 01/08/202501/09/2025 0 0
    Style 01/08/202501/09/2025 0 0
    Table Dates Date tests ========== lastChanged 4/16/2022 4/19/1982 10/26/2024 01/08/202501/09/2025 12 0.1
    Tables Simple sparkline with inline data ================================= --- Sparkline from table ==================== Whats in table? =============== score 1 5 432 3 Show a sparkline? ================= How about a heatrix? ==================== What if we add a filter? ======================== Whats left in table? ==================== score 5 432 --- Visualizations from CSV ======================= name,email,phone,birthday,notes Jack Doe,john.doe@example.com,+1 (555) 123-4567,2/23/84,Daughter - Samantha. Jill Smith,jill@gmail.com,+1 (555) 123-4562,1/23/80, --- Transforms ========== name types score HTML 142 212 Markdown 192 2 Scroll 174 2 rST 142 21 name,types,score,rank HTML,142,212,1 rST,142,21,2 Markdown,192,2,3 Scroll,174,2,4 types,n,s 142,HTML,212 192,Markdown,2 174,Scroll,2 142,rST,21 types,name,score 142,HTML,212 192,Markdown,2 174,Scroll,2 142,rST,21 name HTML rST --- Impute ====== year,count 1900,10 1901,0 1902,0 1903,0 1904,0 1905,0 1906,0 1907,0 1908,0 1909,0 1910,0 1911,0 1912,0 1913,0 1914,0 1915,0 1916,0 1917,0 1918,0 1919,0 1920,0 1921,0 1922,0 1923,0 1924,0 1925,0 1926,0 1927,0 1928,0 1929,0 1930,0 1931,0 1932,0 1933,0 1934,0 1935,0 1936,0 1937,0 1938,0 1939,0 1940,0 1941,0 1942,0 1943,0 1944,0 1945,0 1946,0 1947,0 1948,0 1949,0 1950,0 1951,0 1952,0 1953,0 1954,0 1955,0 1956,0 1957,0 1958,0 1959,0 1960,0 1961,0 1962,0 1963,0 1964,0 1965,0 1966,0 1967,0 1968,0 1969,0 1970,0 1971,0 1972,0 1973,0 1974,0 1975,0 1976,0 1977,0 1978,0 1979,0 1980,0 1981,0 1982,0 1983,0 1984,0 1985,0 1986,0 1987,0 1988,0 1989,0 1990,0 1991,0 1992,0 1993,0 1994,0 1995,0 1996,0 1997,0 1998,0 1999,0 2000,122 2001,0 2002,0 2003,0 2004,0 2005,0 2006,0 2007,0 2008,0 2009,0 2010,0 2011,0 2012,0 2013,0 2014,0 2015,0 2016,0 2017,0 2018,0 2019,0 2020,23 --- Timestamps ========== folder ctime adfs 1726005360192 elmetate 1725993487049 test43 1725477868243 emailcollect 1725397672901 aadsasdfasdf2 1724954559126 folder,ctime,statement adfs,1726005360192,The name of the folder is adfs elmetate,1725993487049,The name of the folder is elmetate test43,1725477868243,The name of the folder is test43 emailcollect,1725397672901,The name of the folder is emailcollect aadsasdfasdf2,1724954559126,The name of the folder is aadsasdfasdf2 adfs · elmetate · test43 · emailcollect · aadsasdfasdf2 --- Quick Table =========== Quick JSON Table ================ [ { "name": "Jack Doe", "email": "john.doe@example.com", "phone": "+1 (555) 123-4567", "birthday": "2/23/84", "notes": "Daughter - Samantha." }, { "name": "Jill Smith", "email": "jill@gmail.com", "phone": "+1 (555) 123-4562", "birthday": "1/23/80" } ] ⁂ --- Where tests =========== year,count 2000,122 2020,23 year,count 2020,23 --- Case insensitive ================ species virginica versicolor virginica virginica virginica setosa virginica virginica setosa setosa species virginica versicolor virginica virginica virginica setosa virginica virginica setosa setosa --- Summarize ========= name,type,incompleteCount,uniqueCount,count,sum,median,mean,min,max,mode sepal_length,number,0,8,10,57.699999999999996,5.6,5.77,4.9,7.7,5.6 sepal_width,number,0,8,10,31.599999999999998,3.2,3.1599999999999997,2.5,3.8,2.8 petal_length,number,0,8,10,39.8,4.65,3.9799999999999995,1.4,6.7,4.9 petal_width,number,0,7,10,13.699999999999996,1.75,1.3699999999999997,0.2,2.3,0.2 species,string,0,3,10,null,null,,null,null,virginica --- Empty and non empty =================== 01/08/202501/09/2025 622 3.1
    Tabular data test Tabular data test ================= A test of TSV data Index Name Diameter Height Covered 5 10 15 20 25 30 35 40 45 50 55 1 Thermos 3 7.25 TRUE 149.9 147 144.6 141.2 138.2 137.1 134 132.8 131.1 129.3 127.2 2 Yeti Covered 4 3.8 TRUE 146.6 141 136.7 132.5 129 125.6 123.4 121.6 118.5 117.6 115.7 3 Yeti 4 3.8 FALSE 135.5 118.9 107.9 100.5 94.6 90.8 87.6 85.4 82.9 81.3 79.7 4 SF 4 4.5 FALSE 128.8 113.9 102.5 95.9 90.5 86.3 83.6 81.6 79.8 78.2 76.6 5 Aruba 3 3.75 FALSE 130.8 114.6 104.9 98.9 92.3 87.6 85.4 82.9 81.1 80.2 78 Putting print table after a table: ================================== name score joe 2 Dropdown sections ================= Full Table Rows LogLinear Quadratic Before After 1000 9966 1000000 36000 15000 2000 21932 4000000 53000 29000 10000 132877 100000000 258000 32000 20000 285754 400000000 1236000 52000 100000 1660964 10000000000 23122000 125000 200000 3521928 40000000000 113886000 324000 01/08/202501/09/2025 209 1
    The Scroll 01/08/202501/09/2025 0 0
    Themes Scroll Themes ============= The themes below ship with Scroll. To use type `theme roboto` 01/08/202501/09/2025 13 0.1
    Tufte Tufte ===== A header ======== A link. https://scroll.pub link - A list - Item 2 Code ==== Inline `code`. ```header A code block ``` 01/08/202501/09/2025 20 0.1
    Video With loop ========= Quick video =========== 01/08/202501/09/2025 4 0
    Scroll Forms Test ScrollSet Form Maker ==================== Past: to generate a classic form write "classicForm" ==================================================== Future: to generate a Scroll Form write "scrollForm" ==================================================== 01/08/202501/09/2025 19 0.1
    Scroll VersionBuilt with Scroll v165.2.0 01/08/2025Built with Scroll v165.3.0 01/09/2025 6 0
    Settings 01/08/202501/09/2025 0 0
    Sitemaphttps://scroll.pub/stampTest.html https://scroll.pub/stopwatch.html https://scroll.pub/stump.html https://scroll.pub/style.html https://scroll.pub/tableDates.html https://scroll.pub/tables.html https://scroll.pub/tabularData.html https://scroll.pub/theScroll.html https://scroll.pub/themes.html https://scroll.pub/tufte.html https://scroll.pub/video.html https://scroll.pub/scrollFormsTest.html https://scroll.pub/scrollVersion.html https://scroll.pub/settings.html https://scroll.pub/slideshowDemo.html https://scroll.pub/snippets.html https://scroll.pub/source.html https://scroll.pub/gazette.html https://scroll.pub/hakon.html https://scroll.pub/haml.html https://scroll.pub/heatrix.html https://scroll.pub/html.html https://scroll.pub/index.html https://scroll.pub/inline.html https://scroll.pub/iris.html https://scroll.pub/javascript.html https://scroll.pub/json.html https://scroll.pub/keyboardNav.html https://scroll.pub/lists.html https://scroll.pub/maps.html https://scroll.pub/markups.html https://scroll.pub/meta.html https://scroll.pub/modal.html https://scroll.pub/music.html https://scroll.pub/notices.html https://scroll.pub/openGraphImages.html https://scroll.pub/optionalImport.html https://scroll.pub/posts.html https://scroll.pub/prestige.html https://scroll.pub/push.html https://scroll.pub/python.html https://scroll.pub/qrcodes.html https://scroll.pub/redirectTest.html https://scroll.pub/relativeSnippets.html https://scroll.pub/roboto.html https://scroll.pub/script.html https://scroll.pub/a-review-of-my-sink.html https://scroll.pub/aParser.html https://scroll.pub/about.html https://scroll.pub/all.html https://scroll.pub/autoTitle.html https://scroll.pub/background.html https://scroll.pub/blogPost.html https://scroll.pub/buildDelimited.html https://scroll.pub/bundling.html https://scroll.pub/buttons.html https://scroll.pub/center.html https://scroll.pub/classicFormsTest.html https://scroll.pub/cloc.html https://scroll.pub/comments.html https://scroll.pub/concepts.html https://scroll.pub/contacts.html https://scroll.pub/css.html https://scroll.pub/customMarkups.html https://scroll.pub/dark.html https://scroll.pub/dateTransforms.html https://scroll.pub/debug.html https://scroll.pub/debugging.html https://scroll.pub/defs.html https://scroll.pub/defsForm.html https://scroll.pub/dependencies.html https://scroll.pub/disk.html https://scroll.pub/edit.html https://scroll.pub/favicon.html https://scroll.pub/feed.html https://scroll.pub/fetchTest.html https://scroll.pub/footer.html https://scroll.pub/full.html https://scroll.pub/top-sinks.html 01/08/2025https://scroll.pub/stampTest.html https://scroll.pub/stopwatch.html https://scroll.pub/stump.html https://scroll.pub/style.html https://scroll.pub/tableDates.html https://scroll.pub/tables.html https://scroll.pub/tabularData.html https://scroll.pub/theScroll.html https://scroll.pub/themes.html https://scroll.pub/tufte.html https://scroll.pub/video.html https://scroll.pub/scrollFormsTest.html https://scroll.pub/scrollVersion.html https://scroll.pub/settings.html https://scroll.pub/slideshowDemo.html https://scroll.pub/snippets.html https://scroll.pub/source.html https://scroll.pub/full.html https://scroll.pub/gazette.html https://scroll.pub/hakon.html https://scroll.pub/haml.html https://scroll.pub/heatrix.html https://scroll.pub/html.html https://scroll.pub/index.html https://scroll.pub/inline.html https://scroll.pub/iris.html https://scroll.pub/javascript.html https://scroll.pub/json.html https://scroll.pub/keyboardNav.html https://scroll.pub/lists.html https://scroll.pub/maps.html https://scroll.pub/markups.html https://scroll.pub/meta.html https://scroll.pub/modal.html https://scroll.pub/music.html https://scroll.pub/notices.html https://scroll.pub/openGraphImages.html https://scroll.pub/optionalImport.html https://scroll.pub/posts.html https://scroll.pub/prestige.html https://scroll.pub/push.html https://scroll.pub/python.html https://scroll.pub/qrcodes.html https://scroll.pub/redirectTest.html https://scroll.pub/relativeSnippets.html https://scroll.pub/roboto.html https://scroll.pub/script.html https://scroll.pub/a-review-of-my-sink.html https://scroll.pub/aParser.html https://scroll.pub/about.html https://scroll.pub/all.html https://scroll.pub/autoTitle.html https://scroll.pub/background.html https://scroll.pub/blogPost.html https://scroll.pub/buildDelimited.html https://scroll.pub/bundling.html https://scroll.pub/buttons.html https://scroll.pub/center.html https://scroll.pub/classicFormsTest.html https://scroll.pub/cloc.html https://scroll.pub/comments.html https://scroll.pub/concepts.html https://scroll.pub/contacts.html https://scroll.pub/css.html https://scroll.pub/customMarkups.html https://scroll.pub/dark.html https://scroll.pub/dateTransforms.html https://scroll.pub/debug.html https://scroll.pub/debugging.html https://scroll.pub/defs.html https://scroll.pub/defsForm.html https://scroll.pub/dependencies.html https://scroll.pub/disk.html https://scroll.pub/edit.html https://scroll.pub/favicon.html https://scroll.pub/feed.html https://scroll.pub/fetchTest.html https://scroll.pub/footer.html https://scroll.pub/top-sinks.html 01/09/2025 400 2
    Slideshow Demo * The Dog in the Bog * The Dog was in the Bog * The END ⁂ 01/08/202501/09/2025 13 0.1
    SnippetsAbout the Kitchen Sink Blog =========================== 01/08/2025 https://scroll.pub/tests/about.html A review of my sink =================== 01/08/2025 https://scroll.pub/tests/a-review-of-my-sink.html Top Sinks ========= 01/11/2019 https://scroll.pub/tests/top-sinks.html 01/08/2025About the Kitchen Sink Blog =========================== 01/09/2025 https://scroll.pub/tests/about.html A review of my sink =================== 01/09/2025 https://scroll.pub/tests/a-review-of-my-sink.html Top Sinks ========= 01/11/2019 https://scroll.pub/tests/top-sinks.html 01/09/2025 44 0.2
    SourceInstructions: Below are the files in a blog. I want you to read them, and then perform the following tasks, and give me your results in the format of a git patch so I can easily apply your changes on my local computer and commit them. Tasks: The Files: Source https://scroll.pub/tests/ Kitchen sink test site. Wed, 08 Jan 2025 21:30:38 +0000 en-us Tabular data test https://scroll.pub/tests/tabularData.html Invalid Date A review of my sink https://scroll.pub/tests/a-review-of-my-sink.html Invalid Date Top Sinks https://scroll.pub/tests/top-sinks.html Invalid Date 01/08/2025Instructions: Below are the files in a blog. I want you to read them, and then perform the following tasks, and give me your results in the format of a git patch so I can easily apply your changes on my local computer and commit them. Tasks: The Files: Source https://scroll.pub/tests/ Kitchen sink test site. Thu, 09 Jan 2025 16:27:54 +0000 en-us Tabular data test https://scroll.pub/tests/tabularData.html Invalid Date A review of my sink https://scroll.pub/tests/a-review-of-my-sink.html Invalid Date Top Sinks https://scroll.pub/tests/top-sinks.html Invalid Date 01/09/2025 107 0.5
    FullTabular data test ================= 01/09/2025 https://scroll.pub/tests/tabularData.html A review of my sink =================== 01/09/2025 https://scroll.pub/tests/a-review-of-my-sink.html Top Sinks ========= 01/11/2019 https://scroll.pub/tests/top-sinks.html 01/09/2025420.2
    Gazette Gazette ======= A header ======== A link. https://scroll.pub link - A list - Item 2 Code ==== Inline `code`. ```header A code block ``` 01/08/202501/09/2025 20 0.1
    Hakon Red background green text 01/08/202501/09/2025 4 0
    Haml Green Red Red underline Green underline plain tag - About - Home 01/08/202501/09/2025 10 0.1
    Heatrix Basic test ========== Multiple rows ============= Test Links ========== Test Size and Number escaping and custom colors =============================================== 01/08/202501/09/2025 14 0.1
    Html The background should be green 01/08/202501/09/2025 5 0
    Inline Hello world 01/08/202501/09/2025 2 0
    Irissepal_length,sepal_width,petal_length,petal_width,species 5,3.4,1.5,0.2,setosa 6.2,2.8,4.8,1.8,virginica 5.6,2.8,4.9,2,virginica 7.7,3.8,6.7,2.2,virginica 4.9,2.5,4.5,1.7,virginica 6.1,3,4.9,1.8,virginica 5.1,3.5,1.4,0.2,setosa 5.6,2.7,4.2,1.3,versicolor 5.3,3.7,1.5,0.2,setosa 6.2,3.4,5.4,2.3,virginica 01/08/2025sepal_length,sepal_width,petal_length,petal_width,species 5,3.4,1.5,0.2,setosa 6.1,3,4.9,1.8,virginica 7.7,3.8,6.7,2.2,virginica 5.1,3.5,1.4,0.2,setosa 5.6,2.7,4.2,1.3,versicolor 5.3,3.7,1.5,0.2,setosa 6.2,2.8,4.8,1.8,virginica 6.2,3.4,5.4,2.3,virginica 5.6,2.8,4.9,2,virginica 4.9,2.5,4.5,1.7,virginica 01/09/2025 92 0.5
    Javascript The background should be green 01/08/202501/09/2025 5 0
    Json window.package.description says: 01/08/202501/09/2025 4 0
    Keyboard Nav 01/08/202501/09/2025 0 0
    Lists - This is a test - Of nested - Indentation - Level 4 01/08/202501/09/2025 9 0
    Maps Geolocate user ============== Custom ====== 01/08/202501/09/2025 3 0
    Markups Hello world This is italicized Make this code Strikethrough this whole line. hi *world* .a.-b- 01/08/202501/09/2025 16 0.1
    Meta date,year,title,permalink,authors,tags,wordCount,minutes 01/06/2025,2025,Data Science with Scroll,dataScience.html,Breck Yunits,All,632,3.2 10/28/2024,2024,Scroll in 50 Questions,scrollInQuestions.html,Breck Yunits,All,1082,5.4 10/01/2024,2024,Web Forms for Geniuses,forms.html,Breck Yunits,All,369,1.8 09/02/2024,2024,The Successor to RSS is Git Clone,gitOverRss.html,Breck Yunits,All,224,1.1 08/30/2024,2024,A New Way to Program,teddyTalk.html,Breck Yunits,All,425,2.1 08/09/2024,2024,Tables: a microlang for data science,tables.html,Breck Yunits,All,479,2.4 08/02/2024,2024,Build Your Own Counters With 3 Words,counters.html,Breck Yunits,All,1029,5.1 07/28/2024,2024,Heatrix: Heat Maps + Matrix Visualizations,heatrix.html,Breck Yunits,All,470,2.4 07/16/2024,2024,Contacts: A Microlang for Managing Contacts,contacts.html,Breck Yunits,All,374,1.9 07/12/2024,2024,How I Designed Helpful 404's and Stopped Worrying about Broken Links,helpful404s.html,Breck Yunits,All,547,2.7 07/09/2024,2024,Convert CSVs to ScrollSets,csvToScrollSet.html,Breck Yunits,All,100,0.5 07/01/2024,2024,Changes: A Microlang for Change Logs,changes.html,Breck Yunits,All,431,2.2 06/24/2024,2024,Write scatterplot to get a scatterplot,plot.html,Breck Yunits,All,342,1.7 06/23/2024,2024,Stamp: a microlang for project templates,stamp.html,Breck Yunits,All,300,1.5 04/29/2024,2024,Scroll builds text files,textFiles.html,Breck Yunits,All,175,0.9 04/21/2024,2024,ScrollSets: source code for CSVs,scrollsets.html,Breck Yunits,All ScrollSets,1382,6.9 05/08/2023,2023,Introducing Program Links,programLinks.html,Breck Yunits,All,510,2.5 04/13/2023,2023,Counterpoints: A new tool for thought in the Scroll Language,counterpoints.html,Breck Yunits,All,391,2 10/02/2022,2022,Introducing the Blink Tag,introducingBlink.html,Breck Yunits,All,176,0.9 08/23/2021,2021,"The Power of Indented Heredocs: Markdown, Textile, and BBCode in one file with no escaping",indented-heredocs.html,Breck Yunits,All,306,1.5 01/08/202501/09/2025 372 1.9
    Modal Open modal. /#m1 modal This should be in a modal ========================= Open modal 2. /#m2 modal This is modal 2. ================ 01/08/202501/09/2025 19 0.1
    Music With loop ========= 01/08/202501/09/2025 2 0
    Notices 01/08/202501/09/2025 0 0
    Open Graph Images Not this one ============ [Image Omitted] https://scroll.pub/index.html undefined The image below should be the og image ====================================== [Image Omitted] Not this one ============ [Image Omitted] A caption https://scroll.pub/blog/scrollsets.html undefined 01/08/202501/09/2025 35 0.2
    Optional Import Pass 1 - codeAtStart ======== buildHtml settings.scroll // todo: the below optional line should be in the importer code. // optional env.scroll debugSourceStack Pass 2 - fusedCode ======== buildHtml imported /home/runner/work/scroll/scroll/tests/settings.scroll exists true baseUrl https://scroll.pub/tests/ description Kitchen sink test site. editBaseUrl https://github.com/breck7/scroll/blob/main/tests/ imported /home/runner/work/scroll/scroll/tests/extension.parsers exists true // todo: the below optional line should be in the importer code. // optional imported /home/runner/work/scroll/scroll/tests/env.scroll exists false debugSourceStack Pass 3 - codeAfterMacroPass ======== [Unchanged] 01/08/202501/09/2025 94 0.5
    Posts --- This is _a_ test·Tabular data test·A review of my sink·Top Sinks --- 1..2..3..4 --- This is _a_ testTabular data testA review of my sinkTop Sinks ---          01/08/202501/09/2025 36 0.2
    Prestige Julius Caesar ============= Prestige ======== * * ⁂ 01/08/202501/09/2025 3 0
    Push This is my body. This should be above the footer. This is my footer. It is moved to end of file before compilation. 01/08/202501/09/2025 23 0.1
    Python 2 + 2 is: 4 01/08/202501/09/2025 4 0
    Qrcodes 01/08/202501/09/2025 0 0
    Redirect Test 01/08/202501/09/2025 0 0
    Relative SnippetsThis is _a_ test ================ 01/08/2025 https://scroll.pub/tests/aTestPost.html Tabular data test ================= 01/08/2025 https://scroll.pub/tests/tabularData.html A review of my sink =================== 01/08/2025 https://scroll.pub/tests/a-review-of-my-sink.html Top Sinks ========= 01/11/2019 https://scroll.pub/tests/top-sinks.html 01/08/2025This is _a_ test ================ 01/09/2025 https://scroll.pub/tests/aTestPost.html Tabular data test ================= 01/09/2025 https://scroll.pub/tests/tabularData.html A review of my sink =================== 01/09/2025 https://scroll.pub/tests/a-review-of-my-sink.html Top Sinks ========= 01/11/2019 https://scroll.pub/tests/top-sinks.html 01/09/2025 55 0.3
    Roboto Roboto ====== A header ======== A link. https://scroll.pub link - A list - Item 2 Code ==== Inline `code`. ```header A code block ``` 01/08/202501/09/2025 20 0.1
    Script 01/08/202501/09/2025 0 0
    A review of my sink A review of my sink =================== I have been using my sink for one year, and this is what I have learned. I have learned that a sink is a sink. My favorite things about sinks ============================== - They can hold water - You can put things in them - This should be in a new list - days old - foo https://scroll.pub/tests/bar.html foo - bar https://scroll.pub/tests/bam.html bar 01/08/202501/09/2025 70 0.3
    A Parser Click me. message Hello world 01/08/202501/09/2025 5 0
    About the Kitchen Sink BlogAbout the Kitchen Sink Blog =========================== This blog is for testing purposes—to exercise/test all the features of Scroll. January 8, 2025 Public domain products are strictly superior to equivalent non-public domain alternatives by a significant margin on three dimensions: trust, speed, and cost to build. If enough capable people start building public domain products we can change the world. 01/08/2025About the Kitchen Sink Blog =========================== This blog is for testing purposes—to exercise/test all the features of Scroll. January 9, 2025 Public domain products are strictly superior to equivalent non-public domain alternatives by a significant margin on three dimensions: trust, speed, and cost to build. If enough capable people start building public domain products we can change the world. 01/09/2025 61 0.3
    AllAbout the Kitchen Sink Blog =========================== 01/08/2025 https://scroll.pub/tests/about.html A review of my sink =================== 01/08/2025 https://scroll.pub/tests/a-review-of-my-sink.html Top Sinks ========= 01/11/2019 https://scroll.pub/tests/top-sinks.html 01/08/2025About the Kitchen Sink Blog =========================== 01/09/2025 https://scroll.pub/tests/about.html A review of my sink =================== 01/09/2025 https://scroll.pub/tests/a-review-of-my-sink.html Top Sinks ========= 01/11/2019 https://scroll.pub/tests/top-sinks.html 01/09/2025 44 0.2
    Auto TitleAuto Title ========== January 8, 2025 This file has no title set and no date set, but those should be autogenerated from the filename and file ctime data. 01/08/2025Auto Title ========== January 9, 2025 This file has no title set and no date set, but those should be autogenerated from the filename and file ctime data. 01/09/2025 27 0.1
    Background hello world 01/08/202501/09/2025 2 0
    Blog PostBlog Post ========= This is my body. This should be above the footer. Built with Scroll v165.2.0 01/08/2025Blog Post ========= This is my body. This should be above the footer. Built with Scroll v165.3.0 01/09/2025 18 0.1
    Build Delimited sepal_length,sepal_width,petal_length,petal_width,species 6.1,3,4.9,1.8,virginica 5.6,2.8,4.9,2,virginica 6.2,2.8,4.8,1.8,virginica 7.7,3.8,6.7,2.2,virginica 6.2,3.4,5.4,2.3,virginica 4.9,2.5,4.5,1.7,virginica 01/08/202501/09/2025 57 0.3
    Bundling 01/08/202501/09/2025 0 0
    Buttons A link https://scroll.pub A link A Post https://hub.scroll.pub/echo.htm A Post post hello world 01/08/202501/09/2025 20 0.1
    Center Hello world Hello *world* This should be centered This should not be centered. 01/08/202501/09/2025 13 0.1
    Classic Forms Test 01/08/202501/09/2025 0 0
    Clocfiles,language,blank,comment,code 26,JavaScript,7119,8110,56269 110,Parsers,355,0,6926 140,Scroll,1954,0,5436 14,CSS,264,99,3400 2,SVG,0,0,226 2,JSON,0,0,111 4,YAML,6,3,65 2,Markdown,17,0,37 1,Text,0,0,8 1,HTML,0,0,5 1,Python,0,0,1 303,SUM,9715,8212,72484 01/08/2025files,language,blank,comment,code 26,JavaScript,7119,8110,56269 111,Parsers,356,0,6948 140,Scroll,1955,0,5439 14,CSS,264,99,3400 2,SVG,0,0,226 2,JSON,0,0,111 4,YAML,6,3,65 2,Markdown,17,0,37 1,Text,0,0,8 1,HTML,0,0,5 1,Python,0,0,1 304,SUM,9717,8212,72509 01/09/2025 65 0.3
    Comments 01/08/202501/09/2025 0 0
    Concepts Concepts ======== name,email,phone,birthday,notes Jack Doe,john.doe@example.com,+1 (555) 123-4567,2/23/84,Daughter - Samantha. Jill Smith,jill@gmail.com,+1 (555) 123-4562,1/23/80, 01/08/202501/09/2025 33 0.2
    My Contacts My Contacts =========== name,email,phone,birthday,notes Jack Doe,john.doe@example.com,+1 (555) 123-4567,2/23/84,Daughter - Samantha. Jill Smith,jill@gmail.com,+1 (555) 123-4562,1/23/80, 01/08/202501/09/2025 34 0.2
    Css The background should be green 01/08/202501/09/2025 5 0
    Custom Markups Custom Inline Markups Test ========================== *This* should not be bold. ~~~This should be a marquee.~~~ And _this_ should be underlined. A :link:. And $this text$ should be green. 01/08/202501/09/2025 27 0.1
    Dark Dark ==== A header ======== A link. https://scroll.pub link - A list - Item 2 Code ==== Inline `code`. ```header A code block ``` 01/08/202501/09/2025 20 0.1
    Date Transforms version,releaseDate,bugFixes,newFeatures,breakingChanges,year,month,dayOfMonth,day,monthName,dayName 145.3.0,10/24/2024,0,1,0,2024,10,24,4,October,Thursday 58.5.0,3/2/2023,0,1,0,2023,3,2,4,March,Thursday 148.3.1,11/12/2024,1,0,0,2024,11,12,2,November,Tuesday 28.0.0,8/26/2022,0,1,12,2022,8,26,5,August,Friday 100.0.0,7/02/2024,0,2,1,2024,7,2,2,July,Tuesday 89.2.0,5/16/2024,0,1,0,2024,5,16,4,May,Thursday 54.0.0,1/19/2023,1,2,2,2023,1,19,4,January,Thursday 107.1.0,7/14/2024,0,1,0,2024,7,14,0,July,Sunday 84.5.1,5/07/2024,1,0,0,2024,5,7,2,May,Tuesday 145.1.1,10/23/2024,1,0,0,2024,10,23,3,October,Wednesday 01/08/202501/09/2025 161 0.8
    Debug Hello world /foo.html Hello world ================================== inspectAbove 01/08/202501/09/2025 7 0
    Debug tools testsDebug tools tests ================= The sum of 1+1 is 2 Pass 1 - codeAtStart ======== buildHtml replace TITLE Debug tools tests replaceJs SUM 1+1 title TITLE theme gazette printTitle The sum of 1+1 is SUM debugSourceStack footer.scroll Pass 2 - fusedCode ======== buildHtml replace TITLE Debug tools tests replaceJs SUM 1+1 title TITLE theme gazette printTitle The sum of 1+1 is SUM debugSourceStack imported /home/runner/work/scroll/scroll/tests/footer.scroll exists true clearStack center emailButton feedback@scroll.pub downloadButton download.html editButton scrollVersionLink Pass 3 - codeAfterMacroPass ======== buildHtml title Debug tools tests theme gazette printTitle The sum of 1+1 is 2 debugSourceStack imported /home/runner/work/scroll/scroll/tests/footer.scroll exists true clearStack center emailButton feedback@scroll.pub downloadButton download.html editButton scrollVersionLink Built with Scroll v165.2.0 01/08/2025Debug tools tests ================= The sum of 1+1 is 2 Pass 1 - codeAtStart ======== buildHtml replace TITLE Debug tools tests replaceJs SUM 1+1 title TITLE theme gazette printTitle The sum of 1+1 is SUM debugSourceStack footer.scroll Pass 2 - fusedCode ======== buildHtml replace TITLE Debug tools tests replaceJs SUM 1+1 title TITLE theme gazette printTitle The sum of 1+1 is SUM debugSourceStack imported /home/runner/work/scroll/scroll/tests/footer.scroll exists true clearStack center emailButton feedback@scroll.pub downloadButton download.html editButton scrollVersionLink Pass 3 - codeAfterMacroPass ======== buildHtml title Debug tools tests theme gazette printTitle The sum of 1+1 is 2 debugSourceStack imported /home/runner/work/scroll/scroll/tests/footer.scroll exists true clearStack center emailButton feedback@scroll.pub downloadButton download.html editButton scrollVersionLink Built with Scroll v165.3.0 01/09/2025 133 0.7
    Defs 01/08/202501/09/2025 0 0
    Defs Form This example shows the use of Scroll Defs to create forms even faster than writing Parsers. 01/08/202501/09/2025 16 0.1
    DependenciesThis file requires these files: =============================== file /home/runner/work/scroll/scroll/tests/header.scroll /home/runner/work/scroll/scroll/tests/settings.scroll /home/runner/work/scroll/scroll/tests/extension.parsers /home/runner/work/scroll/scroll/microlangs/changes.parsers /home/runner/work/scroll/scroll/tests/footer.scroll ../particles.png ../style.css contacts.csv [Image Omitted] Built with Scroll v165.2.0 01/08/2025This file requires these files: =============================== file /home/runner/work/scroll/scroll/tests/header.scroll /home/runner/work/scroll/scroll/tests/settings.scroll /home/runner/work/scroll/scroll/tests/extension.parsers /home/runner/work/scroll/scroll/microlangs/changes.parsers /home/runner/work/scroll/scroll/tests/footer.scroll ../particles.png ../style.css contacts.csv [Image Omitted] Built with Scroll v165.3.0 01/09/2025 60 0.3
    Disk[{"name":".codeMirror.css","type":"file","size":9413,"lastModified":"2025-01-08T21:30:38.943Z"},{"name":".constants.js","type":"file","size":214465,"lastModified":"2025-01-08T21:30:38.947Z"},{"name":".datatables.css","type":"file","size":57644,"lastModified":"2025-01-08T21:30:38.904Z"},{"name":".datatables.js","type":"file","size":697329,"lastModified":"2025-01-08T21:30:38.907Z"},{"name":".dayjs.min.js","type":"file","size":14556,"lastModified":"2025-01-08T21:30:38.904Z"},{"name":".gazette.css","type":"file","size":628,"lastModified":"2025-01-08T21:30:38.907Z"},{"name":".jquery-3.7.1.min.js","type":"file","size":87533,"lastModified":"2025-01-08T21:30:38.903Z"},{"name":".roboto.css","type":"file","size":544,"lastModified":"2025-01-08T21:30:38.899Z"},{"name":".scroll.css","type":"file","size":8908,"lastModified":"2025-01-08T21:30:38.899Z"},{"name":".scrollLibs.js","type":"file","size":961754,"lastModified":"2025-01-08T21:30:38.946Z"},{"name":".sparkline.js","type":"file","size":6973,"lastModified":"2025-01-08T21:30:38.910Z"},{"name":".tableSearch.js","type":"file","size":7018,"lastModified":"2025-01-08T21:30:38.907Z"},{"name":".tufte.css","type":"file","size":1029,"lastModified":"2025-01-08T21:30:38.939Z"},{"name":"a-review-of-my-sink.scroll","type":"file","size":586,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"aParser.scroll","type":"file","size":250,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"about.scroll","type":"file","size":451,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"all.scroll","type":"file","size":50,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"autoTitle.scroll","type":"file","size":149,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"background.scroll","type":"file","size":41,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"blogPost.scroll","type":"file","size":71,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"browserstack.node.js","type":"file","size":2521,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"buildDelimited.csv","type":"file","size":209,"lastModified":"2025-01-08T21:30:38.887Z"},{"name":"buildDelimited.json","type":"file","size":802,"lastModified":"2025-01-08T21:30:38.888Z"},{"name":"buildDelimited.scroll","type":"file","size":148,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"buildDelimited.tsv","type":"file","size":209,"lastModified":"2025-01-08T21:30:38.887Z"},{"name":"bundling.scroll","type":"file","size":212,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"buttons.scroll","type":"file","size":133,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"center.scroll","type":"file","size":114,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"classicFormsTest.scroll","type":"file","size":240,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"cloc.scroll","type":"file","size":68,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"clocLangs.txt","type":"file","size":215,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"comments.scroll","type":"file","size":25,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"concepts.scroll","type":"file","size":305,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"contacts.csv","type":"file","size":161,"lastModified":"2025-01-08T21:30:38.897Z"},{"name":"contacts.json","type":"file","size":295,"lastModified":"2025-01-08T21:30:38.898Z"},{"name":"contacts.scroll","type":"file","size":374,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"contacts.tsv","type":"file","size":161,"lastModified":"2025-01-08T21:30:38.898Z"},{"name":"content.scroll","type":"file","size":174,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"css.css","type":"file","size":29,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"css.scroll","type":"file","size":50,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"customMarkups.scroll","type":"file","size":377,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"dark.scroll","type":"file","size":38,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"dateTransforms.scroll","type":"file","size":453,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"debug.scroll","type":"file","size":62,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"debugging.scroll","type":"file","size":155,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"defs.parsers","type":"file","size":825,"lastModified":"2025-01-08T21:30:38.898Z"},{"name":"defs.scroll","type":"file","size":273,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"defsForm.scroll","type":"file","size":166,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"dependencies.scroll","type":"file","size":441,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"disk.scroll","type":"file","size":75,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"edit.scroll","type":"file","size":72,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"extension.parsers","type":"file","size":164,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"favicon.scroll","type":"file","size":45,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"feed.scroll","type":"file","size":69,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"fetchTest.scroll","type":"file","size":129,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"footer.scroll","type":"file","size":108,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"full.scroll","type":"file","size":52,"lastModified":"2025-01-08T21:30:21.515Z"},{"name":"gazette.html","type":"file","size":1322,"lastModified":"2025-01-08T21:30:38.966Z"},{"name":"gazette.scroll","type":"file","size":44,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"hakon.html","type":"file","size":187,"lastModified":"2025-01-08T21:30:38.968Z"},{"name":"hakon.scroll","type":"file","size":81,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"haml.html","type":"file","size":469,"lastModified":"2025-01-08T21:30:38.969Z"},{"name":"haml.scroll","type":"file","size":264,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"haml.txt","type":"file","size":70,"lastModified":"2025-01-08T21:30:38.969Z"},{"name":"header.scroll","type":"file","size":100,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"heatrix.html","type":"file","size":10668,"lastModified":"2025-01-08T21:30:38.970Z"},{"name":"heatrix.scroll","type":"file","size":531,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"html.html","type":"file","size":205,"lastModified":"2025-01-08T21:30:38.971Z"},{"name":"html.scroll","type":"file","size":93,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"htmlInclude.html","type":"file","size":65,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"index.scroll","type":"file","size":89,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"inline.scroll","type":"file","size":95,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"iris.scroll","type":"file","size":66,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"javascript.js","type":"file","size":46,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"javascript.scroll","type":"file","size":56,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"json.scroll","type":"file","size":122,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"keyboardNav.scroll","type":"file","size":51,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"lists.scroll","type":"file","size":84,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"maps.scroll","type":"file","size":1432,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"markups.scroll","type":"file","size":351,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"meta.csv","type":"file","size":1971,"lastModified":"2025-01-08T21:30:38.862Z"},{"name":"meta.scroll","type":"file","size":115,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"modal.scroll","type":"file","size":187,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"music.scroll","type":"file","size":74,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"notices.scroll","type":"file","size":19,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"openGraphImages.scroll","type":"file","size":303,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"optionalImport.scroll","type":"file","size":131,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"postTemplate.scroll","type":"file","size":86,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"posts.scroll","type":"file","size":566,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"prestige.scroll","type":"file","size":115,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"prompt.txt","type":"file","size":583,"lastModified":"2025-01-08T21:30:38.964Z"},{"name":"push.scroll","type":"file","size":134,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"python.py","type":"file","size":12,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"python.scroll","type":"file","size":39,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"qrcodes.scroll","type":"file","size":53,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"redirectTest.scroll","type":"file","size":22,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"relativeSnippets.scroll","type":"file","size":51,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"roboto.scroll","type":"file","size":42,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"script.scroll","type":"file","size":134,"lastModified":"2025-01-08T21:30:21.516Z"},{"name":"scroll.test.js","type":"file","size":10210,"lastModified":"2025-01-08T21:30:21.517Z"},{"name":"scrollFormsTest.html","type":"file","size":5480,"lastModified":"2025-01-08T21:30:38.958Z"},{"name":"scrollFormsTest.scroll","type":"file","size":955,"lastModified":"2025-01-08T21:30:21.517Z"},{"name":"scrollVersion.html","type":"file","size":276,"lastModified":"2025-01-08T21:30:38.959Z"},{"name":"scrollVersion.scroll","type":"file","size":43,"lastModified":"2025-01-08T21:30:21.517Z"},{"name":"settings.scroll","type":"file","size":151,"lastModified":"2025-01-08T21:30:21.517Z"},{"name":"sipOfCoffee.m4a","type":"file","size":45809,"lastModified":"2025-01-08T21:30:21.517Z"},{"name":"sitemap.scroll","type":"file","size":63,"lastModified":"2025-01-08T21:30:21.517Z"},{"name":"sitemap.txt","type":"file","size":2580,"lastModified":"2025-01-08T21:30:38.960Z"},{"name":"slideshowDemo.scroll","type":"file","size":127,"lastModified":"2025-01-08T21:30:21.517Z"},{"name":"snippets.html","type":"file","size":852,"lastModified":"2025-01-08T21:30:38.963Z"},{"name":"snippets.scroll","type":"file","size":65,"lastModified":"2025-01-08T21:30:21.517Z"},{"name":"source.scroll","type":"file","size":400,"lastModified":"2025-01-08T21:30:21.517Z"},{"name":"spirit.mp4","type":"file","size":153185,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"stampTest.scroll","type":"file","size":193,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"stopwatch.html","type":"file","size":738,"lastModified":"2025-01-08T21:30:38.900Z"},{"name":"stopwatch.scroll","type":"file","size":88,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"stump.html","type":"file","size":88,"lastModified":"2025-01-08T21:30:38.903Z"},{"name":"stump.scroll","type":"file","size":38,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"style.css","type":"file","size":0,"lastModified":"2025-01-08T21:30:38.903Z"},{"name":"style.scroll","type":"file","size":133,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"subfolder","type":"directory","size":4096,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"tableDates.html","type":"file","size":960,"lastModified":"2025-01-08T21:30:38.908Z"},{"name":"tableDates.scroll","type":"file","size":137,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"tables.html","type":"file","size":15844,"lastModified":"2025-01-08T21:30:38.927Z"},{"name":"tables.scroll","type":"file","size":1759,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"tables.txt","type":"file","size":3489,"lastModified":"2025-01-08T21:30:38.930Z"},{"name":"tabularData.html","type":"file","size":7453,"lastModified":"2025-01-08T21:30:38.937Z"},{"name":"tabularData.scroll","type":"file","size":1047,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"tabularData.txt","type":"file","size":922,"lastModified":"2025-01-08T21:30:38.932Z"},{"name":"testOutput","type":"directory","size":4096,"lastModified":"2025-01-08T21:30:38.849Z"},{"name":"theScroll.html","type":"file","size":3830,"lastModified":"2025-01-08T21:30:38.937Z"},{"name":"theScroll.scroll","type":"file","size":27,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"themes.html","type":"file","size":602,"lastModified":"2025-01-08T21:30:38.938Z"},{"name":"themes.scroll","type":"file","size":165,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"top-sinks.scroll","type":"file","size":736,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"tufte.html","type":"file","size":1316,"lastModified":"2025-01-08T21:30:38.940Z"},{"name":"tufte.scroll","type":"file","size":40,"lastModified":"2025-01-08T21:30:21.518Z"},{"name":"video.html","type":"file","size":407,"lastModified":"2025-01-08T21:30:38.941Z"},{"name":"video.scroll","type":"file","size":123,"lastModified":"2025-01-08T21:30:21.518Z"}] 01/08/20251956[{"name":".codeMirror.css","type":"file","size":9413,"lastModified":"2025-01-09T16:27:54.927Z"},{"name":".constants.js","type":"file","size":214465,"lastModified":"2025-01-09T16:27:54.932Z"},{"name":".datatables.css","type":"file","size":57644,"lastModified":"2025-01-09T16:27:54.889Z"},{"name":".datatables.js","type":"file","size":697329,"lastModified":"2025-01-09T16:27:54.892Z"},{"name":".dayjs.min.js","type":"file","size":14556,"lastModified":"2025-01-09T16:27:54.889Z"},{"name":".gazette.css","type":"file","size":628,"lastModified":"2025-01-09T16:27:54.893Z"},{"name":".jquery-3.7.1.min.js","type":"file","size":87533,"lastModified":"2025-01-09T16:27:54.889Z"},{"name":".roboto.css","type":"file","size":544,"lastModified":"2025-01-09T16:27:54.884Z"},{"name":".scroll.css","type":"file","size":8908,"lastModified":"2025-01-09T16:27:54.884Z"},{"name":".scrollLibs.js","type":"file","size":961754,"lastModified":"2025-01-09T16:27:54.931Z"},{"name":".sparkline.js","type":"file","size":6973,"lastModified":"2025-01-09T16:27:54.899Z"},{"name":".tableSearch.js","type":"file","size":7018,"lastModified":"2025-01-09T16:27:54.892Z"},{"name":".tufte.css","type":"file","size":1029,"lastModified":"2025-01-09T16:27:54.923Z"},{"name":"a-review-of-my-sink.scroll","type":"file","size":586,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"aParser.scroll","type":"file","size":250,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"about.scroll","type":"file","size":451,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"all.scroll","type":"file","size":50,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"autoTitle.scroll","type":"file","size":149,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"background.scroll","type":"file","size":41,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"blogPost.scroll","type":"file","size":71,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"browserstack.node.js","type":"file","size":2521,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"buildDelimited.csv","type":"file","size":209,"lastModified":"2025-01-09T16:27:54.873Z"},{"name":"buildDelimited.json","type":"file","size":802,"lastModified":"2025-01-09T16:27:54.874Z"},{"name":"buildDelimited.scroll","type":"file","size":148,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"buildDelimited.tsv","type":"file","size":209,"lastModified":"2025-01-09T16:27:54.873Z"},{"name":"bundling.scroll","type":"file","size":212,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"buttons.scroll","type":"file","size":133,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"center.scroll","type":"file","size":114,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"classicFormsTest.scroll","type":"file","size":240,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"cloc.scroll","type":"file","size":68,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"clocLangs.txt","type":"file","size":215,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"comments.scroll","type":"file","size":25,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"concepts.scroll","type":"file","size":305,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"contacts.csv","type":"file","size":161,"lastModified":"2025-01-09T16:27:54.883Z"},{"name":"contacts.json","type":"file","size":295,"lastModified":"2025-01-09T16:27:54.883Z"},{"name":"contacts.scroll","type":"file","size":374,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"contacts.tsv","type":"file","size":161,"lastModified":"2025-01-09T16:27:54.883Z"},{"name":"content.scroll","type":"file","size":174,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"css.css","type":"file","size":29,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"css.scroll","type":"file","size":50,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"customMarkups.scroll","type":"file","size":377,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"dark.scroll","type":"file","size":38,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"dateTransforms.scroll","type":"file","size":453,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"debug.scroll","type":"file","size":62,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"debugging.scroll","type":"file","size":155,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"defs.parsers","type":"file","size":825,"lastModified":"2025-01-09T16:27:54.883Z"},{"name":"defs.scroll","type":"file","size":273,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"defsForm.scroll","type":"file","size":166,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"dependencies.scroll","type":"file","size":441,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"disk.scroll","type":"file","size":75,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"edit.scroll","type":"file","size":72,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"extension.parsers","type":"file","size":164,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"favicon.scroll","type":"file","size":45,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"feed.scroll","type":"file","size":69,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"fetchTest.scroll","type":"file","size":129,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"footer.scroll","type":"file","size":108,"lastModified":"2025-01-09T16:27:35.686Z"},{"name":"full.html","type":"file","size":6518,"lastModified":"2025-01-09T16:27:54.953Z"},{"name":"full.scroll","type":"file","size":52,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"gazette.html","type":"file","size":1322,"lastModified":"2025-01-09T16:27:54.954Z"},{"name":"gazette.scroll","type":"file","size":44,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"hakon.html","type":"file","size":187,"lastModified":"2025-01-09T16:27:54.956Z"},{"name":"hakon.scroll","type":"file","size":81,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"haml.html","type":"file","size":469,"lastModified":"2025-01-09T16:27:54.957Z"},{"name":"haml.scroll","type":"file","size":264,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"haml.txt","type":"file","size":70,"lastModified":"2025-01-09T16:27:54.957Z"},{"name":"header.scroll","type":"file","size":100,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"heatrix.html","type":"file","size":10668,"lastModified":"2025-01-09T16:27:54.959Z"},{"name":"heatrix.scroll","type":"file","size":531,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"html.html","type":"file","size":205,"lastModified":"2025-01-09T16:27:54.960Z"},{"name":"html.scroll","type":"file","size":93,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"htmlInclude.html","type":"file","size":65,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"index.scroll","type":"file","size":89,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"inline.scroll","type":"file","size":95,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"iris.scroll","type":"file","size":66,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"javascript.js","type":"file","size":46,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"javascript.scroll","type":"file","size":56,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"json.scroll","type":"file","size":122,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"keyboardNav.scroll","type":"file","size":51,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"lists.scroll","type":"file","size":84,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"maps.scroll","type":"file","size":1432,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"markups.scroll","type":"file","size":351,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"meta.csv","type":"file","size":1971,"lastModified":"2025-01-09T16:27:54.850Z"},{"name":"meta.scroll","type":"file","size":115,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"modal.scroll","type":"file","size":187,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"music.scroll","type":"file","size":74,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"notices.scroll","type":"file","size":19,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"openGraphImages.scroll","type":"file","size":303,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"optionalImport.scroll","type":"file","size":131,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"postTemplate.scroll","type":"file","size":86,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"posts.scroll","type":"file","size":566,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"prestige.scroll","type":"file","size":115,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"prompt.txt","type":"file","size":583,"lastModified":"2025-01-09T16:27:54.948Z"},{"name":"push.scroll","type":"file","size":134,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"python.py","type":"file","size":12,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"python.scroll","type":"file","size":39,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"qrcodes.scroll","type":"file","size":53,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"redirectTest.scroll","type":"file","size":22,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"relativeSnippets.scroll","type":"file","size":51,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"roboto.scroll","type":"file","size":42,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"script.scroll","type":"file","size":134,"lastModified":"2025-01-09T16:27:35.687Z"},{"name":"scroll.test.js","type":"file","size":10210,"lastModified":"2025-01-09T16:27:35.688Z"},{"name":"scrollFormsTest.html","type":"file","size":5480,"lastModified":"2025-01-09T16:27:54.943Z"},{"name":"scrollFormsTest.scroll","type":"file","size":955,"lastModified":"2025-01-09T16:27:35.688Z"},{"name":"scrollVersion.html","type":"file","size":276,"lastModified":"2025-01-09T16:27:54.943Z"},{"name":"scrollVersion.scroll","type":"file","size":43,"lastModified":"2025-01-09T16:27:35.688Z"},{"name":"settings.scroll","type":"file","size":151,"lastModified":"2025-01-09T16:27:35.688Z"},{"name":"sipOfCoffee.m4a","type":"file","size":45809,"lastModified":"2025-01-09T16:27:35.688Z"},{"name":"sitemap.scroll","type":"file","size":63,"lastModified":"2025-01-09T16:27:35.688Z"},{"name":"sitemap.txt","type":"file","size":2580,"lastModified":"2025-01-09T16:27:54.944Z"},{"name":"slideshowDemo.scroll","type":"file","size":127,"lastModified":"2025-01-09T16:27:35.688Z"},{"name":"snippets.html","type":"file","size":852,"lastModified":"2025-01-09T16:27:54.947Z"},{"name":"snippets.scroll","type":"file","size":65,"lastModified":"2025-01-09T16:27:35.688Z"},{"name":"source.scroll","type":"file","size":400,"lastModified":"2025-01-09T16:27:35.688Z"},{"name":"spirit.mp4","type":"file","size":153185,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"stampTest.scroll","type":"file","size":193,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"stopwatch.html","type":"file","size":738,"lastModified":"2025-01-09T16:27:54.885Z"},{"name":"stopwatch.scroll","type":"file","size":88,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"stump.html","type":"file","size":88,"lastModified":"2025-01-09T16:27:54.888Z"},{"name":"stump.scroll","type":"file","size":38,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"style.css","type":"file","size":0,"lastModified":"2025-01-09T16:27:54.888Z"},{"name":"style.scroll","type":"file","size":133,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"subfolder","type":"directory","size":4096,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"tableDates.html","type":"file","size":960,"lastModified":"2025-01-09T16:27:54.894Z"},{"name":"tableDates.scroll","type":"file","size":137,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"tables.html","type":"file","size":15844,"lastModified":"2025-01-09T16:27:54.912Z"},{"name":"tables.scroll","type":"file","size":1759,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"tables.txt","type":"file","size":3489,"lastModified":"2025-01-09T16:27:54.914Z"},{"name":"tabularData.html","type":"file","size":7453,"lastModified":"2025-01-09T16:27:54.922Z"},{"name":"tabularData.scroll","type":"file","size":1047,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"tabularData.txt","type":"file","size":922,"lastModified":"2025-01-09T16:27:54.917Z"},{"name":"testOutput","type":"directory","size":4096,"lastModified":"2025-01-09T16:27:54.838Z"},{"name":"theScroll.html","type":"file","size":3830,"lastModified":"2025-01-09T16:27:54.922Z"},{"name":"theScroll.scroll","type":"file","size":27,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"themes.html","type":"file","size":602,"lastModified":"2025-01-09T16:27:54.923Z"},{"name":"themes.scroll","type":"file","size":165,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"top-sinks.scroll","type":"file","size":736,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"tufte.html","type":"file","size":1316,"lastModified":"2025-01-09T16:27:54.924Z"},{"name":"tufte.scroll","type":"file","size":40,"lastModified":"2025-01-09T16:27:35.689Z"},{"name":"video.html","type":"file","size":407,"lastModified":"2025-01-09T16:27:54.925Z"},{"name":"video.scroll","type":"file","size":123,"lastModified":"2025-01-09T16:27:35.689Z"}] 01/09/20251970 9.8
    Edit Edit 01/08/202501/09/2025 1 0
    Favicon 01/08/202501/09/2025 0 0
    FeedFeed https://scroll.pub/tests/ Kitchen sink test site. Wed, 08 Jan 2025 21:30:40 +0000 en-us Tabular data test https://scroll.pub/tests/tabularData.html Invalid Date A review of my sink https://scroll.pub/tests/a-review-of-my-sink.html Invalid Date Top Sinks https://scroll.pub/tests/top-sinks.html Invalid Date 01/08/2025Feed https://scroll.pub/tests/ Kitchen sink test site. Thu, 09 Jan 2025 16:27:56 +0000 en-us Tabular data test https://scroll.pub/tests/tabularData.html Invalid Date A review of my sink https://scroll.pub/tests/a-review-of-my-sink.html Invalid Date Top Sinks https://scroll.pub/tests/top-sinks.html Invalid Date 01/09/2025 58 0.3
    Fetch Test 01/08/202501/09/2025 0 0
    FooterBuilt with Scroll v165.2.0 01/08/2025Built with Scroll v165.3.0 01/09/2025 6 0
    FullTabular data test ================= 01/08/2025 https://scroll.pub/tests/tabularData.html A review of my sink =================== 01/08/2025 https://scroll.pub/tests/a-review-of-my-sink.html Top Sinks ========= 01/11/2019 https://scroll.pub/tests/top-sinks.html 01/08/2025420.2
    Top SinksTop Sinks ========= by Breck Yunits https://breckyunits.com Breck Yunits 283 in database $0 budget 3 countries sinkManufacturer|country Blue|USA Red|Canada sinkManufacturer|country Blue|USA Red|Canada sinkManufacturer|country Blue|USA Red|Canada Today is Wed Jan 08 2025 21:30:38 GMT+0000 (Coordinated Universal Time) 1+1 = 2 January 11, 2019 was a great day There are 283 in my list. This file is in dir: /home/runner/work/scroll/scroll/tests Top Sinks ========= by Breck Yunits https://breckyunits.com Breck Yunits 283 in database $0 budget 3 countries sinkManufacturer|country Blue|USA Red|Canada sinkManufacturer|country Blue|USA Red|Canada sinkManufacturer|country Blue|USA Red|Canada Today is Thu Jan 09 2025 16:27:54 GMT+0000 (Coordinated Universal Time) 1+1 = 2 January 11, 2019 was a great day There are 283 in my list. This file is in dir: /home/runner/work/scroll/scroll/tests 01/11/2019 76 0.4
    +
    @@ -12,28 +12,16 @@ - - - - - - - - - - - - - + - - - - + + + + @@ -42,23 +30,29 @@ + + + + + + - - - + + + - - - - - + + + + + @@ -66,10 +60,16 @@ - - - - + + + + + + + + + +
    sepal_length sepal_widthspecies
    6.23.45.42.3virginica
    6.22.84.81.8virginica
    5
    5 3.4 1.5 0.2 setosa
    5.62.84.92
    4.92.54.51.7 virginica
    5.10.2 setosa
    5.33.71.50.2setosa
    7.7 3.8 6.7 2.2 virginica
    6.134.9
    6.22.84.8 1.8 virginica
    5.33.71.50.2setosa
    5.62.84.92virginica
    5.6 2.71.3 versicolor
    4.92.54.51.7
    6.134.91.8virginica
    6.23.45.42.3 virginica
    diff --git a/tests/json.html b/tests/json.html index a9e0cd700..a228d9224 100644 --- a/tests/json.html +++ b/tests/json.html @@ -3,7 +3,7 @@ + - + @@ -28,7 +28,7 @@ -
    +
    -
    +
    + - + diff --git a/tests/posts.html b/tests/posts.html index 3824d1a15..9ee5195ba 100644 --- a/tests/posts.html +++ b/tests/posts.html @@ -3,13 +3,13 @@ Posts - + - + diff --git a/tests/prompt.txt b/tests/prompt.txt index 4f8c3234a..d1ea2bf08 100644 --- a/tests/prompt.txt +++ b/tests/prompt.txt @@ -8,7 +8,7 @@ The Files: Source https://scroll.pub/tests/ Kitchen sink test site. - Wed, 08 Jan 2025 21:30:38 +0000 + Thu, 09 Jan 2025 16:27:54 +0000 en-us Tabular data test diff --git a/tests/relativeSnippets.html b/tests/relativeSnippets.html index b4406a19c..a677cc8c6 100644 --- a/tests/relativeSnippets.html +++ b/tests/relativeSnippets.html @@ -3,13 +3,13 @@ Relative Snippets - + - + @@ -54,7 +54,7 @@ $0budget 3countries - +
    @@ -66,7 +66,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -78,7 +78,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -90,7 +90,7 @@
    sinkManufacturer countryCanada
    -

    Today is Wed Jan 08 2025 21:30:38 GMT+0000 (Coordinated Universal Time)

    +

    Today is Thu Jan 09 2025 16:27:54 GMT+0000 (Coordinated Universal Time)

    1+1 = 2

    January 11, 2019 was a great day

    There are 283 in my list.

    diff --git a/tests/scrollVersion.html b/tests/scrollVersion.html index 45d7e4523..6eee13f8d 100644 --- a/tests/scrollVersion.html +++ b/tests/scrollVersion.html @@ -1,7 +1,7 @@ - + diff --git a/tests/sitemap.txt b/tests/sitemap.txt index 790ad1013..ab3c4de10 100644 --- a/tests/sitemap.txt +++ b/tests/sitemap.txt @@ -15,6 +15,7 @@ https://scroll.pub/settings.html https://scroll.pub/slideshowDemo.html https://scroll.pub/snippets.html https://scroll.pub/source.html +https://scroll.pub/full.html https://scroll.pub/gazette.html https://scroll.pub/hakon.html https://scroll.pub/haml.html @@ -75,5 +76,4 @@ https://scroll.pub/favicon.html https://scroll.pub/feed.html https://scroll.pub/fetchTest.html https://scroll.pub/footer.html -https://scroll.pub/full.html https://scroll.pub/top-sinks.html diff --git a/tests/subfolder/aTestPost.html b/tests/subfolder/aTestPost.html index 8f59c9744..cea726db1 100644 --- a/tests/subfolder/aTestPost.html +++ b/tests/subfolder/aTestPost.html @@ -3,13 +3,13 @@ This is _a_ test - + - + diff --git a/tests/tabularData.html b/tests/tabularData.html index a5478f366..830753a43 100644 --- a/tests/tabularData.html +++ b/tests/tabularData.html @@ -3,13 +3,13 @@ Tabular data test - + - + diff --git a/tests/top-sinks.html b/tests/top-sinks.html index a188623d2..6e852656e 100644 --- a/tests/top-sinks.html +++ b/tests/top-sinks.html @@ -3,13 +3,13 @@ Top Sinks - + - + @@ -43,7 +43,7 @@ $0budget 3countries - +
    @@ -55,7 +55,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -67,7 +67,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -79,7 +79,7 @@
    sinkManufacturer countryCanada
    -

    Today is Wed Jan 08 2025 21:30:38 GMT+0000 (Coordinated Universal Time)

    +

    Today is Thu Jan 09 2025 16:27:54 GMT+0000 (Coordinated Universal Time)

    1+1 = 2

    January 11, 2019 was a great day

    There are 283 in my list.

    diff --git a/tests/top-sinks.txt b/tests/top-sinks.txt index 3da6e0577..a1bfd9d70 100644 --- a/tests/top-sinks.txt +++ b/tests/top-sinks.txt @@ -18,7 +18,7 @@ sinkManufacturer|country Blue|USA Red|Canada -Today is Wed Jan 08 2025 21:30:38 GMT+0000 (Coordinated Universal Time) +Today is Thu Jan 09 2025 16:27:54 GMT+0000 (Coordinated Universal Time) 1+1 = 2 diff --git a/tutorial.html b/tutorial.html index dd3cb745e..1f876a3a9 100644 --- a/tutorial.html +++ b/tutorial.html @@ -3,13 +3,13 @@ Scroll Tutorial - + - + @@ -105,14 +105,14 @@ - Scroll has lists - That can be nested -
    • Scroll has lists
      • That can be nested
    +
    • Scroll has lists
      • That can be nested

    4. Checklists

    Below is the code for a checklist and its rendered version:

    [] Finish full tutorial [x] Learn that checklists support nesting -

    +

    5. Tables

    Use the table parser to make tables:

    @@ -264,7 +264,7 @@ - +
    \ No newline at end of file diff --git a/tutorial.txt b/tutorial.txt index d5eab8406..f87d47e79 100644 --- a/tutorial.txt +++ b/tutorial.txt @@ -2,17 +2,17 @@ Scroll Tutorial =============== Scroll Roadmap ============== -01/08/2025 +01/09/2025 https://scroll.pub/roadmap.html Scroll Release Notes ==================== -01/08/2025 +01/09/2025 https://scroll.pub/releaseNotes.html Scroll FAQ ========== -01/08/2025 +01/09/2025 https://scroll.pub/faq.html Video walkthrough of this tutorial | Edit this file on try.scroll.pub @@ -227,4 +227,4 @@ You probably also can see that the Parsers code is powerful but has lots of shar While the documentation on Parsers evolves, feel free to get in touch for help in adding your own parsers. -Built with Scroll v165.2.0 +Built with Scroll v165.3.0