diff --git a/docs/04_tutorials.md b/docs/04_tutorials.md
new file mode 100644
index 00000000..14b89f2a
--- /dev/null
+++ b/docs/04_tutorials.md
@@ -0,0 +1,30 @@
+---
+layout: page
+title: Tutorials
+permalink: /tutorials
+---
+
+These tutorials are provided to help you learn how **lnav** works
+without having to install anything. They are running on a shared
+[fly.io](https://fly.io) instance, so please be kind.
+
+The tutorials are implemented using features in **lnav** and not
+built in to the code itself. The tutorial text is
+[markdown](https://docs.lnav.org/en/latest/ui.html#markdown),
+the logic is written [SQL](https://docs.lnav.org/en/latest/sqlext.html),
+and the reactions are triggered through
+[events](https://docs.lnav.org/en/latest/events.html).
+
+The source for the tutorials can be found [here](https://github.com/tstack/lnav/tree/master/docs/tutorials).
+
+# Tutorial 1
+
+
+
diff --git a/docs/04_docs.md b/docs/05_docs.md
similarity index 100%
rename from docs/04_docs.md
rename to docs/05_docs.md
diff --git a/docs/05_changeblog.md b/docs/06_changeblog.md
similarity index 100%
rename from docs/05_changeblog.md
rename to docs/06_changeblog.md
diff --git a/docs/Gemfile b/docs/Gemfile
index 2c4f1bac..10560d9b 100644
--- a/docs/Gemfile
+++ b/docs/Gemfile
@@ -7,16 +7,14 @@ source "https://rubygems.org"
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
-gem "jekyll", "~> 4.2.0"
+# gem "jekyll", "~> 4.2.0"
# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.5"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
-# gem "github-pages", group: :jekyll_plugins
+gem "github-pages", group: :jekyll_plugins
# If you have any plugins, put them here!
group :jekyll_plugins do
- gem "jekyll-feed", "~> 0.12"
- gem "jekyll-redirect-from", "~> 0.16.0"
end
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
index 5aa098c0..97b8ec24 100644
--- a/docs/Gemfile.lock
+++ b/docs/Gemfile.lock
@@ -1,82 +1,265 @@
GEM
remote: https://rubygems.org/
specs:
- addressable (2.8.0)
- public_suffix (>= 2.0.2, < 5.0)
+ activesupport (6.0.5.1)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ zeitwerk (~> 2.2, >= 2.2.2)
+ addressable (2.8.1)
+ public_suffix (>= 2.0.2, < 6.0)
+ coffee-script (2.4.1)
+ coffee-script-source
+ execjs
+ coffee-script-source (1.11.1)
colorator (1.1.0)
- concurrent-ruby (1.1.9)
- em-websocket (0.5.2)
+ commonmarker (0.23.5)
+ concurrent-ruby (1.1.10)
+ dnsruby (1.61.9)
+ simpleidn (~> 0.1)
+ em-websocket (0.5.3)
eventmachine (>= 0.12.9)
- http_parser.rb (~> 0.6.0)
+ http_parser.rb (~> 0)
+ ethon (0.15.0)
+ ffi (>= 1.15.0)
eventmachine (1.2.7)
- ffi (1.15.1)
+ execjs (2.8.1)
+ faraday (2.5.2)
+ faraday-net_http (>= 2.0, < 3.1)
+ ruby2_keywords (>= 0.0.4)
+ faraday-net_http (3.0.0)
+ ffi (1.15.5)
forwardable-extended (2.6.0)
- http_parser.rb (0.6.0)
- i18n (1.8.10)
+ gemoji (3.0.1)
+ github-pages (227)
+ github-pages-health-check (= 1.17.9)
+ jekyll (= 3.9.2)
+ jekyll-avatar (= 0.7.0)
+ jekyll-coffeescript (= 1.1.1)
+ jekyll-commonmark-ghpages (= 0.2.0)
+ jekyll-default-layout (= 0.1.4)
+ jekyll-feed (= 0.15.1)
+ jekyll-gist (= 1.5.0)
+ jekyll-github-metadata (= 2.13.0)
+ jekyll-include-cache (= 0.2.1)
+ jekyll-mentions (= 1.6.0)
+ jekyll-optional-front-matter (= 0.3.2)
+ jekyll-paginate (= 1.1.0)
+ jekyll-readme-index (= 0.3.0)
+ jekyll-redirect-from (= 0.16.0)
+ jekyll-relative-links (= 0.6.1)
+ jekyll-remote-theme (= 0.4.3)
+ jekyll-sass-converter (= 1.5.2)
+ jekyll-seo-tag (= 2.8.0)
+ jekyll-sitemap (= 1.4.0)
+ jekyll-swiss (= 1.0.0)
+ jekyll-theme-architect (= 0.2.0)
+ jekyll-theme-cayman (= 0.2.0)
+ jekyll-theme-dinky (= 0.2.0)
+ jekyll-theme-hacker (= 0.2.0)
+ jekyll-theme-leap-day (= 0.2.0)
+ jekyll-theme-merlot (= 0.2.0)
+ jekyll-theme-midnight (= 0.2.0)
+ jekyll-theme-minimal (= 0.2.0)
+ jekyll-theme-modernist (= 0.2.0)
+ jekyll-theme-primer (= 0.6.0)
+ jekyll-theme-slate (= 0.2.0)
+ jekyll-theme-tactile (= 0.2.0)
+ jekyll-theme-time-machine (= 0.2.0)
+ jekyll-titles-from-headings (= 0.5.3)
+ jemoji (= 0.12.0)
+ kramdown (= 2.3.2)
+ kramdown-parser-gfm (= 1.1.0)
+ liquid (= 4.0.3)
+ mercenary (~> 0.3)
+ minima (= 2.5.1)
+ nokogiri (>= 1.13.6, < 2.0)
+ rouge (= 3.26.0)
+ terminal-table (~> 1.4)
+ github-pages-health-check (1.17.9)
+ addressable (~> 2.3)
+ dnsruby (~> 1.60)
+ octokit (~> 4.0)
+ public_suffix (>= 3.0, < 5.0)
+ typhoeus (~> 1.3)
+ html-pipeline (2.14.2)
+ activesupport (>= 2)
+ nokogiri (>= 1.4)
+ http_parser.rb (0.8.0)
+ i18n (0.9.5)
concurrent-ruby (~> 1.0)
- jekyll (4.2.0)
+ jekyll (3.9.2)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
- i18n (~> 1.0)
- jekyll-sass-converter (~> 2.0)
+ i18n (~> 0.7)
+ jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 2.0)
- kramdown (~> 2.3)
- kramdown-parser-gfm (~> 1.0)
+ kramdown (>= 1.17, < 3)
liquid (~> 4.0)
- mercenary (~> 0.4.0)
+ mercenary (~> 0.3.3)
pathutil (~> 0.9)
- rouge (~> 3.0)
+ rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
- terminal-table (~> 2.0)
+ jekyll-asciinema (0.2.1)
+ jekyll (>= 2.0)
+ jekyll-avatar (0.7.0)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-coffeescript (1.1.1)
+ coffee-script (~> 2.2)
+ coffee-script-source (~> 1.11.1)
+ jekyll-commonmark (1.4.0)
+ commonmarker (~> 0.22)
+ jekyll-commonmark-ghpages (0.2.0)
+ commonmarker (~> 0.23.4)
+ jekyll (~> 3.9.0)
+ jekyll-commonmark (~> 1.4.0)
+ rouge (>= 2.0, < 4.0)
+ jekyll-default-layout (0.1.4)
+ jekyll (~> 3.0)
jekyll-feed (0.15.1)
jekyll (>= 3.7, < 5.0)
+ jekyll-gist (1.5.0)
+ octokit (~> 4.2)
+ jekyll-github-metadata (2.13.0)
+ jekyll (>= 3.4, < 5.0)
+ octokit (~> 4.0, != 4.4.0)
+ jekyll-include-cache (0.2.1)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-mentions (1.6.0)
+ html-pipeline (~> 2.3)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-optional-front-matter (0.3.2)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-paginate (1.1.0)
+ jekyll-readme-index (0.3.0)
+ jekyll (>= 3.0, < 5.0)
jekyll-redirect-from (0.16.0)
jekyll (>= 3.3, < 5.0)
- jekyll-sass-converter (2.1.0)
- sassc (> 2.0.1, < 3.0)
- jekyll-seo-tag (2.7.1)
+ jekyll-relative-links (0.6.1)
+ jekyll (>= 3.3, < 5.0)
+ jekyll-remote-theme (0.4.3)
+ addressable (~> 2.0)
+ jekyll (>= 3.5, < 5.0)
+ jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
+ rubyzip (>= 1.3.0, < 3.0)
+ jekyll-sass-converter (1.5.2)
+ sass (~> 3.4)
+ jekyll-seo-tag (2.8.0)
jekyll (>= 3.8, < 5.0)
+ jekyll-sitemap (1.4.0)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-swiss (1.0.0)
+ jekyll-theme-architect (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-cayman (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-dinky (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-hacker (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-leap-day (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-merlot (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-midnight (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-minimal (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-modernist (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-primer (0.6.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-github-metadata (~> 2.9)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-slate (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-tactile (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-time-machine (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-titles-from-headings (0.5.3)
+ jekyll (>= 3.3, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
- kramdown (2.3.1)
+ jemoji (0.12.0)
+ gemoji (~> 3.0)
+ html-pipeline (~> 2.2)
+ jekyll (>= 3.0, < 5.0)
+ kramdown (2.3.2)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
- listen (3.5.1)
+ listen (3.7.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
- mercenary (0.4.0)
+ mercenary (0.3.6)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
+ minitest (5.16.3)
+ nokogiri (1.13.8-arm64-darwin)
+ racc (~> 1.4)
+ octokit (4.25.1)
+ faraday (>= 1, < 3)
+ sawyer (~> 0.9)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
- public_suffix (4.0.6)
- rb-fsevent (0.11.0)
+ public_suffix (4.0.7)
+ racc (1.6.0)
+ rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.5)
rouge (3.26.0)
+ ruby2_keywords (0.0.5)
+ rubyzip (2.3.2)
safe_yaml (1.0.5)
- sassc (2.4.0)
- ffi (~> 1.9)
- terminal-table (2.0.0)
+ sass (3.7.4)
+ sass-listen (~> 4.0.0)
+ sass-listen (4.0.0)
+ rb-fsevent (~> 0.9, >= 0.9.4)
+ rb-inotify (~> 0.9, >= 0.9.7)
+ sawyer (0.9.2)
+ addressable (>= 2.3.5)
+ faraday (>= 0.17.3, < 3)
+ simpleidn (0.2.1)
+ unf (~> 0.1.4)
+ terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
- unicode-display_width (1.7.0)
+ thread_safe (0.3.6)
+ typhoeus (1.4.0)
+ ethon (>= 0.9.0)
+ tzinfo (1.2.10)
+ thread_safe (~> 0.1)
+ unf (0.1.4)
+ unf_ext
+ unf_ext (0.0.8.2)
+ unicode-display_width (1.8.0)
webrick (1.7.0)
+ zeitwerk (2.6.0)
PLATFORMS
- universal-darwin-20
- universal-darwin-21
- x86_64-linux
+ arm64-darwin-21
DEPENDENCIES
- jekyll (~> 4.2.0)
- jekyll-feed (~> 0.12)
- jekyll-redirect-from (~> 0.16.0)
+ github-pages
+ jekyll-asciinema (~> 0.2.1)
minima (~> 2.5)
tzinfo (~> 1.2)
tzinfo-data
diff --git a/docs/_layouts/top.html b/docs/_layouts/top.html
index 61e7d440..75be485f 100644
--- a/docs/_layouts/top.html
+++ b/docs/_layouts/top.html
@@ -21,7 +21,6 @@
font-size: x-large;
font-weight: lighter;
margin-top: 2em;
- margin-bottom: 4em;
margin-left: 2em;
}
diff --git a/docs/_posts/2022-09-01-playground.md b/docs/_posts/2022-09-01-playground.md
new file mode 100644
index 00000000..3cbaa116
--- /dev/null
+++ b/docs/_posts/2022-09-01-playground.md
@@ -0,0 +1,27 @@
+---
+layout: post
+title: Playground and Tutorial
+excerpt: Try lnav without having to install anything
+---
+
+To make it easier to try out **lnav**, I've deployed an ssh-based playground
+and tutorial. You can SSH as follows to try them out:
+
+```console
+$ ssh playground@demo.lnav.org
+$ ssh tutorial1@demo.lnav.org
+```
+
+
+
+The playground has a couple of example logs to play with. The tutorial
+tries to guide you through the basics of navigating log files with lnav.
+The server is running on the free-tier of [fly.io](https://fly.io), so
+please be kind.
+
+This effort was inspired by the `git.charm.sh` SSH server and by the
+[fasterthanli.me](https://fasterthanli.me/articles/remote-development-with-rust-on-fly-io)
+post on doing remote development on fly.io.
diff --git a/docs/assets/images/lnav-front-page.png b/docs/assets/images/lnav-front-page.png
index 2dcad661..20483dd1 100644
Binary files a/docs/assets/images/lnav-front-page.png and b/docs/assets/images/lnav-front-page.png differ
diff --git a/docs/assets/main.scss b/docs/assets/main.scss
new file mode 100644
index 00000000..bda771db
--- /dev/null
+++ b/docs/assets/main.scss
@@ -0,0 +1,31 @@
+---
+---
+
+@import "{{ site.theme }}";
+
+#playground-box {
+ font-size: x-large;
+ border-radius: 25px;
+ background: #8d8;
+ padding: 20px;
+ display: inline-block;
+}
+
+#playground-box h4 {
+ margin-bottom: 0;
+}
+
+#playground-box code {
+ padding-left: 20px;
+ background: #444;
+ border-color: #444;
+}
+
+#playground-box code a {
+ padding-right: 20px;
+ color: white;
+}
+
+#playground-box .prompt {
+ color: #4f4;
+}
diff --git a/docs/index.markdown b/docs/index.markdown
index c16fca7d..eadb5016 100644
--- a/docs/index.markdown
+++ b/docs/index.markdown
@@ -18,6 +18,15 @@ An advanced log file viewer for the small-scale
Watch and analyze your log files from a terminal.
No server. No setup. Still featureful.
+
+
diff --git a/docs/source/ui.rst b/docs/source/ui.rst
index 0d12ff05..654efa9e 100644
--- a/docs/source/ui.rst
+++ b/docs/source/ui.rst
@@ -210,8 +210,11 @@ TEXT
The text view displays files for which lnav could not detect any log messages.
-Files with an :code:`.md` extension will be treated as Markdown files and
-rendered separately.
+Markdown
+""""""""
+
+Files with an :code:`.md` (or :code:`.markdown`) extension will be treated as
+Markdown files and rendered separately.
DB
^^