From f6ff211c604037782e4f1be7ad5520c1569c1a6e Mon Sep 17 00:00:00 2001 From: breck7 Date: Tue, 3 Dec 2024 04:56:24 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20wws=20from=20@=20breck7/scroll?= =?UTF-8?q?@86530298777662d5dae505715c1708416fc98573=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/feed.xml | 2 +- blog/forms.html | 6 +- blog/forms.txt | 2 +- blog/full.html | 6 +- 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/programLinks.html | 6 +- blog/programLinks.txt | 2 +- blog/scrollInQuestions.html | 6 +- blog/scrollInQuestions.txt | 2 +- blog/scrollsets.html | 6 +- blog/scrollsets.txt | 2 +- blog/search.html | 44 +- blog/search.txt | 40 +- blog/sitemap.txt | 2 +- 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 | 18 +- cloc.txt | 8 +- download.html | 6 +- download.txt | 2 +- faq.html | 6 +- faq.txt | 2 +- index.html | 6 +- index.txt | 2 +- leetsheet.html | 6 +- leetsheet.txt | 2 +- node_modules/.package-lock.json | 2 +- package-lock.json | 4 +- package.json | 2 +- pages.csv | 10 +- parserLeetsheet.html | 6 +- parserLeetsheet.txt | 2 +- parserPrompt.txt | 2 +- parserUsage.csv | 10 +- parsers/root.parsers | 2 +- particlesLeetsheet.html | 6 +- particlesLeetsheet.txt | 2 +- readmePrompt.txt | 5 +- releaseNotes.csv | 1 + releaseNotes.html | 3615 ++++++++++++++++--------------- releaseNotes.json | 7 + releaseNotes.scroll | 3 + releaseNotes.tsv | 1 + releaseNotes.txt | 16 +- releaseNotesMeasures.tsv | 10 +- roadmap.html | 6 +- roadmap.txt | 2 +- scroll.js | 8 +- scrollPrompt.txt | 2 +- sitemap.txt | 4 +- tests/a-review-of-my-sink.html | 4 +- tests/about.html | 4 +- tests/all.html | 8 +- tests/blogPost.html | 6 +- tests/buildDelimited.html | 2 +- tests/cloc.html | 12 +- tests/concepts.html | 2 +- tests/contacts.html | 2 +- tests/dateTransforms.html | 2 +- tests/debugging.html | 2 +- tests/dependencies.html | 8 +- tests/disk.html | 470 ++-- tests/favicon.html | 4 +- tests/feed.rss | 2 +- tests/full.html | 14 +- tests/index.html | 464 ++-- tests/iris.html | 68 +- tests/json.html | 2 +- tests/keyboardNav.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 | 70 +- tests/stopwatch.html | 2 +- tests/subfolder/aTestPost.html | 4 +- tests/tableDates.html | 2 +- tests/tables.html | 36 +- tests/tabularData.html | 10 +- tests/top-sinks.html | 12 +- tests/top-sinks.txt | 2 +- tutorial.html | 8 +- tutorial.scroll | 2 +- tutorial.txt | 2 +- 117 files changed, 2781 insertions(+), 2553 deletions(-) diff --git a/404.html b/404.html index 46f1cd515..614b8b4db 100644 --- a/404.html +++ b/404.html @@ -4,12 +4,12 @@ Page not found - + - + @@ -37,7 +37,7 @@ -
Built with Scroll v161.0.3
+
Built with Scroll v161.0.4
\ No newline at end of file diff --git a/blog/changes.html b/blog/changes.html index f63299bcb..d9310ce79 100644 --- a/blog/changes.html +++ b/blog/changes.html @@ -3,12 +3,12 @@ Changes: A Microlang for Change Logs - + - + @@ -111,7 +111,7 @@ -
Built with Scroll v161.0.3
+
Built with Scroll v161.0.4
\ No newline at end of file diff --git a/blog/changes.txt b/blog/changes.txt index 25e0e66d4..04208803f 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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/contacts.html b/blog/contacts.html index d8a7bbcfc..91142d2c1 100644 --- a/blog/contacts.html +++ b/blog/contacts.html @@ -3,12 +3,12 @@ Contacts: A Microlang for Managing Contacts - + - + @@ -115,7 +115,7 @@ -
Built with Scroll v161.0.3
+
Built with Scroll v161.0.4
\ No newline at end of file diff --git a/blog/contacts.txt b/blog/contacts.txt index afa46e27b..b385fe740 100644 --- a/blog/contacts.txt +++ b/blog/contacts.txt @@ -92,4 +92,4 @@ Notes ⁂ -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/counterpoints.html b/blog/counterpoints.html index 2aaab4a36..3a07e40bc 100644 --- a/blog/counterpoints.html +++ b/blog/counterpoints.html @@ -3,12 +3,12 @@ Counterpoints: A new tool for thought in the Scroll Language - + - + @@ -98,7 +98,7 @@ -
Built with Scroll v161.0.3
+
Built with Scroll v161.0.4
\ No newline at end of file diff --git a/blog/counterpoints.txt b/blog/counterpoints.txt index cf86c94dc..4af60b284 100644 --- a/blog/counterpoints.txt +++ b/blog/counterpoints.txt @@ -80,4 +80,4 @@ Keep writing, keep thinking! ⁂ -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/counters.html b/blog/counters.html index fad325951..2bf3511f2 100644 --- a/blog/counters.html +++ b/blog/counters.html @@ -3,12 +3,12 @@ Build Your Own Counters With 3 Words - + - + @@ -105,7 +105,7 @@ -
Built with Scroll v161.0.3
+
Built with Scroll v161.0.4
\ No newline at end of file diff --git a/blog/counters.txt b/blog/counters.txt index 2579086bb..a17f4aab5 100644 --- a/blog/counters.txt +++ b/blog/counters.txt @@ -90,4 +90,4 @@ Computer Chips ⁂ -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/csvToScrollSet.html b/blog/csvToScrollSet.html index d6f69a6a1..6d392eefb 100644 --- a/blog/csvToScrollSet.html +++ b/blog/csvToScrollSet.html @@ -3,12 +3,12 @@ Convert CSVs to ScrollSets - + - + @@ -87,7 +87,7 @@ -
Built with Scroll v161.0.3
+
Built with Scroll v161.0.4
\ No newline at end of file diff --git a/blog/csvToScrollSet.txt b/blog/csvToScrollSet.txt index 0ecc33cfc..d570178a7 100644 --- a/blog/csvToScrollSet.txt +++ b/blog/csvToScrollSet.txt @@ -30,4 +30,4 @@ ScrollSets: source code for CSVs 04/21/2024 https://scroll.pub/blog/scrollsets.html -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/feed.xml b/blog/feed.xml index 469d1aa97..02a55266f 100644 --- a/blog/feed.xml +++ b/blog/feed.xml @@ -4,7 +4,7 @@ Feed https://scroll.pub/blog/ Official blog for Scroll - Tue, 03 Dec 2024 04:33:33 +0000 + Tue, 03 Dec 2024 04:56:16 +0000 en-us Scroll in 50 Questions diff --git a/blog/forms.html b/blog/forms.html index 13703acbb..e29ea6358 100644 --- a/blog/forms.html +++ b/blog/forms.html @@ -3,12 +3,12 @@ Web Forms for Geniuses - + - + @@ -83,7 +83,7 @@ - + \ No newline at end of file diff --git a/blog/forms.txt b/blog/forms.txt index 2b4522bcb..f1de77a07 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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/full.html b/blog/full.html index 35b87db96..1a6eecff8 100644 --- a/blog/full.html +++ b/blog/full.html @@ -3,12 +3,12 @@ The Official Scroll Blog - + - + @@ -1581,7 +1581,7 @@

level 4 heading

- + \ No newline at end of file diff --git a/blog/full.txt b/blog/full.txt index b6a357aed..92ac27edf 100644 --- a/blog/full.txt +++ b/blog/full.txt @@ -95,4 +95,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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/gitOverRss.html b/blog/gitOverRss.html index 617d59ee8..313dc46c4 100644 --- a/blog/gitOverRss.html +++ b/blog/gitOverRss.html @@ -3,12 +3,12 @@ The Successor to RSS is Git Clone - + - + @@ -76,7 +76,7 @@ - + \ No newline at end of file diff --git a/blog/gitOverRss.txt b/blog/gitOverRss.txt index 0e3430258..10c42d9f9 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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/heatrix.html b/blog/heatrix.html index d98a10f3e..f2825fef2 100644 --- a/blog/heatrix.html +++ b/blog/heatrix.html @@ -3,12 +3,12 @@ Heatrix: Heat Maps + Matrix Visualizations - + - + @@ -118,7 +118,7 @@ - + \ No newline at end of file diff --git a/blog/heatrix.txt b/blog/heatrix.txt index 0e9be20a6..461fd1415 100644 --- a/blog/heatrix.txt +++ b/blog/heatrix.txt @@ -63,4 +63,4 @@ If you like `heatrix` and want to see more stuff like this, but a folder on the ⁂ -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/helpful404s.html b/blog/helpful404s.html index acae88910..4362e5418 100644 --- a/blog/helpful404s.html +++ b/blog/helpful404s.html @@ -3,12 +3,12 @@ How I Designed Helpful 404's and Stopped Worrying about Broken Links - + - + @@ -98,7 +98,7 @@ - + \ No newline at end of file diff --git a/blog/helpful404s.txt b/blog/helpful404s.txt index 49c17ca17..2331d0591 100644 --- a/blog/helpful404s.txt +++ b/blog/helpful404s.txt @@ -87,4 +87,4 @@ Try it today, and if you like what we are doing please consider bringing your si ⁂ -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/indented-heredocs.html b/blog/indented-heredocs.html index f72cf6407..e75b9799e 100644 --- a/blog/indented-heredocs.html +++ b/blog/indented-heredocs.html @@ -3,12 +3,12 @@ The Power of Indented Heredocs: Markdown, Textile, and BBCode in one file with no escaping - + - + @@ -313,7 +313,7 @@

level 4 heading

- + \ No newline at end of file diff --git a/blog/indented-heredocs.txt b/blog/indented-heredocs.txt index c96bd2ee6..ddbe348f3 100644 --- a/blog/indented-heredocs.txt +++ b/blog/indented-heredocs.txt @@ -39,4 +39,4 @@ Textile BBCode ====== -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/index.html b/blog/index.html index 59e162d13..376e20239 100644 --- a/blog/index.html +++ b/blog/index.html @@ -3,12 +3,12 @@ The Official Scroll Blog - + - + @@ -212,7 +212,7 @@ - + \ No newline at end of file diff --git a/blog/index.txt b/blog/index.txt index b6a357aed..92ac27edf 100644 --- a/blog/index.txt +++ b/blog/index.txt @@ -95,4 +95,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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/introducingBlink.html b/blog/introducingBlink.html index 64696b33d..6326cd6b5 100644 --- a/blog/introducingBlink.html +++ b/blog/introducingBlink.html @@ -3,12 +3,12 @@ Introducing the Blink Tag - + - + @@ -70,7 +70,7 @@ - + \ No newline at end of file diff --git a/blog/introducingBlink.txt b/blog/introducingBlink.txt index f58332d12..6bca436ef 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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/plot.html b/blog/plot.html index 2c884291c..e6fc9bbd6 100644 --- a/blog/plot.html +++ b/blog/plot.html @@ -3,12 +3,12 @@ Write scatterplot to get a scatterplot - + - + @@ -240,7 +240,7 @@ - + \ No newline at end of file diff --git a/blog/plot.txt b/blog/plot.txt index b84848a76..1989e0932 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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/programLinks.html b/blog/programLinks.html index 0aba04336..ff972547a 100644 --- a/blog/programLinks.html +++ b/blog/programLinks.html @@ -3,12 +3,12 @@ Introducing Program Links - + - + @@ -122,7 +122,7 @@ - + \ No newline at end of file diff --git a/blog/programLinks.txt b/blog/programLinks.txt index 9a5e7a220..db5b1443b 100644 --- a/blog/programLinks.txt +++ b/blog/programLinks.txt @@ -54,4 +54,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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/scrollInQuestions.html b/blog/scrollInQuestions.html index 9863ca722..576a3bbec 100644 --- a/blog/scrollInQuestions.html +++ b/blog/scrollInQuestions.html @@ -3,12 +3,12 @@ Scroll in 50 Questions - + - + @@ -220,7 +220,7 @@ - + \ No newline at end of file diff --git a/blog/scrollInQuestions.txt b/blog/scrollInQuestions.txt index 3d8d7e48e..67da99eba 100644 --- a/blog/scrollInQuestions.txt +++ b/blog/scrollInQuestions.txt @@ -271,4 +271,4 @@ Both. ⁂ -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/scrollsets.html b/blog/scrollsets.html index 1ff658c3f..7a687dc77 100644 --- a/blog/scrollsets.html +++ b/blog/scrollsets.html @@ -3,12 +3,12 @@ ScrollSets: source code for CSVs - + - + @@ -299,7 +299,7 @@ - + \ No newline at end of file diff --git a/blog/scrollsets.txt b/blog/scrollsets.txt index 652ad0fbb..ba5c78bdf 100644 --- a/blog/scrollsets.txt +++ b/blog/scrollsets.txt @@ -207,4 +207,4 @@ Convert CSVs to ScrollSets 07/09/2024 https://scroll.pub/blog/csvToScrollSet.html -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/search.html b/blog/search.html index af732122b..270523195 100644 --- a/blog/search.html +++ b/blog/search.html @@ -3,12 +3,12 @@ Search the Official Scroll Blog - + - + @@ -54,115 +54,115 @@ minutes 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? ========================================================== 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 parser 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 bad ideas (like the parens). Is Scroll designed for humans or AIs? ===================================== Both. ⁂ Built with Scroll v161.0.3 +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? ========================================================== 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 parser 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 bad ideas (like the parens). Is Scroll designed for humans or AIs? ===================================== Both. ⁂ Built with Scroll v161.0.4 10/28/2024 1080 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 v161.0.3 +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 v161.0.4 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 v161.0.3 +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 v161.0.4 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%2Ftry.scroll.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 v161.0.3 +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%2Ftry.scroll.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 v161.0.4 08/30/2024 426 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 v161.0.3 +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 v161.0.4 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 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 v161.0.3 +Build Your Own Counters With 3 Words ==================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits 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 v161.0.4 08/02/2024 1026 5.1 Heatrix: Heat Maps + Matrix Visualizations -Heatrix: Heat Maps + Matrix Visualizations ========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits [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 v161.0.3 +Heatrix: Heat Maps + Matrix Visualizations ========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits [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 v161.0.4 07/28/2024 467 2.3 Contacts: A Microlang for Managing Contacts -Contacts: A Microlang for Managing Contacts =========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits 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 v161.0.3 +Contacts: A Microlang for Managing Contacts =========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits 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 v161.0.4 07/16/2024 371 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://breckyunits.com 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 v161.0.3 +How I Designed Helpful 404's and Stopped Worrying about Broken Links ==================================================================== by Breck Yunits https://breckyunits.com 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 v161.0.4 07/12/2024 546 2.7 Convert CSVs to ScrollSets -Convert CSVs to ScrollSets ========================== by Breck Yunits https://github.com/breck7 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 v161.0.3 +Convert CSVs to ScrollSets ========================== by Breck Yunits https://github.com/breck7 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 v161.0.4 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 v161.0.3 +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 v161.0.4 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 v161.0.3 +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 v161.0.4 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 v161.0.3 +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 v161.0.4 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 v161.0.3 +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 v161.0.4 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 ======= Convert CSVs to ScrollSets ========================== 07/09/2024 https://scroll.pub/blog/csvToScrollSet.html Built with Scroll v161.0.3 +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 ======= Convert CSVs to ScrollSets ========================== 07/09/2024 https://scroll.pub/blog/csvToScrollSet.html Built with Scroll v161.0.4 04/21/2024 1161 5.8 Introducing Program Links -Introducing Program Links ========================= by Breck Yunits https://github.com/breck7 Breck Yunits 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 v161.0.3 +Introducing Program Links ========================= by Breck Yunits https://github.com/breck7 Breck Yunits 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 v161.0.4 05/08/2023 507 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://github.com/breck7 Breck Yunits 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 v161.0.3 +Counterpoints: A new tool for thought in the Scroll Language ============================================================ by Breck Yunits https://github.com/breck7 Breck Yunits 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 v161.0.4 04/13/2023 388 1.9 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 v161.0.3 +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 v161.0.4 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 v161.0.3 +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 v161.0.4 08/23/2021 306 1.5 @@ -180,7 +180,7 @@ - + \ No newline at end of file diff --git a/blog/search.txt b/blog/search.txt index fc6556f23..800aa290c 100644 --- a/blog/search.txt +++ b/blog/search.txt @@ -2,24 +2,24 @@ Search the Official Scroll Blog =============================== title,titleLink,text,date,wordCount,minutes -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? ========================================================== 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 parser 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 bad ideas (like the parens). Is Scroll designed for humans or AIs? ===================================== Both. ⁂ Built with Scroll v161.0.3 ",10/28/2024,1080,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 v161.0.3 ",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 v161.0.3 ",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%2Ftry.scroll.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 v161.0.3 ",08/30/2024,426,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 v161.0.3 ",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 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 v161.0.3 ",08/02/2024,1026,5.1 -Heatrix: Heat Maps + Matrix Visualizations,heatrix.html,"Heatrix: Heat Maps + Matrix Visualizations ========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits [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 v161.0.3 ",07/28/2024,467,2.3 -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 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 v161.0.3 ",07/16/2024,371,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://breckyunits.com 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 v161.0.3 ",07/12/2024,546,2.7 -Convert CSVs to ScrollSets,csvToScrollSet.html,"Convert CSVs to ScrollSets ========================== by Breck Yunits https://github.com/breck7 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 v161.0.3 ",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 v161.0.3 ",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 v161.0.3 ",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 v161.0.3 ",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 v161.0.3 ",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 ======= Convert CSVs to ScrollSets ========================== 07/09/2024 https://scroll.pub/blog/csvToScrollSet.html Built with Scroll v161.0.3 ",04/21/2024,1161,5.8 -Introducing Program Links,programLinks.html,"Introducing Program Links ========================= by Breck Yunits https://github.com/breck7 Breck Yunits 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 v161.0.3 ",05/08/2023,507,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://github.com/breck7 Breck Yunits 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 v161.0.3 ",04/13/2023,388,1.9 -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 v161.0.3 ",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 v161.0.3 ",08/23/2021,306,1.5 +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? ========================================================== 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 parser 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 bad ideas (like the parens). Is Scroll designed for humans or AIs? ===================================== Both. ⁂ Built with Scroll v161.0.4 ",10/28/2024,1080,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 v161.0.4 ",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 v161.0.4 ",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%2Ftry.scroll.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 v161.0.4 ",08/30/2024,426,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 v161.0.4 ",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 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 v161.0.4 ",08/02/2024,1026,5.1 +Heatrix: Heat Maps + Matrix Visualizations,heatrix.html,"Heatrix: Heat Maps + Matrix Visualizations ========================================== by Breck Yunits https://twitter.com/breckyunits Breck Yunits [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 v161.0.4 ",07/28/2024,467,2.3 +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 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 v161.0.4 ",07/16/2024,371,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://breckyunits.com 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 v161.0.4 ",07/12/2024,546,2.7 +Convert CSVs to ScrollSets,csvToScrollSet.html,"Convert CSVs to ScrollSets ========================== by Breck Yunits https://github.com/breck7 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 v161.0.4 ",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 v161.0.4 ",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 v161.0.4 ",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 v161.0.4 ",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 v161.0.4 ",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 ======= Convert CSVs to ScrollSets ========================== 07/09/2024 https://scroll.pub/blog/csvToScrollSet.html Built with Scroll v161.0.4 ",04/21/2024,1161,5.8 +Introducing Program Links,programLinks.html,"Introducing Program Links ========================= by Breck Yunits https://github.com/breck7 Breck Yunits 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 v161.0.4 ",05/08/2023,507,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://github.com/breck7 Breck Yunits 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 v161.0.4 ",04/13/2023,388,1.9 +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 v161.0.4 ",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 v161.0.4 ",08/23/2021,306,1.5 -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/sitemap.txt b/blog/sitemap.txt index 58580dc69..d123bcca5 100644 --- a/blog/sitemap.txt +++ b/blog/sitemap.txt @@ -1,9 +1,9 @@ https://scroll.pub/blog/search.html https://scroll.pub/blog/settings.html -https://scroll.pub/blog/posts.html https://scroll.pub/blog/feed.html https://scroll.pub/blog/full.html https://scroll.pub/blog/index.html +https://scroll.pub/blog/posts.html https://scroll.pub/blog/scrollInQuestions.html https://scroll.pub/blog/forms.html https://scroll.pub/blog/gitOverRss.html diff --git a/blog/stamp.html b/blog/stamp.html index c99aa7eba..934edea4f 100644 --- a/blog/stamp.html +++ b/blog/stamp.html @@ -3,12 +3,12 @@ Stamp: a microlang for project templates - + - + @@ -98,7 +98,7 @@ - + \ No newline at end of file diff --git a/blog/stamp.txt b/blog/stamp.txt index f5064ed3b..16dbf56f9 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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/tables.html b/blog/tables.html index ef0aa74ea..1ac863241 100644 --- a/blog/tables.html +++ b/blog/tables.html @@ -3,12 +3,12 @@ Tables: a microlang for data science - + - + @@ -75,7 +75,7 @@ - + \ No newline at end of file diff --git a/blog/tables.txt b/blog/tables.txt index 7879c3d5c..88f7986e8 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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/teddyTalk.html b/blog/teddyTalk.html index 3ab0bab1f..2fc21bce4 100644 --- a/blog/teddyTalk.html +++ b/blog/teddyTalk.html @@ -3,12 +3,12 @@ A New Way to Program - + - + @@ -97,7 +97,7 @@ - + \ No newline at end of file diff --git a/blog/teddyTalk.txt b/blog/teddyTalk.txt index a0cb4c4c8..dc099985b 100644 --- a/blog/teddyTalk.txt +++ b/blog/teddyTalk.txt @@ -94,4 +94,4 @@ Subreddit ⁂ -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/blog/textFiles.html b/blog/textFiles.html index 878798c49..eb809681a 100644 --- a/blog/textFiles.html +++ b/blog/textFiles.html @@ -3,12 +3,12 @@ Scroll builds text files - + - + @@ -77,7 +77,7 @@ - + \ No newline at end of file diff --git a/blog/textFiles.txt b/blog/textFiles.txt index a84e8eeea..a428f1df7 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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/cloc.html b/cloc.html index a9951bb5b..932fa832f 100644 --- a/cloc.html +++ b/cloc.html @@ -3,12 +3,12 @@ Scroll Cloc Stats - + - + @@ -59,7 +59,7 @@


Code

-
+
@@ -79,15 +79,15 @@ - + - + - + @@ -139,9 +139,9 @@ - + - +
files
136 Scroll18701871 052405242
10 JavaScript 159 81796802
2 SVG
270 SUM23942395 841293712945
\ No newline at end of file diff --git a/download.txt b/download.txt index 47026a953..0581cf244 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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/faq.html b/faq.html index 733e900b2..01dc78b7c 100644 --- a/faq.html +++ b/faq.html @@ -3,12 +3,12 @@ Scroll FAQ - + - + @@ -398,7 +398,7 @@ - + \ No newline at end of file diff --git a/faq.txt b/faq.txt index c0ad9de8f..19d642aed 100644 --- a/faq.txt +++ b/faq.txt @@ -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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/index.html b/index.html index 0c6239848..501055cf7 100644 --- a/index.html +++ b/index.html @@ -3,12 +3,12 @@ Scroll is a language for scientists of all ages - + - + @@ -79,7 +79,7 @@ - + \ No newline at end of file diff --git a/index.txt b/index.txt index 7c1f3aae0..6216f363c 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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/leetsheet.html b/leetsheet.html index b8a493067..8b64fad93 100644 --- a/leetsheet.html +++ b/leetsheet.html @@ -3,12 +3,12 @@ Scroll LeetSheet - + - + @@ -257,7 +257,7 @@ - + \ No newline at end of file diff --git a/leetsheet.txt b/leetsheet.txt index 9f742add1..c49bda1cf 100644 --- a/leetsheet.txt +++ b/leetsheet.txt @@ -182,4 +182,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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 4cf0971da..9d6bc2f54 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,6 +1,6 @@ { "name": "scroll-cli", - "version": "161.0.3", + "version": "161.0.4", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package-lock.json b/package-lock.json index 5a284222f..2d0055711 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "scroll-cli", - "version": "161.0.3", + "version": "161.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "scroll-cli", - "version": "161.0.3", + "version": "161.0.4", "dependencies": { "d3": "^6.7.0", "dayjs": "^1.11.7", diff --git a/package.json b/package.json index 979b9b729..3d432fd48 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "scroll-cli", - "version": "161.0.3", + "version": "161.0.4", "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 1710b0613..9dfbf0a10 100644 --- a/pages.csv +++ b/pages.csv @@ -3,14 +3,14 @@ date,year,title,permalink,authors,tags,wordCount,minutes 12/03/2024,2024,Scroll Tutorial,tutorial.html,,main,949,4.7 12/03/2024,2024,Wws,wws.html,,,35,0.2 12/03/2024,2024,Wws Redirect,wws.html,,,0,0 -12/03/2024,2024,Scroll Prompt,scrollPrompt.html,,,4511,22.6 -12/03/2024,2024,Settings,settings.html,,,0,0 -12/03/2024,2024,Sitemap,sitemap.html,,,110,0.6 12/03/2024,2024,Particles LeetSheet,particlesLeetsheet.html,,,124,0.6 12/03/2024,2024,Scroll is a language for scientists of all ages,index.html,,,166,0.8 -12/03/2024,2024,Readme Prompt,readmePrompt.html,,,19997,100 -12/03/2024,2024,Scroll Release Notes,releaseNotes.html,,main,15209,76 +12/03/2024,2024,Readme Prompt,readmePrompt.html,,,20009,100 +12/03/2024,2024,Scroll Release Notes,releaseNotes.html,,main,15221,76.1 12/03/2024,2024,Scroll Roadmap,roadmap.html,,main,137,0.7 +12/03/2024,2024,Scroll Prompt,scrollPrompt.html,,,4511,22.6 +12/03/2024,2024,Settings,settings.html,,,0,0 +12/03/2024,2024,Sitemap,sitemap.html,,,110,0.6 12/03/2024,2024,Scroll FAQ,faq.html,,main,3307,16.5 12/03/2024,2024,Header,header.html,,,0,0 12/03/2024,2024,Scroll LeetSheet,leetsheet.html,,,893,4.5 diff --git a/parserLeetsheet.html b/parserLeetsheet.html index 0e59102ab..c47225b20 100644 --- a/parserLeetsheet.html +++ b/parserLeetsheet.html @@ -3,12 +3,12 @@ Parsers LeetSheet - + - + @@ -206,7 +206,7 @@ - + \ No newline at end of file diff --git a/parserLeetsheet.txt b/parserLeetsheet.txt index 6c35414d6..20a2be74e 100644 --- a/parserLeetsheet.txt +++ b/parserLeetsheet.txt @@ -74,4 +74,4 @@ count id 1 tagsParser 1 rootFlagParser -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/parserPrompt.txt b/parserPrompt.txt index aafac5f9c..6998b7d7f 100644 --- a/parserPrompt.txt +++ b/parserPrompt.txt @@ -4739,7 +4739,7 @@ stamp } get scrollVersion() { // currently manually updated - return "161.0.3" + return "161.0.4" } // 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/parserUsage.csv b/parserUsage.csv index 1ec4cba6e..992fabb9c 100644 --- a/parserUsage.csv +++ b/parserUsage.csv @@ -1,9 +1,9 @@ parserId,uses -blankLineParser,1101 -versionParser,604 +blankLineParser,1102 +versionParser,605 newFeatureParser,530 catchAllParagraphParser,267 -bugFixParser,231 +bugFixParser,232 breakingChangeParser,222 lineOfCodeParser,216 BlobParser,106 @@ -51,8 +51,8 @@ cssParser,8 horizontalRuleParser,8 inlineMarkupParser,7 orderedListAftertextParser,7 -endColumnsParser,7 codeFromFileParser,7 +endColumnsParser,7 scrollTableDataParser,7 scrollTableParser,7 cssLineParser,6 @@ -106,6 +106,7 @@ scrollPostsMetaParser,1 scrollOrderByParser,1 printScrollLeetSheetParser,1 emailLinkParser,1 +printSiteMapParser,1 endOfPostDinkusParser,1 matchParser,1 matchAllParser,1 @@ -123,7 +124,6 @@ thinColumnParser,1 buildMeasuresParser,1 buildConceptsParser,1 mediumColumnsParser,1 -printSiteMapParser,1 redirectToParser,1 messageParser,1 hiddenMessageParser,1 diff --git a/parsers/root.parsers b/parsers/root.parsers index c4f55faa1..bab18497e 100644 --- a/parsers/root.parsers +++ b/parsers/root.parsers @@ -340,7 +340,7 @@ scrollParser } get scrollVersion() { // currently manually updated - return "161.0.3" + return "161.0.4" } // 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/particlesLeetsheet.html b/particlesLeetsheet.html index dfffaf44f..a5ea3ac3d 100644 --- a/particlesLeetsheet.html +++ b/particlesLeetsheet.html @@ -3,12 +3,12 @@ Particles LeetSheet - + - + @@ -76,7 +76,7 @@ - + \ No newline at end of file diff --git a/particlesLeetsheet.txt b/particlesLeetsheet.txt index 519471a40..2dbe63999 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 v161.0.3 +Built with Scroll v161.0.4 diff --git a/readmePrompt.txt b/readmePrompt.txt index cf82c35c4..e175e6c97 100644 --- a/readmePrompt.txt +++ b/readmePrompt.txt @@ -88,6 +88,9 @@ ciBadges.scroll br thinColumns +πŸ“¦ 161.0.4 12/02/2024 +πŸ₯ scroll cli format command regression fix + πŸ“¦ 161.0.3 12/02/2024 πŸ₯ scroll format regression fix @@ -3560,7 +3563,7 @@ hiddenMessageParser cueFromId javascript buildHtml() { - return `${super.buildHtml()}` + return `${super.buildHtml()}` } hiddenMessage Click me. message Hello world diff --git a/releaseNotes.csv b/releaseNotes.csv index 6d9fd682f..6624745f9 100644 --- a/releaseNotes.csv +++ b/releaseNotes.csv @@ -1,4 +1,5 @@ version,releaseDate,bugFixes,newFeatures,breakingChanges +161.0.4,12/02/2024,1,0,0 161.0.3,12/02/2024,1,0,0 161.0.2,12/02/2024,1,0,0 161.0.1,12/02/2024,1,0,0 diff --git a/releaseNotes.html b/releaseNotes.html index 6eeaa8273..314bf9e01 100644 --- a/releaseNotes.html +++ b/releaseNotes.html @@ -3,12 +3,12 @@ Scroll Release Notes - + - + @@ -60,552 +60,555 @@
-

161.0.3 12/02/2024

+

161.0.4 12/02/2024

    -
  • scroll format regression fix
+
  • scroll cli format command regression fix
  • -

    161.0.2 12/02/2024

    +

    161.0.3 12/02/2024

    • scroll format regression fix
    -

    161.0.1 12/02/2024

    -
    • scroll form fixes
    +

    161.0.2 12/02/2024

    +
    • scroll format regression fix
    -

    161.0.0 12/01/2024

    +

    161.0.1 12/02/2024

    +
    • scroll form fixes
    +
    +

    161.0.0 12/01/2024

      -
    • added new theme prestige
    • -
    • upgrade ScrollSDK
    • -
    • scroll theme cleanup:
    +
  • 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
    +
  • 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

    -
    • ScrollSetCLI fix
    +

    130.3.5 9/11/2024

    +
    • ScrollSetCLI fix
    -

    130.3.3 9/10/2024

    +

    130.3.4 9/10/2024

    • ScrollSetCLI fix
    -

    130.3.2 9/10/2024

    -
    • make just text clickable in view source links
    +

    130.3.3 9/10/2024

    +
    • ScrollSetCLI fix
    +
    +

    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 @@ -627,51 +630,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 @@ -680,83 +683,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 @@ -764,122 +767,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.1 8/6/2024

    +

    118.2.2 8/6/2024

    • fix mac file name lower case issue
    -

    118.2.0 8/6/2024

    -
    • more concise tableSearch styling
    +

    118.2.1 8/6/2024

    +
    • fix mac file name lower case issue
    -

    118.1.0 8/6/2024

    -
    • tableSearch now adds copy and CSV buttons.
    +

    118.2.0 8/6/2024

    +
    • more concise tableSearch styling
    -

    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.1.0 8/6/2024

    +
    • tableSearch now adds copy and CSV buttons.
    -

    117.1.0 8/5/2024

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

    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.0.1 8/5/2024

    -
    • fix highlight bug in where parser
    +

    117.1.0 8/5/2024

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

    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.1 8/5/2024

    +
    • fix highlight bug in where parser
    -

    116.0.0 8/3/2024

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

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

    115.2.0 8/3/2024

    -
    • fix extra space in related snippets
    +

    116.0.0 8/3/2024

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

    115.1.0 8/3/2024

    -
    • more regression fixes.
    +

    115.2.0 8/3/2024

    +
    • fix extra space in related snippets
    -

    115.0.2 8/3/2024

    +

    115.1.0 8/3/2024

    • more regression fixes.
    -

    115.0.1 8/3/2024

    -
    • fix table regression.
    +

    115.0.2 8/3/2024

    +
    • more regression fixes.
    +
    +

    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:
    @@ -889,83 +892,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.1 7/31/2024

    +

    112.1.2 7/31/2024

    • counters fix
    -

    112.1.0 7/31/2024

    -
    • added counters parser.
    +

    112.1.1 7/31/2024

    +
    • counters fix
    +
    +

    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 @@ -974,583 +977,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. @@ -1558,54 +1561,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.
    @@ -1620,264 +1623,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.
      • +

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

        +

        69.1.4 4/13/2023

        • get tfs fixes in jtree
        -

        69.1.1 4/13/2023

        -
        • Improve syntax highlighting of counters and comments
        +

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

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

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

            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
              • +
              • 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
              +
            • 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 && @@ -1885,208 +1888,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 @@ -2095,180 +2098,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 @@ -2276,53 +2279,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 @@ -2352,33 +2355,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 @@ -2386,40 +2389,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 @@ -2431,17 +2434,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 | @@ -2455,22 +2458,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 @@ -2487,126 +2490,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
            @@ -2617,123 +2620,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 aceeee482..8da6d15c7 100644 --- a/releaseNotes.json +++ b/releaseNotes.json @@ -1,4 +1,11 @@ [ + { + "version": "161.0.4", + "releaseDate": "12/02/2024", + "bugFixes": 1, + "newFeatures": 0, + "breakingChanges": 0 + }, { "version": "161.0.3", "releaseDate": "12/02/2024", diff --git a/releaseNotes.scroll b/releaseNotes.scroll index caef05cfd..3243909fd 100644 --- a/releaseNotes.scroll +++ b/releaseNotes.scroll @@ -22,6 +22,9 @@ ciBadges.scroll br thinColumns +πŸ“¦ 161.0.4 12/02/2024 +πŸ₯ scroll cli format command regression fix + πŸ“¦ 161.0.3 12/02/2024 πŸ₯ scroll format regression fix diff --git a/releaseNotes.tsv b/releaseNotes.tsv index a164b2dde..8a2eb6b32 100644 --- a/releaseNotes.tsv +++ b/releaseNotes.tsv @@ -1,4 +1,5 @@ version releaseDate bugFixes newFeatures breakingChanges +161.0.4 12/02/2024 1 0 0 161.0.3 12/02/2024 1 0 0 161.0.2 12/02/2024 1 0 0 161.0.1 12/02/2024 1 0 0 diff --git a/releaseNotes.txt b/releaseNotes.txt index ea671d0c0..97d7bff56 100644 --- a/releaseNotes.txt +++ b/releaseNotes.txt @@ -25,6 +25,10 @@ Download as CSV | TSV | JSON [Image Omitted] https://github.com/breck7/scroll/actions/workflows/didTheTestsPass.yml undefined +161.0.4 12/02/2024 +================== +πŸ₯ scroll cli format command regression fix + 161.0.3 12/02/2024 ================== πŸ₯ scroll format regression fix @@ -729,14 +733,14 @@ date,year,title,permalink,authors,tags,wordCount,minutes 12/03/2024,2024,Scroll Tutorial,tutorial.html,,main,949,4.7 12/03/2024,2024,Wws,wws.html,,,35,0.2 12/03/2024,2024,Wws Redirect,wws.html,,,0,0 -12/03/2024,2024,Scroll Prompt,scrollPrompt.html,,,4511,22.6 -12/03/2024,2024,Settings,settings.html,,,0,0 -12/03/2024,2024,Sitemap,sitemap.html,,,110,0.6 12/03/2024,2024,Particles LeetSheet,particlesLeetsheet.html,,,124,0.6 12/03/2024,2024,Scroll is a language for scientists of all ages,index.html,,,166,0.8 -12/03/2024,2024,Readme Prompt,readmePrompt.html,,,19997,100 -12/03/2024,2024,Scroll Release Notes,releaseNotes.html,,main,15209,76 +12/03/2024,2024,Readme Prompt,readmePrompt.html,,,20009,100 +12/03/2024,2024,Scroll Release Notes,releaseNotes.html,,main,15221,76.1 12/03/2024,2024,Scroll Roadmap,roadmap.html,,main,137,0.7 +12/03/2024,2024,Scroll Prompt,scrollPrompt.html,,,4511,22.6 +12/03/2024,2024,Settings,settings.html,,,0,0 +12/03/2024,2024,Sitemap,sitemap.html,,,110,0.6 12/03/2024,2024,Scroll FAQ,faq.html,,main,3307,16.5 12/03/2024,2024,Header,header.html,,,0,0 12/03/2024,2024,Scroll LeetSheet,leetsheet.html,,,893,4.5 @@ -3380,4 +3384,4 @@ Cool! ================ πŸŽ‰ "git" scrollSetting for article source links. -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/releaseNotesMeasures.tsv b/releaseNotesMeasures.tsv index e84d8a47d..0e032cdf9 100644 --- a/releaseNotesMeasures.tsv +++ b/releaseNotesMeasures.tsv @@ -1,6 +1,6 @@ Name Values Coverage Question Example Type Source SortIndex IsComputed IsRequired IsConceptDelimiter Cue -version 604 100% What is the semantic version number? 161.0.3 string 1 true true πŸ“¦ -releaseDate 604 100% 12/02/2024 string 1.1 true true -bugFixes 604 100% How many bug fixes in this release? 1 number 1.2 true -newFeatures 604 100% How many new features in this release? 0 number 1.2 true -breakingChanges 604 100% How many breaking changes in this release? 0 number 1.2 true \ No newline at end of file +version 605 100% What is the semantic version number? 161.0.4 string 1 true true πŸ“¦ +releaseDate 605 100% 12/02/2024 string 1.1 true true +bugFixes 605 100% How many bug fixes in this release? 1 number 1.2 true +newFeatures 605 100% How many new features in this release? 0 number 1.2 true +breakingChanges 605 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 1105180f6..19492bf91 100644 --- a/roadmap.html +++ b/roadmap.html @@ -3,12 +3,12 @@ Scroll Roadmap - + - + @@ -76,7 +76,7 @@ - +
            \ No newline at end of file diff --git a/roadmap.txt b/roadmap.txt index a8df2d419..3da250ccc 100644 --- a/roadmap.txt +++ b/roadmap.txt @@ -38,4 +38,4 @@ In addition to the above, Scroll is written in Parsers and will get all the plan ⁂ -Built with Scroll v161.0.3 +Built with Scroll v161.0.4 diff --git a/scroll.js b/scroll.js index b6ea860ee..895767a88 100755 --- a/scroll.js +++ b/scroll.js @@ -208,7 +208,13 @@ footer.scroll` const folder = this.resolvePath(cwd) const files = await fileSystem.getLoadedFilesInFolder(folder, ".scroll") // .concat(fileSystem.getLoadedFilesInFolder(folder, PARSERS_FILE_EXTENSION)) // todo: should format parser files too. - files.forEach(file => (file.formatAndSave() ? this.log(`πŸ’Ύ formatted ${file.filename}`) : "")) + for (let file of files) { + const { formatted } = file.scrollProgram + const { codeAtStart } = file + if (codeAtStart === formatted) continue + await fileSystem.write(file.filePath, formatted) + this.log(`πŸ’Ύ formatted ${file.filename}`) + } } async buildCommand(cwd) { diff --git a/scrollPrompt.txt b/scrollPrompt.txt index 9e0984010..f11678fcf 100644 --- a/scrollPrompt.txt +++ b/scrollPrompt.txt @@ -223,7 +223,7 @@ hiddenMessageParser cueFromId javascript buildHtml() { - return `${super.buildHtml()}` + return `${super.buildHtml()}` } hiddenMessage Click me. message Hello world diff --git a/sitemap.txt b/sitemap.txt index 9d05c37e6..850cfc0f2 100644 --- a/sitemap.txt +++ b/sitemap.txt @@ -2,13 +2,13 @@ https://scroll.pub/topButtons.html https://scroll.pub/tutorial.html https://scroll.pub/wws.html https://scroll.pub/wws.html -https://scroll.pub/scrollPrompt.html -https://scroll.pub/settings.html https://scroll.pub/particlesLeetsheet.html https://scroll.pub/index.html https://scroll.pub/readmePrompt.html https://scroll.pub/releaseNotes.html https://scroll.pub/roadmap.html +https://scroll.pub/scrollPrompt.html +https://scroll.pub/settings.html https://scroll.pub/faq.html https://scroll.pub/header.html https://scroll.pub/leetsheet.html diff --git a/tests/a-review-of-my-sink.html b/tests/a-review-of-my-sink.html index b946575ce..86ca15660 100644 --- a/tests/a-review-of-my-sink.html +++ b/tests/a-review-of-my-sink.html @@ -3,12 +3,12 @@ A review of my sink - + - + diff --git a/tests/about.html b/tests/about.html index cb4c16db5..ac2c688ae 100644 --- a/tests/about.html +++ b/tests/about.html @@ -3,12 +3,12 @@ About the Kitchen Sink Blog - + - + diff --git a/tests/all.html b/tests/all.html index 33b06b3fa..b6e18a37a 100644 --- a/tests/all.html +++ b/tests/all.html @@ -33,7 +33,7 @@ $0budget 3countries - +
            @@ -45,7 +45,7 @@
            sinkManufacturer countryCanada
            - +
            @@ -57,7 +57,7 @@
            sinkManufacturer countryCanada
            - +
            @@ -69,7 +69,7 @@
            sinkManufacturer countryCanada
            -

            Today is Tue Dec 03 2024 04:33:34 GMT+0000 (Coordinated Universal Time)

            +

            Today is Tue Dec 03 2024 04:56:17 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/blogPost.html b/tests/blogPost.html index 7d0b71975..a6f6daac4 100644 --- a/tests/blogPost.html +++ b/tests/blogPost.html @@ -3,12 +3,12 @@ Blog Post - + - + @@ -30,7 +30,7 @@ - +
    \ No newline at end of file diff --git a/tests/buildDelimited.html b/tests/buildDelimited.html index 239a796fb..fd49d8860 100644 --- a/tests/buildDelimited.html +++ b/tests/buildDelimited.html @@ -10,7 +10,7 @@ - +
    diff --git a/tests/cloc.html b/tests/cloc.html index 57745d0af..29c865688 100644 --- a/tests/cloc.html +++ b/tests/cloc.html @@ -11,7 +11,7 @@
    -
    sepal_length sepal_width
    +
    @@ -26,7 +26,7 @@ - + @@ -36,9 +36,9 @@ - + - + @@ -90,9 +90,9 @@ - + - +
    files languageJavaScript 8319 91256836568371
    108 Parsers
    136 Scroll18701871 052405242
    13 CSS
    294 SUM1080510806 92258424284250
    diff --git a/tests/concepts.html b/tests/concepts.html index 02b0e11dc..6e5f5f64b 100644 --- a/tests/concepts.html +++ b/tests/concepts.html @@ -4,7 +4,7 @@

    Concepts

    - +
    diff --git a/tests/contacts.html b/tests/contacts.html index 5d213d12b..17f244d93 100644 --- a/tests/contacts.html +++ b/tests/contacts.html @@ -4,7 +4,7 @@
    name email
    +
    diff --git a/tests/dateTransforms.html b/tests/dateTransforms.html index 7e2c95a23..b8a36cadb 100644 --- a/tests/dateTransforms.html +++ b/tests/dateTransforms.html @@ -1,7 +1,7 @@ -
    name email
    +
    diff --git a/tests/debugging.html b/tests/debugging.html index 261745056..1de06c736 100644 --- a/tests/debugging.html +++ b/tests/debugging.html @@ -78,7 +78,7 @@ - + \ No newline at end of file diff --git a/tests/dependencies.html b/tests/dependencies.html index 11f7a621f..10faba927 100644 --- a/tests/dependencies.html +++ b/tests/dependencies.html @@ -3,12 +3,12 @@ Dependencies - + - + @@ -24,7 +24,7 @@

    This file requires these files:

    -
    version releaseDate
    +
    @@ -51,7 +51,7 @@ - + \ No newline at end of file diff --git a/tests/disk.html b/tests/disk.html index 786419678..62ad43030 100644 --- a/tests/disk.html +++ b/tests/disk.html @@ -3,7 +3,7 @@
    -
    file
    /home/runner/work/scroll/scroll/tests/header.scroll
    +
    @@ -15,672 +15,872 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + - + - + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + - + + + + + + - + + + + + + - + - + - + + + + + + - + + + + + + - + + + + + + - + + + + + + - + - + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + - + - + + + + + + + + + + + - + - + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + - + - + + + + + + - + - + + + + + + - + - + - + - + + + + + + - + + + + + + - + - + + + + + + - + - + + + + + + - + + + + + + - + + + + + + - + - + + + + + + - + - + + + + + + - + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + - + - + - + - + - + - + - +
    name type
    a-review-of-my-sink.html file 67692024-12-03T04:33:35.045Z2024-12-03T04:56:18.474Z
    a-review-of-my-sink.scroll file 5862024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    aParser.scroll file 2512024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    about.html file 50372024-12-03T04:33:35.045Z2024-12-03T04:56:18.474Z
    about.scroll file 4512024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    all.html file 40932024-12-03T04:33:35.053Z2024-12-03T04:56:18.482Z
    all.scroll file 502024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    autoTitle.html file 3932024-12-03T04:33:35.053Z2024-12-03T04:56:18.482Z
    autoTitle.scroll file 1492024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    background.html file 1612024-12-03T04:33:35.053Z2024-12-03T04:56:18.482Z
    background.scroll file 412024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    blogPost.html file 86782024-12-03T04:33:35.057Z2024-12-03T04:56:18.486Z
    blogPost.scroll file 712024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    browserstack.node.js file 25212024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    buildDelimited.csv file 2092024-12-03T04:33:34.949Z2024-12-03T04:56:18.302Z
    buildDelimited.html file 11152024-12-03T04:33:35.065Z2024-12-03T04:56:18.486Z
    buildDelimited.json file 8022024-12-03T04:33:34.953Z2024-12-03T04:56:18.302Z
    buildDelimited.scroll file 1492024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    buildDelimited.tsv file 2092024-12-03T04:33:34.953Z2024-12-03T04:56:18.302Z
    buildDelimited.txt file 2102024-12-03T04:33:35.057Z2024-12-03T04:56:18.486Z
    buttons.html file 6902024-12-03T04:33:35.065Z2024-12-03T04:56:18.490Z
    buttons.scroll file 1332024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    center.html file 4342024-12-03T04:33:35.065Z2024-12-03T04:56:18.490Z
    center.scroll file 1142024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    classicFormsTest.html file 12872024-12-03T04:33:35.077Z2024-12-03T04:56:18.510Z
    classicFormsTest.scroll file 2432024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    cloc.html file 15842024-12-03T04:33:35.497Z2024-12-03T04:56:18.958Z
    cloc.scroll file 682024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    clocLangs.txt file 2152024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    codeMirror.css file 94132024-12-03T04:33:35.573Z2024-12-03T04:56:18.398Z
    comments.scroll file 252024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    concepts.html file 10522024-12-03T04:33:35.505Z2024-12-03T04:56:18.962Z
    concepts.scroll file 3052024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    constants.js file 2166432024-12-03T04:33:35.581Z2024-12-03T04:56:18.402Z
    contacts.csv file 1612024-12-03T04:33:34.961Z2024-12-03T04:56:18.314Z
    contacts.html file 10552024-12-03T04:33:35.505Z2024-12-03T04:56:18.966Z
    contacts.json file 2952024-12-03T04:33:34.961Z2024-12-03T04:56:18.314Z
    contacts.scroll file 3742024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    contacts.tsv file 1612024-12-03T04:33:34.961Z2024-12-03T04:56:18.314Z
    content.scroll file 1742024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    css.css file 292024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    css.html file 1872024-12-03T04:33:35.509Z2024-12-03T04:56:18.966Z
    css.scroll file 502024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    customMarkups.html file 7592024-12-03T04:33:35.509Z2024-12-03T04:56:18.966Z
    customMarkups.scroll file 3772024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    dark.css file 7092024-12-03T04:33:35.509Z2024-12-03T04:56:18.966Z
    dark.html file 12532024-12-03T04:33:35.509Z2024-12-03T04:56:18.970Z
    dark.scroll file 382024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    datatables.css file 576442024-12-03T04:33:35.057Z2024-12-03T04:56:18.422Z
    datatables.js file 6973292024-12-03T04:33:35.061Z2024-12-03T04:56:18.426Z
    dateTransforms.html file 19542024-12-03T04:33:35.573Z2024-12-03T04:56:19.050Z
    dateTransforms.scroll file 4522024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    dayjs.min.js file 145562024-12-03T04:33:35.057Z2024-12-03T04:56:18.422Z
    debugging.html file 50662024-12-03T04:33:35.573Z2024-12-03T04:56:19.050Z
    debugging.scroll file 1552024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    defs.scroll file 2742024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    defsForm.html file 36442024-12-03T04:33:35.585Z2024-12-03T04:56:19.058Z
    defsForm.scroll file 1662024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    dependencies.html file 94692024-12-03T04:33:35.597Z2024-12-03T04:56:19.074Z
    dependencies.scroll file 4462024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    disk.scroll file 752024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    edit.scroll file 722024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    extension.parsers file 1642024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    favicon.scroll file 452024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    feed.scroll file 702024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    fetchTest.scroll file 1292024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    footer.scroll file 1082024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    full.scroll file 522024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    gazette.css file 95762024-12-03T04:33:35.037Z2024-12-03T04:56:18.342Z
    gazette.scroll file 442024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    hakon.scroll file 812024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    haml.scroll file 2642024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    header.scroll file 1002024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    heatrix.scroll file 5312024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    html.scroll file 942024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    htmlInclude.html file 652024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    index.scroll file 892024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    inline.scroll file 932024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    inspector.scroll file 622024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    iris.scroll file 672024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    javascript.htmlfile1702024-12-03T04:56:18.314Z
    javascript.js file 462024-12-03T04:33:14.381Z2024-12-03T04:55:56.242Z
    javascript.scroll file 562024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    jquery-3.7.1.min.js file 875332024-12-03T04:33:35.057Z2024-12-03T04:56:18.422Z
    json.htmlfile17322024-12-03T04:56:18.318Z
    json.scroll file 1222024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    keyboardNav.htmlfile7392024-12-03T04:56:18.318Z
    keyboardNav.scroll file 522024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    leaflet.cssfile142722024-12-03T04:56:18.322Z
    leaflet.jsfile1419412024-12-03T04:56:18.322Z
    lists.htmlfile2372024-12-03T04:56:18.318Z
    lists.scroll file 842024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    maps.htmlfile143102024-12-03T04:56:18.346Z
    maps.scroll file 14322024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    markups.htmlfile4732024-12-03T04:56:18.346Z
    markups.scroll file 3512024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    meta.csv file 18992024-12-03T04:33:35.009Z2024-12-03T04:56:18.282Z
    meta.scroll file 1172024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    music.htmlfile2992024-12-03T04:56:18.346Z
    music.scroll file 742024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    notices.htmlfile7102024-12-03T04:56:18.346Z
    notices.scroll file 192024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    openGraphImages.htmlfile20762024-12-03T04:56:18.350Z
    openGraphImages.scroll file 3032024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    optionalImport.htmlfile8002024-12-03T04:56:18.350Z
    optionalImport.scroll file 1312024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    postTemplate.scroll file 882024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    posts.htmlfile54382024-12-03T04:56:18.370Z
    posts.scroll file 5422024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    prestige.cssfile23282024-12-03T04:56:18.370Z
    prestige.htmlfile21422024-12-03T04:56:18.370Z
    prestige.scroll file 1142024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    prompt.txtfile5832024-12-03T04:56:18.422Z
    push.htmlfile2632024-12-03T04:56:18.374Z
    push.scroll file 1342024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    python.htmlfile1132024-12-03T04:56:18.374Z
    python.py file 122024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    python.scroll file 392024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    python.txtfile122024-12-03T04:56:18.374Z
    qrcodes.htmlfile57552024-12-03T04:56:18.382Z
    qrcodes.scroll file 532024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    redirectTest.scroll file 222024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    relativeSnippets.htmlfile74942024-12-03T04:56:18.386Z
    relativeSnippets.scroll file 512024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    roboto.cssfile7072024-12-03T04:56:18.386Z
    roboto.htmlfile12592024-12-03T04:56:18.390Z
    roboto.scroll file 422024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    script.htmlfile1762024-12-03T04:56:18.390Z
    script.jsfile862024-12-03T04:56:18.390Z
    script.scroll file 1342024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    scroll.test.js file 97572024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    scrollFormsTest.htmlfile54172024-12-03T04:56:18.418Z
    scrollFormsTest.scroll file 9552024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    scrollLibs.js file 9617542024-12-03T04:33:35.577Z2024-12-03T04:56:18.326Z
    scrollVersion.htmlfile2162024-12-03T04:56:18.418Z
    scrollVersion.scroll file 432024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    settings.scroll file 1512024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    sipOfCoffee.m4a file 458092024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    sitemap.scroll file 632024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    sitemap.txtfile25212024-12-03T04:56:18.418Z
    slideshowDemo.scroll file 1272024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    snippets.htmlfile7922024-12-03T04:56:18.418Z
    snippets.scroll file 652024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    source.scroll file 4002024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    sparkline.jsfile69732024-12-03T04:56:18.430Z
    spirit.mp4 file 1531852024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    stampTest.scroll file 1932024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    stopwatch.htmlfile6782024-12-03T04:56:18.422Z
    stopwatch.scroll file 882024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    stump.htmlfile882024-12-03T04:56:18.422Z
    stump.scroll file 382024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    style.cssfile02024-12-03T04:56:18.422Z
    style.scroll file 1332024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    subfolder directory 40962024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    tableDates.htmlfile8952024-12-03T04:56:18.430Z
    tableDates.scroll file 1372024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    tableSearch.js file 70182024-12-03T04:33:35.061Z2024-12-03T04:56:18.430Z
    tables.htmlfile134542024-12-03T04:56:18.462Z
    tables.scroll file 14032024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    tables.txtfile27562024-12-03T04:56:18.466Z
    tabularData.htmlfile73532024-12-03T04:56:18.466Z
    tabularData.scroll file 10472024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    tabularData.txtfile9222024-12-03T04:56:18.466Z
    testOutput directory 40962024-12-03T04:33:35.029Z2024-12-03T04:56:18.302Z
    theScroll.htmlfile38302024-12-03T04:56:18.466Z
    theScroll.scroll file 272024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    themes.htmlfile5422024-12-03T04:56:18.470Z
    themes.scroll file 1652024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    top-sinks.scroll file 7362024-12-03T04:33:14.381Z2024-12-03T04:55:56.246Z
    tufte.css file 75922024-12-03T04:33:35.029Z2024-12-03T04:56:18.470Z
    tufte.html file 12562024-12-03T04:33:35.033Z2024-12-03T04:56:18.470Z
    tufte.scroll file 402024-12-03T04:33:14.385Z2024-12-03T04:55:56.246Z
    video.html file 2462024-12-03T04:33:35.033Z2024-12-03T04:56:18.470Z
    video.scroll file 742024-12-03T04:33:14.385Z2024-12-03T04:55:56.246Z
    diff --git a/tests/favicon.html b/tests/favicon.html index b4bebe16e..c9f3e2aec 100644 --- a/tests/favicon.html +++ b/tests/favicon.html @@ -3,12 +3,12 @@ Favicon - + - + diff --git a/tests/feed.rss b/tests/feed.rss index 21d92bfac..b883a5378 100644 --- a/tests/feed.rss +++ b/tests/feed.rss @@ -4,7 +4,7 @@ Feed https://scroll.pub/tests/ Kitchen sink test site. - Tue, 03 Dec 2024 04:33:35 +0000 + Tue, 03 Dec 2024 04:56:19 +0000 en-us Tabular data test diff --git a/tests/full.html b/tests/full.html index 97fa58bfc..af5b72ec1 100644 --- a/tests/full.html +++ b/tests/full.html @@ -5,7 +5,7 @@

    A test of TSV data

    - +
    @@ -125,7 +125,7 @@
    Index Name

    Putting print table after a table:

    - +
    @@ -138,7 +138,7 @@

    Dropdown sections

    Full Table -
    name score
    +
    @@ -214,7 +214,7 @@
    Rows LogLinear$0budget 3countries
    - +
    @@ -226,7 +226,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -238,7 +238,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -250,7 +250,7 @@
    sinkManufacturer countryCanada
    -

    Today is Tue Dec 03 2024 04:33:34 GMT+0000 (Coordinated Universal Time)

    +

    Today is Tue Dec 03 2024 04:56:17 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 ef1f2cc0a..927478cc4 100644 --- a/tests/index.html +++ b/tests/index.html @@ -3,12 +3,12 @@ Index - + - + @@ -23,7 +23,7 @@

    Scroll Tests

    - +
    @@ -34,7 +34,223 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -83,7 +299,7 @@ - + @@ -113,7 +329,7 @@ - + @@ -161,7 +377,7 @@ - + @@ -179,16 +395,16 @@ - + - + - - + + @@ -203,7 +419,7 @@ - + @@ -215,7 +431,7 @@ - + @@ -269,229 +485,13 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -506,6 +506,6 @@ - + \ No newline at end of file diff --git a/tests/iris.html b/tests/iris.html index 9ea17c5c9..39b4f71f0 100644 --- a/tests/iris.html +++ b/tests/iris.html @@ -1,7 +1,7 @@ -
    title textminutes
    Tufte
    JavascriptThe background should be green 12/03/202450
    Jsonwindow.package.description says: 12/03/202440
    Keyboard Nav 12/03/202400
    Lists- This is a test - Of nested - Indentation - Level 4 12/03/202490
    MapsGeolocate user ============== Custom ====== 12/03/202430
    MarkupsHello world This is italicized Make this code Strikethrough this whole line. hi *world* .a.-b- 12/03/2024160.1
    Metadate,year,title,permalink,authors,tags,wordCount,minutes 10/28/2024,2024,Scroll in 50 Questions,scrollInQuestions.html,Breck Yunits,All,1080,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,426,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,1026,5.1 07/28/2024,2024,Heatrix: Heat Maps + Matrix Visualizations,heatrix.html,Breck Yunits,All,467,2.3 07/16/2024,2024,Contacts: A Microlang for Managing Contacts,contacts.html,Breck Yunits,All,371,1.9 07/12/2024,2024,How I Designed Helpful 404's and Stopped Worrying about Broken Links,helpful404s.html,Breck Yunits,All,546,2.7 07/09/2024,2024,Convert CSVs to ScrollSets,csvToScrollSet.html,Breck Yunits,All ScrollSets,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,1395,7 05/08/2023,2023,Introducing Program Links,programLinks.html,Breck Yunits,All,507,2.5 04/13/2023,2023,Counterpoints: A new tool for thought in the Scroll Language,counterpoints.html,Breck Yunits,All,388,1.9 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 12/03/20243571.8
    MusicWith loop ========= 12/03/202420
    Notices 12/03/202400
    Open Graph ImagesNot 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 12/03/2024350.2
    Optional ImportPass 1 - codeAtStart ======== buildHtml settings.scroll // todo: the below optional line should be in the importer code. // optional env.scroll printSourceStack 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 printSourceStack Pass 3 - codeAfterMacroPass ======== [Unchanged] 12/03/2024940.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 ---          12/03/2024360.2
    PrestigeJulius Caesar ============= Prestige ======== * * ⁂ 12/03/202430
    PushThis is my body. This should be above the footer. This is my footer. It is moved to end of file before compilation. 12/03/2024230.1
    Python2 + 2 is: 4 12/03/202440
    Qrcodes 12/03/202400
    Redirect Test 12/03/202400
    Relative SnippetsThis is _a_ test ================ 12/03/2024 https://scroll.pub/tests/aTestPost.html Tabular data test ================= 12/03/2024 https://scroll.pub/tests/tabularData.html A review of my sink =================== 12/03/2024 https://scroll.pub/tests/a-review-of-my-sink.html Top Sinks ========= 01/11/2019 https://scroll.pub/tests/top-sinks.html 12/03/2024550.3
    RobotoRoboto ====== A header ======== A link. https://scroll.pub link - A list - Item 2 Code ==== Inline `code`. ```header A code block ``` 12/03/2024200.1
    Script 12/03/202400
    Scroll Forms TestScrollSet Form Maker ==================== Past: to generate a classic form write "classicForm" ==================================================== Future: to generate a Scroll Form write "scrollForm" ==================================================== 12/03/2024190.1
    Scroll VersionBuilt with Scroll v161.0.4 12/03/202460
    Settings 12/03/202400
    Sitemaphttps://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/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/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/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/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/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/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/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/inspector.html https://scroll.pub/iris.html https://scroll.pub/top-sinks.html 12/03/20243901.9
    Slideshow Demo* The Dog in the Bog * The Dog was in the Bog * The END ⁂ 12/03/2024130.1
    SnippetsAbout the Kitchen Sink Blog =========================== 12/03/2024 https://scroll.pub/tests/about.html A review of my sink =================== 12/03/2024 https://scroll.pub/tests/a-review-of-my-sink.html Top Sinks ========= 01/11/2019 https://scroll.pub/tests/top-sinks.html 12/03/2024440.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. Tue, 03 Dec 2024 04:56:19 +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 12/03/20241070.5
    Stamp Test 12/03/202400
    Stopwatch 12/03/202400
    Stump 12/03/202400
    Style 12/03/202400
    Table DatesDate tests ========== lastChanged 4/16/2022 4/19/1982 10/26/2024 12/03/2024120.1
    TablesSimple 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 12/03/20245042.5
    Tabular data testTabular 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 12/03/20242091
    The Scroll 12/03/202400
    ThemesScroll Themes ============= The themes below ship with Scroll. To use type `theme roboto` 12/03/2024130.1
    Tufte Tufte ===== A header ======== A link. https://scroll.pub link - A list - Item 2 Code ==== Inline `code`. ```header A code block ``` 12/03/2024 200
    Blog PostBlog Post ========= This is my body. This should be above the footer. Built with Scroll v161.0.3 Blog Post ========= This is my body. This should be above the footer. Built with Scroll v161.0.4 12/03/2024 18 0.10
    Clocfiles,language,blank,comment,code 24,JavaScript,8319,9125,68365 108,Parsers,334,0,6339 136,Scroll,1870,0,5240 13,CSS,259,97,3846 2,SVG,0,0,226 2,JSON,0,0,110 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 294,SUM,10805,9225,84242 files,language,blank,comment,code 24,JavaScript,8319,9125,68371 108,Parsers,334,0,6339 136,Scroll,1871,0,5242 13,CSS,259,97,3846 2,SVG,0,0,226 2,JSON,0,0,110 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 294,SUM,10806,9225,84250 12/03/2024 65 0.30.8
    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 printSourceStack 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 printSourceStack 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 printSourceStack 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 v161.0.3 Debug 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 printSourceStack 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 printSourceStack 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 printSourceStack 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 v161.0.4 12/03/2024 133 0.70.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 v161.0.3 This 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 v161.0.4 12/03/2024 60 0.3
    Disk[{"name":"a-review-of-my-sink.html","type":"file","size":6769,"lastModified":"2024-12-03T04:33:35.045Z"},{"name":"a-review-of-my-sink.scroll","type":"file","size":586,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"aParser.scroll","type":"file","size":251,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"about.html","type":"file","size":5037,"lastModified":"2024-12-03T04:33:35.045Z"},{"name":"about.scroll","type":"file","size":451,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"all.html","type":"file","size":4093,"lastModified":"2024-12-03T04:33:35.053Z"},{"name":"all.scroll","type":"file","size":50,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"autoTitle.html","type":"file","size":393,"lastModified":"2024-12-03T04:33:35.053Z"},{"name":"autoTitle.scroll","type":"file","size":149,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"background.html","type":"file","size":161,"lastModified":"2024-12-03T04:33:35.053Z"},{"name":"background.scroll","type":"file","size":41,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"blogPost.html","type":"file","size":8678,"lastModified":"2024-12-03T04:33:35.057Z"},{"name":"blogPost.scroll","type":"file","size":71,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"browserstack.node.js","type":"file","size":2521,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"buildDelimited.csv","type":"file","size":209,"lastModified":"2024-12-03T04:33:34.949Z"},{"name":"buildDelimited.html","type":"file","size":1115,"lastModified":"2024-12-03T04:33:35.065Z"},{"name":"buildDelimited.json","type":"file","size":802,"lastModified":"2024-12-03T04:33:34.953Z"},{"name":"buildDelimited.scroll","type":"file","size":149,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"buildDelimited.tsv","type":"file","size":209,"lastModified":"2024-12-03T04:33:34.953Z"},{"name":"buildDelimited.txt","type":"file","size":210,"lastModified":"2024-12-03T04:33:35.057Z"},{"name":"buttons.html","type":"file","size":690,"lastModified":"2024-12-03T04:33:35.065Z"},{"name":"buttons.scroll","type":"file","size":133,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"center.html","type":"file","size":434,"lastModified":"2024-12-03T04:33:35.065Z"},{"name":"center.scroll","type":"file","size":114,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"classicFormsTest.html","type":"file","size":1287,"lastModified":"2024-12-03T04:33:35.077Z"},{"name":"classicFormsTest.scroll","type":"file","size":243,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"cloc.html","type":"file","size":1584,"lastModified":"2024-12-03T04:33:35.497Z"},{"name":"cloc.scroll","type":"file","size":68,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"clocLangs.txt","type":"file","size":215,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"codeMirror.css","type":"file","size":9413,"lastModified":"2024-12-03T04:33:35.573Z"},{"name":"comments.scroll","type":"file","size":25,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"concepts.html","type":"file","size":1052,"lastModified":"2024-12-03T04:33:35.505Z"},{"name":"concepts.scroll","type":"file","size":305,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"constants.js","type":"file","size":216643,"lastModified":"2024-12-03T04:33:35.581Z"},{"name":"contacts.csv","type":"file","size":161,"lastModified":"2024-12-03T04:33:34.961Z"},{"name":"contacts.html","type":"file","size":1055,"lastModified":"2024-12-03T04:33:35.505Z"},{"name":"contacts.json","type":"file","size":295,"lastModified":"2024-12-03T04:33:34.961Z"},{"name":"contacts.scroll","type":"file","size":374,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"contacts.tsv","type":"file","size":161,"lastModified":"2024-12-03T04:33:34.961Z"},{"name":"content.scroll","type":"file","size":174,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"css.css","type":"file","size":29,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"css.html","type":"file","size":187,"lastModified":"2024-12-03T04:33:35.509Z"},{"name":"css.scroll","type":"file","size":50,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"customMarkups.html","type":"file","size":759,"lastModified":"2024-12-03T04:33:35.509Z"},{"name":"customMarkups.scroll","type":"file","size":377,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"dark.css","type":"file","size":709,"lastModified":"2024-12-03T04:33:35.509Z"},{"name":"dark.html","type":"file","size":1253,"lastModified":"2024-12-03T04:33:35.509Z"},{"name":"dark.scroll","type":"file","size":38,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"datatables.css","type":"file","size":57644,"lastModified":"2024-12-03T04:33:35.057Z"},{"name":"datatables.js","type":"file","size":697329,"lastModified":"2024-12-03T04:33:35.061Z"},{"name":"dateTransforms.html","type":"file","size":1954,"lastModified":"2024-12-03T04:33:35.573Z"},{"name":"dateTransforms.scroll","type":"file","size":452,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"dayjs.min.js","type":"file","size":14556,"lastModified":"2024-12-03T04:33:35.057Z"},{"name":"debugging.html","type":"file","size":5066,"lastModified":"2024-12-03T04:33:35.573Z"},{"name":"debugging.scroll","type":"file","size":155,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"defs.scroll","type":"file","size":274,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"defsForm.html","type":"file","size":3644,"lastModified":"2024-12-03T04:33:35.585Z"},{"name":"defsForm.scroll","type":"file","size":166,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"dependencies.html","type":"file","size":9469,"lastModified":"2024-12-03T04:33:35.597Z"},{"name":"dependencies.scroll","type":"file","size":446,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"disk.html","type":"file","size":13534,"lastModified":"2024-12-03T04:33:35.601Z"},{"name":"disk.scroll","type":"file","size":75,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"edit.html","type":"file","size":1780,"lastModified":"2024-12-03T04:33:35.601Z"},{"name":"edit.scroll","type":"file","size":72,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"extension.parsers","type":"file","size":164,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"favicon.html","type":"file","size":814,"lastModified":"2024-12-03T04:33:35.601Z"},{"name":"favicon.scroll","type":"file","size":45,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"feed.rss","type":"file","size":705,"lastModified":"2024-12-03T04:33:35.605Z"},{"name":"feed.scroll","type":"file","size":70,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"fetchTest.scroll","type":"file","size":129,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"footer.scroll","type":"file","size":108,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"full.html","type":"file","size":6338,"lastModified":"2024-12-03T04:33:35.609Z"},{"name":"full.scroll","type":"file","size":52,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"gazette.css","type":"file","size":9576,"lastModified":"2024-12-03T04:33:35.037Z"},{"name":"gazette.html","type":"file","size":1262,"lastModified":"2024-12-03T04:33:35.609Z"},{"name":"gazette.scroll","type":"file","size":44,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"hakon.html","type":"file","size":187,"lastModified":"2024-12-03T04:33:35.613Z"},{"name":"hakon.scroll","type":"file","size":81,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"haml.html","type":"file","size":469,"lastModified":"2024-12-03T04:33:35.613Z"},{"name":"haml.scroll","type":"file","size":264,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"haml.txt","type":"file","size":70,"lastModified":"2024-12-03T04:33:35.613Z"},{"name":"header.scroll","type":"file","size":100,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"heatrix.html","type":"file","size":10668,"lastModified":"2024-12-03T04:33:35.617Z"},{"name":"heatrix.scroll","type":"file","size":531,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"html.html","type":"file","size":205,"lastModified":"2024-12-03T04:33:35.617Z"},{"name":"html.scroll","type":"file","size":94,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"htmlInclude.html","type":"file","size":65,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"index.scroll","type":"file","size":89,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"inline.scroll","type":"file","size":93,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"inspector.scroll","type":"file","size":62,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"iris.scroll","type":"file","size":67,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"javascript.js","type":"file","size":46,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"javascript.scroll","type":"file","size":56,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"jquery-3.7.1.min.js","type":"file","size":87533,"lastModified":"2024-12-03T04:33:35.057Z"},{"name":"json.scroll","type":"file","size":122,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"keyboardNav.scroll","type":"file","size":52,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"lists.scroll","type":"file","size":84,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"maps.scroll","type":"file","size":1432,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"markups.scroll","type":"file","size":351,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"meta.csv","type":"file","size":1899,"lastModified":"2024-12-03T04:33:35.009Z"},{"name":"meta.scroll","type":"file","size":117,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"music.scroll","type":"file","size":74,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"notices.scroll","type":"file","size":19,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"openGraphImages.scroll","type":"file","size":303,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"optionalImport.scroll","type":"file","size":131,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"postTemplate.scroll","type":"file","size":88,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"posts.scroll","type":"file","size":542,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"prestige.scroll","type":"file","size":114,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"push.scroll","type":"file","size":134,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"python.py","type":"file","size":12,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"python.scroll","type":"file","size":39,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"qrcodes.scroll","type":"file","size":53,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"redirectTest.scroll","type":"file","size":22,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"relativeSnippets.scroll","type":"file","size":51,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"roboto.scroll","type":"file","size":42,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"script.scroll","type":"file","size":134,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"scroll.test.js","type":"file","size":9757,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"scrollFormsTest.scroll","type":"file","size":955,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"scrollLibs.js","type":"file","size":961754,"lastModified":"2024-12-03T04:33:35.577Z"},{"name":"scrollVersion.scroll","type":"file","size":43,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"settings.scroll","type":"file","size":151,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"sipOfCoffee.m4a","type":"file","size":45809,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"sitemap.scroll","type":"file","size":63,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"slideshowDemo.scroll","type":"file","size":127,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"snippets.scroll","type":"file","size":65,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"source.scroll","type":"file","size":400,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"spirit.mp4","type":"file","size":153185,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"stampTest.scroll","type":"file","size":193,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"stopwatch.scroll","type":"file","size":88,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"stump.scroll","type":"file","size":38,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"style.scroll","type":"file","size":133,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"subfolder","type":"directory","size":4096,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"tableDates.scroll","type":"file","size":137,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"tableSearch.js","type":"file","size":7018,"lastModified":"2024-12-03T04:33:35.061Z"},{"name":"tables.scroll","type":"file","size":1403,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"tabularData.scroll","type":"file","size":1047,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"testOutput","type":"directory","size":4096,"lastModified":"2024-12-03T04:33:35.029Z"},{"name":"theScroll.scroll","type":"file","size":27,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"themes.scroll","type":"file","size":165,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"top-sinks.scroll","type":"file","size":736,"lastModified":"2024-12-03T04:33:14.381Z"},{"name":"tufte.css","type":"file","size":7592,"lastModified":"2024-12-03T04:33:35.029Z"},{"name":"tufte.html","type":"file","size":1256,"lastModified":"2024-12-03T04:33:35.033Z"},{"name":"tufte.scroll","type":"file","size":40,"lastModified":"2024-12-03T04:33:14.385Z"},{"name":"video.html","type":"file","size":246,"lastModified":"2024-12-03T04:33:35.033Z"},{"name":"video.scroll","type":"file","size":74,"lastModified":"2024-12-03T04:33:14.385Z"}] [{"name":"a-review-of-my-sink.html","type":"file","size":6769,"lastModified":"2024-12-03T04:56:18.474Z"},{"name":"a-review-of-my-sink.scroll","type":"file","size":586,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"aParser.scroll","type":"file","size":251,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"about.html","type":"file","size":5037,"lastModified":"2024-12-03T04:56:18.474Z"},{"name":"about.scroll","type":"file","size":451,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"all.html","type":"file","size":4093,"lastModified":"2024-12-03T04:56:18.482Z"},{"name":"all.scroll","type":"file","size":50,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"autoTitle.html","type":"file","size":393,"lastModified":"2024-12-03T04:56:18.482Z"},{"name":"autoTitle.scroll","type":"file","size":149,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"background.html","type":"file","size":161,"lastModified":"2024-12-03T04:56:18.482Z"},{"name":"background.scroll","type":"file","size":41,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"blogPost.html","type":"file","size":8678,"lastModified":"2024-12-03T04:56:18.486Z"},{"name":"blogPost.scroll","type":"file","size":71,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"browserstack.node.js","type":"file","size":2521,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"buildDelimited.csv","type":"file","size":209,"lastModified":"2024-12-03T04:56:18.302Z"},{"name":"buildDelimited.html","type":"file","size":1115,"lastModified":"2024-12-03T04:56:18.486Z"},{"name":"buildDelimited.json","type":"file","size":802,"lastModified":"2024-12-03T04:56:18.302Z"},{"name":"buildDelimited.scroll","type":"file","size":149,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"buildDelimited.tsv","type":"file","size":209,"lastModified":"2024-12-03T04:56:18.302Z"},{"name":"buildDelimited.txt","type":"file","size":210,"lastModified":"2024-12-03T04:56:18.486Z"},{"name":"buttons.html","type":"file","size":690,"lastModified":"2024-12-03T04:56:18.490Z"},{"name":"buttons.scroll","type":"file","size":133,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"center.html","type":"file","size":434,"lastModified":"2024-12-03T04:56:18.490Z"},{"name":"center.scroll","type":"file","size":114,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"classicFormsTest.html","type":"file","size":1287,"lastModified":"2024-12-03T04:56:18.510Z"},{"name":"classicFormsTest.scroll","type":"file","size":243,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"cloc.html","type":"file","size":1584,"lastModified":"2024-12-03T04:56:18.958Z"},{"name":"cloc.scroll","type":"file","size":68,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"clocLangs.txt","type":"file","size":215,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"codeMirror.css","type":"file","size":9413,"lastModified":"2024-12-03T04:56:18.398Z"},{"name":"comments.scroll","type":"file","size":25,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"concepts.html","type":"file","size":1052,"lastModified":"2024-12-03T04:56:18.962Z"},{"name":"concepts.scroll","type":"file","size":305,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"constants.js","type":"file","size":216643,"lastModified":"2024-12-03T04:56:18.402Z"},{"name":"contacts.csv","type":"file","size":161,"lastModified":"2024-12-03T04:56:18.314Z"},{"name":"contacts.html","type":"file","size":1055,"lastModified":"2024-12-03T04:56:18.966Z"},{"name":"contacts.json","type":"file","size":295,"lastModified":"2024-12-03T04:56:18.314Z"},{"name":"contacts.scroll","type":"file","size":374,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"contacts.tsv","type":"file","size":161,"lastModified":"2024-12-03T04:56:18.314Z"},{"name":"content.scroll","type":"file","size":174,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"css.css","type":"file","size":29,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"css.html","type":"file","size":187,"lastModified":"2024-12-03T04:56:18.966Z"},{"name":"css.scroll","type":"file","size":50,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"customMarkups.html","type":"file","size":759,"lastModified":"2024-12-03T04:56:18.966Z"},{"name":"customMarkups.scroll","type":"file","size":377,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"dark.css","type":"file","size":709,"lastModified":"2024-12-03T04:56:18.966Z"},{"name":"dark.html","type":"file","size":1253,"lastModified":"2024-12-03T04:56:18.970Z"},{"name":"dark.scroll","type":"file","size":38,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"datatables.css","type":"file","size":57644,"lastModified":"2024-12-03T04:56:18.422Z"},{"name":"datatables.js","type":"file","size":697329,"lastModified":"2024-12-03T04:56:18.426Z"},{"name":"dateTransforms.html","type":"file","size":1954,"lastModified":"2024-12-03T04:56:19.050Z"},{"name":"dateTransforms.scroll","type":"file","size":452,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"dayjs.min.js","type":"file","size":14556,"lastModified":"2024-12-03T04:56:18.422Z"},{"name":"debugging.html","type":"file","size":5066,"lastModified":"2024-12-03T04:56:19.050Z"},{"name":"debugging.scroll","type":"file","size":155,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"defs.scroll","type":"file","size":274,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"defsForm.html","type":"file","size":3644,"lastModified":"2024-12-03T04:56:19.058Z"},{"name":"defsForm.scroll","type":"file","size":166,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"dependencies.html","type":"file","size":9469,"lastModified":"2024-12-03T04:56:19.074Z"},{"name":"dependencies.scroll","type":"file","size":446,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"disk.html","type":"file","size":17293,"lastModified":"2024-12-03T04:56:19.082Z"},{"name":"disk.scroll","type":"file","size":75,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"edit.html","type":"file","size":1780,"lastModified":"2024-12-03T04:56:19.082Z"},{"name":"edit.scroll","type":"file","size":72,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"extension.parsers","type":"file","size":164,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"favicon.html","type":"file","size":814,"lastModified":"2024-12-03T04:56:19.082Z"},{"name":"favicon.scroll","type":"file","size":45,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"feed.rss","type":"file","size":705,"lastModified":"2024-12-03T04:56:19.082Z"},{"name":"feed.scroll","type":"file","size":70,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"fetchTest.scroll","type":"file","size":129,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"footer.scroll","type":"file","size":108,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"full.html","type":"file","size":6338,"lastModified":"2024-12-03T04:56:19.086Z"},{"name":"full.scroll","type":"file","size":52,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"gazette.css","type":"file","size":9576,"lastModified":"2024-12-03T04:56:18.342Z"},{"name":"gazette.html","type":"file","size":1262,"lastModified":"2024-12-03T04:56:19.090Z"},{"name":"gazette.scroll","type":"file","size":44,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"hakon.html","type":"file","size":187,"lastModified":"2024-12-03T04:56:19.090Z"},{"name":"hakon.scroll","type":"file","size":81,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"haml.html","type":"file","size":469,"lastModified":"2024-12-03T04:56:19.094Z"},{"name":"haml.scroll","type":"file","size":264,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"haml.txt","type":"file","size":70,"lastModified":"2024-12-03T04:56:19.094Z"},{"name":"header.scroll","type":"file","size":100,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"heatrix.html","type":"file","size":10668,"lastModified":"2024-12-03T04:56:19.094Z"},{"name":"heatrix.scroll","type":"file","size":531,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"html.html","type":"file","size":205,"lastModified":"2024-12-03T04:56:19.094Z"},{"name":"html.scroll","type":"file","size":94,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"htmlInclude.html","type":"file","size":65,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"index.scroll","type":"file","size":89,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"inline.scroll","type":"file","size":93,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"inspector.scroll","type":"file","size":62,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"iris.scroll","type":"file","size":67,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"javascript.html","type":"file","size":170,"lastModified":"2024-12-03T04:56:18.314Z"},{"name":"javascript.js","type":"file","size":46,"lastModified":"2024-12-03T04:55:56.242Z"},{"name":"javascript.scroll","type":"file","size":56,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"jquery-3.7.1.min.js","type":"file","size":87533,"lastModified":"2024-12-03T04:56:18.422Z"},{"name":"json.html","type":"file","size":1732,"lastModified":"2024-12-03T04:56:18.318Z"},{"name":"json.scroll","type":"file","size":122,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"keyboardNav.html","type":"file","size":739,"lastModified":"2024-12-03T04:56:18.318Z"},{"name":"keyboardNav.scroll","type":"file","size":52,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"leaflet.css","type":"file","size":14272,"lastModified":"2024-12-03T04:56:18.322Z"},{"name":"leaflet.js","type":"file","size":141941,"lastModified":"2024-12-03T04:56:18.322Z"},{"name":"lists.html","type":"file","size":237,"lastModified":"2024-12-03T04:56:18.318Z"},{"name":"lists.scroll","type":"file","size":84,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"maps.html","type":"file","size":14310,"lastModified":"2024-12-03T04:56:18.346Z"},{"name":"maps.scroll","type":"file","size":1432,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"markups.html","type":"file","size":473,"lastModified":"2024-12-03T04:56:18.346Z"},{"name":"markups.scroll","type":"file","size":351,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"meta.csv","type":"file","size":1899,"lastModified":"2024-12-03T04:56:18.282Z"},{"name":"meta.scroll","type":"file","size":117,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"music.html","type":"file","size":299,"lastModified":"2024-12-03T04:56:18.346Z"},{"name":"music.scroll","type":"file","size":74,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"notices.html","type":"file","size":710,"lastModified":"2024-12-03T04:56:18.346Z"},{"name":"notices.scroll","type":"file","size":19,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"openGraphImages.html","type":"file","size":2076,"lastModified":"2024-12-03T04:56:18.350Z"},{"name":"openGraphImages.scroll","type":"file","size":303,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"optionalImport.html","type":"file","size":800,"lastModified":"2024-12-03T04:56:18.350Z"},{"name":"optionalImport.scroll","type":"file","size":131,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"postTemplate.scroll","type":"file","size":88,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"posts.html","type":"file","size":5438,"lastModified":"2024-12-03T04:56:18.370Z"},{"name":"posts.scroll","type":"file","size":542,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"prestige.css","type":"file","size":2328,"lastModified":"2024-12-03T04:56:18.370Z"},{"name":"prestige.html","type":"file","size":2142,"lastModified":"2024-12-03T04:56:18.370Z"},{"name":"prestige.scroll","type":"file","size":114,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"prompt.txt","type":"file","size":583,"lastModified":"2024-12-03T04:56:18.422Z"},{"name":"push.html","type":"file","size":263,"lastModified":"2024-12-03T04:56:18.374Z"},{"name":"push.scroll","type":"file","size":134,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"python.html","type":"file","size":113,"lastModified":"2024-12-03T04:56:18.374Z"},{"name":"python.py","type":"file","size":12,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"python.scroll","type":"file","size":39,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"python.txt","type":"file","size":12,"lastModified":"2024-12-03T04:56:18.374Z"},{"name":"qrcodes.html","type":"file","size":5755,"lastModified":"2024-12-03T04:56:18.382Z"},{"name":"qrcodes.scroll","type":"file","size":53,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"redirectTest.scroll","type":"file","size":22,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"relativeSnippets.html","type":"file","size":7494,"lastModified":"2024-12-03T04:56:18.386Z"},{"name":"relativeSnippets.scroll","type":"file","size":51,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"roboto.css","type":"file","size":707,"lastModified":"2024-12-03T04:56:18.386Z"},{"name":"roboto.html","type":"file","size":1259,"lastModified":"2024-12-03T04:56:18.390Z"},{"name":"roboto.scroll","type":"file","size":42,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"script.html","type":"file","size":176,"lastModified":"2024-12-03T04:56:18.390Z"},{"name":"script.js","type":"file","size":86,"lastModified":"2024-12-03T04:56:18.390Z"},{"name":"script.scroll","type":"file","size":134,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"scroll.test.js","type":"file","size":9757,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"scrollFormsTest.html","type":"file","size":5417,"lastModified":"2024-12-03T04:56:18.418Z"},{"name":"scrollFormsTest.scroll","type":"file","size":955,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"scrollLibs.js","type":"file","size":961754,"lastModified":"2024-12-03T04:56:18.326Z"},{"name":"scrollVersion.html","type":"file","size":216,"lastModified":"2024-12-03T04:56:18.418Z"},{"name":"scrollVersion.scroll","type":"file","size":43,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"settings.scroll","type":"file","size":151,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"sipOfCoffee.m4a","type":"file","size":45809,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"sitemap.scroll","type":"file","size":63,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"sitemap.txt","type":"file","size":2521,"lastModified":"2024-12-03T04:56:18.418Z"},{"name":"slideshowDemo.scroll","type":"file","size":127,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"snippets.html","type":"file","size":792,"lastModified":"2024-12-03T04:56:18.418Z"},{"name":"snippets.scroll","type":"file","size":65,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"source.scroll","type":"file","size":400,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"sparkline.js","type":"file","size":6973,"lastModified":"2024-12-03T04:56:18.430Z"},{"name":"spirit.mp4","type":"file","size":153185,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"stampTest.scroll","type":"file","size":193,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"stopwatch.html","type":"file","size":678,"lastModified":"2024-12-03T04:56:18.422Z"},{"name":"stopwatch.scroll","type":"file","size":88,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"stump.html","type":"file","size":88,"lastModified":"2024-12-03T04:56:18.422Z"},{"name":"stump.scroll","type":"file","size":38,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"style.css","type":"file","size":0,"lastModified":"2024-12-03T04:56:18.422Z"},{"name":"style.scroll","type":"file","size":133,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"subfolder","type":"directory","size":4096,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"tableDates.html","type":"file","size":895,"lastModified":"2024-12-03T04:56:18.430Z"},{"name":"tableDates.scroll","type":"file","size":137,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"tableSearch.js","type":"file","size":7018,"lastModified":"2024-12-03T04:56:18.430Z"},{"name":"tables.html","type":"file","size":13454,"lastModified":"2024-12-03T04:56:18.462Z"},{"name":"tables.scroll","type":"file","size":1403,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"tables.txt","type":"file","size":2756,"lastModified":"2024-12-03T04:56:18.466Z"},{"name":"tabularData.html","type":"file","size":7353,"lastModified":"2024-12-03T04:56:18.466Z"},{"name":"tabularData.scroll","type":"file","size":1047,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"tabularData.txt","type":"file","size":922,"lastModified":"2024-12-03T04:56:18.466Z"},{"name":"testOutput","type":"directory","size":4096,"lastModified":"2024-12-03T04:56:18.302Z"},{"name":"theScroll.html","type":"file","size":3830,"lastModified":"2024-12-03T04:56:18.466Z"},{"name":"theScroll.scroll","type":"file","size":27,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"themes.html","type":"file","size":542,"lastModified":"2024-12-03T04:56:18.470Z"},{"name":"themes.scroll","type":"file","size":165,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"top-sinks.scroll","type":"file","size":736,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"tufte.css","type":"file","size":7592,"lastModified":"2024-12-03T04:56:18.470Z"},{"name":"tufte.html","type":"file","size":1256,"lastModified":"2024-12-03T04:56:18.470Z"},{"name":"tufte.scroll","type":"file","size":40,"lastModified":"2024-12-03T04:55:56.246Z"},{"name":"video.html","type":"file","size":246,"lastModified":"2024-12-03T04:56:18.470Z"},{"name":"video.scroll","type":"file","size":74,"lastModified":"2024-12-03T04:55:56.246Z"}] 12/03/2024204410.2260413
    Edit Edit 0
    FeedFeed https://scroll.pub/tests/ Kitchen sink test site. Tue, 03 Dec 2024 04:33:37 +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 Feed https://scroll.pub/tests/ Kitchen sink test site. Tue, 03 Dec 2024 04:56:20 +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 12/03/2024 58 0.30
    FooterBuilt with Scroll v161.0.3 Built with Scroll v161.0.4 12/03/2024 6 00
    Irissepal_length,sepal_width,petal_length,petal_width,species 6.2,3.4,5.4,2.3,virginica 5,3.4,1.5,0.2,setosa 5.1,3.5,1.4,0.2,setosa 5.6,2.7,4.2,1.3,versicolor 4.9,2.5,4.5,1.7,virginica 7.7,3.8,6.7,2.2,virginica 6.2,2.8,4.8,1.8,virginica 5.3,3.7,1.5,0.2,setosa 6.1,3,4.9,1.8,virginica 5.6,2.8,4.9,2,virginica sepal_length,sepal_width,petal_length,petal_width,species 6.2,3.4,5.4,2.3,virginica 4.9,2.5,4.5,1.7,virginica 7.7,3.8,6.7,2.2,virginica 5.6,2.7,4.2,1.3,versicolor 5.6,2.8,4.9,2,virginica 6.1,3,4.9,1.8,virginica 5.3,3.7,1.5,0.2,setosa 6.2,2.8,4.8,1.8,virginica 5.1,3.5,1.4,0.2,setosa 5,3.4,1.5,0.2,setosa 12/03/2024 92 0.5
    JavascriptThe background should be green 12/03/202450
    Jsonwindow.package.description says: 12/03/202440
    Keyboard Nav 12/03/202400
    Lists- This is a test - Of nested - Indentation - Level 4 12/03/202490
    MapsGeolocate user ============== Custom ====== 12/03/202430
    MarkupsHello world This is italicized Make this code Strikethrough this whole line. hi *world* .a.-b- 12/03/2024160.1
    Metadate,year,title,permalink,authors,tags,wordCount,minutes 10/28/2024,2024,Scroll in 50 Questions,scrollInQuestions.html,Breck Yunits,All,1080,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,426,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,1026,5.1 07/28/2024,2024,Heatrix: Heat Maps + Matrix Visualizations,heatrix.html,Breck Yunits,All,467,2.3 07/16/2024,2024,Contacts: A Microlang for Managing Contacts,contacts.html,Breck Yunits,All,371,1.9 07/12/2024,2024,How I Designed Helpful 404's and Stopped Worrying about Broken Links,helpful404s.html,Breck Yunits,All,546,2.7 07/09/2024,2024,Convert CSVs to ScrollSets,csvToScrollSet.html,Breck Yunits,All ScrollSets,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,1395,7 05/08/2023,2023,Introducing Program Links,programLinks.html,Breck Yunits,All,507,2.5 04/13/2023,2023,Counterpoints: A new tool for thought in the Scroll Language,counterpoints.html,Breck Yunits,All,388,1.9 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 12/03/20243571.8
    MusicWith loop ========= 12/03/202420
    Notices 12/03/202400
    Open Graph ImagesNot 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 12/03/2024350.2
    Optional ImportPass 1 - codeAtStart ======== buildHtml settings.scroll // todo: the below optional line should be in the importer code. // optional env.scroll printSourceStack 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 printSourceStack Pass 3 - codeAfterMacroPass ======== [Unchanged] 12/03/2024940.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 ---          12/03/2024360.2
    PrestigeJulius Caesar ============= Prestige ======== * * ⁂ 12/03/202430
    PushThis is my body. This should be above the footer. This is my footer. It is moved to end of file before compilation. 12/03/2024230.1
    Python2 + 2 is: 4 12/03/202440
    Qrcodes 12/03/202400
    Redirect Test 12/03/202400
    Relative SnippetsThis is _a_ test ================ 12/03/2024 https://scroll.pub/tests/aTestPost.html Tabular data test ================= 12/03/2024 https://scroll.pub/tests/tabularData.html A review of my sink =================== 12/03/2024 https://scroll.pub/tests/a-review-of-my-sink.html Top Sinks ========= 01/11/2019 https://scroll.pub/tests/top-sinks.html 12/03/2024550.3
    RobotoRoboto ====== A header ======== A link. https://scroll.pub link - A list - Item 2 Code ==== Inline `code`. ```header A code block ``` 12/03/2024200.1
    Script 12/03/202400
    Scroll Forms TestScrollSet Form Maker ==================== Past: to generate a classic form write "classicForm" ==================================================== Future: to generate a Scroll Form write "scrollForm" ==================================================== 12/03/2024190.1
    Scroll VersionBuilt with Scroll v161.0.3 12/03/202460
    Settings 12/03/202400
    Sitemaphttps://scroll.pub/tufte.html https://scroll.pub/video.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/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/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/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/inspector.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/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/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/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/top-sinks.html 12/03/20243901.9
    Slideshow Demo* The Dog in the Bog * The Dog was in the Bog * The END ⁂ 12/03/2024130.1
    SnippetsAbout the Kitchen Sink Blog =========================== 12/03/2024 https://scroll.pub/tests/about.html A review of my sink =================== 12/03/2024 https://scroll.pub/tests/a-review-of-my-sink.html Top Sinks ========= 01/11/2019 https://scroll.pub/tests/top-sinks.html 12/03/2024440.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. Tue, 03 Dec 2024 04:33:37 +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 12/03/20241070.5
    Stamp Test 12/03/202400
    Stopwatch 12/03/202400
    Stump 12/03/202400
    Style 12/03/202400
    Table DatesDate tests ========== lastChanged 4/16/2022 4/19/1982 10/26/2024 12/03/2024120.1
    TablesSimple 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 12/03/20245042.5
    Tabular data testTabular 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 12/03/20242091
    The Scroll 12/03/202400
    ThemesScroll Themes ============= The themes below ship with Scroll. To use type `theme roboto` 12/03/2024130.1
    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 Tue Dec 03 2024 04:33:34 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 Tue Dec 03 2024 04:56:17 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,15 +12,27 @@ - + + + + + + + + + + + + + - - - + + + @@ -30,10 +42,16 @@ - - - - + + + + + + + + + + @@ -42,34 +60,16 @@ - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + +
    sepal_length sepal_widthspecies
    6.2
    5.62.74.21.3versicolor
    5.33.71.50.2setosa
    6.2 2.8 4.8 1.8 virginica
    5.13.51.4
    53.41.5 0.2 setosa
    2 virginica
    6.134.91.8
    6.23.45.42.3virginica
    7.73.86.72.2 virginica
    4.91.7 virginica
    5.62.74.21.3versicolor
    6.23.45.42.3virginica
    53.41.50.2setosa
    5.33.71.5
    5.13.51.4 0.2 setosa
    7.73.86.72.2
    6.134.91.8 virginica
    diff --git a/tests/json.html b/tests/json.html index b54bfbfe6..25b6a9c81 100644 --- a/tests/json.html +++ b/tests/json.html @@ -3,7 +3,7 @@ + - + @@ -26,7 +26,7 @@ -
    +
    -
    +
    + - + diff --git a/tests/posts.html b/tests/posts.html index 3a7ddd400..3136a6306 100644 --- a/tests/posts.html +++ b/tests/posts.html @@ -3,12 +3,12 @@ Posts - + - + diff --git a/tests/prompt.txt b/tests/prompt.txt index 0969430b3..e020150c4 100644 --- a/tests/prompt.txt +++ b/tests/prompt.txt @@ -8,7 +8,7 @@ The Files: Source https://scroll.pub/tests/ Kitchen sink test site. - Tue, 03 Dec 2024 04:33:37 +0000 + Tue, 03 Dec 2024 04:56:18 +0000 en-us Tabular data test diff --git a/tests/relativeSnippets.html b/tests/relativeSnippets.html index 99fd4a6a2..febfa5cd3 100644 --- a/tests/relativeSnippets.html +++ b/tests/relativeSnippets.html @@ -3,12 +3,12 @@ Relative Snippets - + - + @@ -48,7 +48,7 @@ $0budget 3countries - +
    @@ -60,7 +60,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -72,7 +72,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -84,7 +84,7 @@
    sinkManufacturer countryCanada
    -

    Today is Tue Dec 03 2024 04:33:34 GMT+0000 (Coordinated Universal Time)

    +

    Today is Tue Dec 03 2024 04:56:17 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 b4dd03253..7b00f9948 100644 --- a/tests/scrollVersion.html +++ b/tests/scrollVersion.html @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/tests/sitemap.txt b/tests/sitemap.txt index 3a785d2a6..85d7be2e8 100644 --- a/tests/sitemap.txt +++ b/tests/sitemap.txt @@ -1,3 +1,38 @@ +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/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/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/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/a-review-of-my-sink.html @@ -39,39 +74,4 @@ https://scroll.pub/index.html https://scroll.pub/inline.html https://scroll.pub/inspector.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/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/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/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/top-sinks.html diff --git a/tests/stopwatch.html b/tests/stopwatch.html index b66972771..c55dd2251 100644 --- a/tests/stopwatch.html +++ b/tests/stopwatch.html @@ -3,7 +3,7 @@

    -

    0.0

    +

    0.0

    diff --git a/tests/subfolder/aTestPost.html b/tests/subfolder/aTestPost.html index 55df7f945..e55a9aec4 100644 --- a/tests/subfolder/aTestPost.html +++ b/tests/subfolder/aTestPost.html @@ -3,12 +3,12 @@ This is _a_ test - + - + diff --git a/tests/tableDates.html b/tests/tableDates.html index 91e6ad64b..3ab84dff6 100644 --- a/tests/tableDates.html +++ b/tests/tableDates.html @@ -13,7 +13,7 @@ - +
    diff --git a/tests/tables.html b/tests/tables.html index 7394cad5a..ce22eba45 100644 --- a/tests/tables.html +++ b/tests/tables.html @@ -6,12 +6,12 @@

    Simple sparkline with inline data

    - +

    Sparkline from table

    Whats in table?

    -
    lastChanged
    4/16/2022
    +
    @@ -24,13 +24,13 @@
    score
    1

    Show a sparkline?

    - +

    How about a heatrix?

    What if we add a filter?

    Whats left in table?

    - +
    @@ -41,7 +41,7 @@

    Visualizations from CSV

    -
    score
    5
    +
    @@ -68,7 +68,7 @@

    Transforms

    -
    name email
    +
    @@ -92,7 +92,7 @@
    name types21
    - +
    @@ -122,7 +122,7 @@
    name types4
    - +
    @@ -146,7 +146,7 @@
    types n21
    - +
    @@ -170,7 +170,7 @@
    types name21
    - +
    @@ -182,7 +182,7 @@

    Impute

    -
    name
    HTML
    +
    @@ -551,11 +551,11 @@
    year count23
    - +

    Timestamps

    - +
    @@ -576,7 +576,7 @@
    folder ctime8/29/2024, 6:02:39 PM
    - +
    @@ -608,13 +608,13 @@

    Quick Table

    -
    folder ctime
    +

    Quick JSON Table

    - +
    @@ -642,7 +642,7 @@

    Where tests

    -
    name email
    +
    @@ -654,7 +654,7 @@
    year count23
    - +
    diff --git a/tests/tabularData.html b/tests/tabularData.html index 82ef55d04..9c034129e 100644 --- a/tests/tabularData.html +++ b/tests/tabularData.html @@ -3,12 +3,12 @@ Tabular data test - + - + @@ -25,7 +25,7 @@

    A test of TSV data

    -
    year count
    +
    @@ -145,7 +145,7 @@
    Index Name

    Putting print table after a table:

    - +
    @@ -158,7 +158,7 @@

    Dropdown sections

    Full Table -
    name score
    +
    diff --git a/tests/top-sinks.html b/tests/top-sinks.html index 995077b24..073760534 100644 --- a/tests/top-sinks.html +++ b/tests/top-sinks.html @@ -3,12 +3,12 @@ Top Sinks - + - + @@ -41,7 +41,7 @@
    Rows LogLinear $0budget 3countries
    - +
    @@ -53,7 +53,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -65,7 +65,7 @@
    sinkManufacturer countryCanada
    - +
    @@ -77,7 +77,7 @@
    sinkManufacturer countryCanada
    -

    Today is Tue Dec 03 2024 04:33:34 GMT+0000 (Coordinated Universal Time)

    +

    Today is Tue Dec 03 2024 04:56:17 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 8cb7482b9..10f4d3471 100644 --- a/tests/top-sinks.txt +++ b/tests/top-sinks.txt @@ -18,7 +18,7 @@ sinkManufacturer|country Blue|USA Red|Canada -Today is Tue Dec 03 2024 04:33:34 GMT+0000 (Coordinated Universal Time) +Today is Tue Dec 03 2024 04:56:17 GMT+0000 (Coordinated Universal Time) 1+1 = 2 diff --git a/tutorial.html b/tutorial.html index 675fef186..26ecead06 100644 --- a/tutorial.html +++ b/tutorial.html @@ -3,12 +3,12 @@ Scroll Tutorial - + - + @@ -242,7 +242,7 @@ cueFromId javascript buildHtml() { - return `<span onclick="alert('${this.get('message')}')">${super.buildHtml()}</span>` + return `<span onclick="alert('${this.get("message")}')">${super.buildHtml()}</span>` } hiddenMessage Click me. message Hello world @@ -263,7 +263,7 @@ - +
    \ No newline at end of file diff --git a/tutorial.scroll b/tutorial.scroll index d400f573c..e7ecf907a 100644 --- a/tutorial.scroll +++ b/tutorial.scroll @@ -216,7 +216,7 @@ hiddenMessageParser cueFromId javascript buildHtml() { - return `${super.buildHtml()}` + return `${super.buildHtml()}` } hiddenMessage Click me. message Hello world diff --git a/tutorial.txt b/tutorial.txt index 8408bd667..f5b7cae10 100644 --- a/tutorial.txt +++ b/tutorial.txt @@ -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 v161.0.3 +Built with Scroll v161.0.4