summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2020/info/19.md2
-rw-r--r--2020/organizers-notebook.org2
-rw-r--r--2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.vtt664
3 files changed, 666 insertions, 2 deletions
diff --git a/2020/info/19.md b/2020/info/19.md
index 9260db46..ec5f5442 100644
--- a/2020/info/19.md
+++ b/2020/info/19.md
@@ -1,7 +1,7 @@
# Sharing blogs (and more) with org-webring
Brett Gilio
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.webm"]]
+[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.webm" subtitles="/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt"]]
[Download compressed .webm video (20.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio--vp9-q56-video-original-audio.webm)
In this talk I will detail the ways in which static website generation
diff --git a/2020/organizers-notebook.org b/2020/organizers-notebook.org
index a32640a8..b8ad59f8 100644
--- a/2020/organizers-notebook.org
+++ b/2020/organizers-notebook.org
@@ -46,7 +46,7 @@ I modified the =subed= package to work with VTT files. The modified version is a
- [X] sachac [[./info/16.md]] [[./subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier.vtt]]
- [X] sachac [[./info/17.md]] [[./subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan.vtt]]
- [X] sachac [[./info/18.md]] [[./subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.vtt]]
-- [ ] sachac [[./subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt]]
+- [ ] sachac [[./info/19.md]] [[./subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt]]
- [ ] sachac [[./subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt]]
- [ ] [[./subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt]]
- [ ] sachac [[./subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt]]
diff --git a/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.vtt b/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.vtt
new file mode 100644
index 00000000..f2db5398
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.vtt
@@ -0,0 +1,664 @@
+WEBVTT
+
+00:00:01.120 --> 00:00:03.120
+Hi, my name is Brett Gillio,
+
+00:00:03.120 --> 00:00:04.560
+and today I'll be sharing a project that
+
+00:00:04.560 --> 00:00:05.920
+several people and I have been working on
+
+00:00:05.920 --> 00:00:08.480
+for the past few months, called
+org-webring.
+
+00:00:08.480 --> 00:00:10.559
+The essential idea behind org-webring
+
+00:00:10.559 --> 00:00:12.240
+is to take the power of creating a
+
+00:00:12.240 --> 00:00:13.679
+website with Org Mode
+
+00:00:13.679 --> 00:00:15.360
+and its built-in features to control
+
+00:00:15.360 --> 00:00:17.520
+HTML and XML output
+
+00:00:17.520 --> 00:00:19.119
+and utilize it to share blogs, git
+
+00:00:19.119 --> 00:00:22.640
+commits, or other rss or atom static
+feed content
+
+00:00:22.640 --> 00:00:25.920
+to share directly with your audiences.
+
+00:00:25.920 --> 00:00:28.362
+My website is created entirely using
+
+00:00:28.362 --> 00:00:30.000
+Org Mode. I love the amount of
+
+00:00:30.000 --> 00:00:31.679
+flexibility it offers me while keeping
+
+00:00:31.679 --> 00:00:34.079
+everything quite simple.
+
+00:00:34.079 --> 00:00:35.920
+I am able to put information about
+
+00:00:35.920 --> 00:00:37.600
+myself, a blog,
+
+00:00:37.600 --> 00:00:40.079
+and my org-webring tool directly on on
+
+00:00:40.079 --> 00:00:42.879
+the home page using simple Org syntax.
+
+00:00:42.879 --> 00:00:44.640
+As you can see, I am currently displaying
+
+00:00:44.640 --> 00:00:46.239
+three posts on my website.
+
+00:00:46.239 --> 00:00:48.239
+The first is the Guix Day announcement,
+
+00:00:48.239 --> 00:00:49.840
+the second is a quarterly financial
+
+00:00:49.840 --> 00:00:51.039
+update from SourceHut,
+
+00:00:51.039 --> 00:00:52.320
+and the third is a post from
+
+00:00:52.320 --> 00:00:55.120
+Drew DeVault's blog. Drew DeVault,
+by the way--
+
+00:00:55.120 --> 00:00:57.680
+his open ring is what helped inspire
+
+00:00:57.680 --> 00:01:01.359
+what is today org-webring.
+All this information is
+
+00:01:01.359 --> 00:01:03.440
+gathered using a sort of manifest file
+
+00:01:03.440 --> 00:01:05.360
+that org-webring will use to acquire
+
+00:01:05.360 --> 00:01:06.746
+and place the information in the
+
+00:01:06.746 --> 00:01:07.760
+correct format
+
+00:01:07.760 --> 00:01:10.000
+according to your specification.
+
+00:01:10.000 --> 00:01:11.729
+additionally, you can see that the
+
+00:01:11.729 --> 00:01:14.159
+Guix Day announcement's post is pinned.
+
+00:01:14.159 --> 00:01:17.200
+Stylization is likewise controlled by
+using CSS.
+
+00:01:17.200 --> 00:01:18.960
+You can add nice subtle color changes on
+
+00:01:18.960 --> 00:01:20.720
+mouse hover or control the size of the
+
+00:01:20.720 --> 00:01:23.759
+flexboxes, all using standard CSS.
+
+00:01:23.759 --> 00:01:28.320
+Let's examine a simple scenario of using
+org-webring.
+
+00:01:28.320 --> 00:01:30.400
+After you have org-webring installed,
+
+00:01:30.400 --> 00:01:32.000
+you'll be able to create a manifest file
+
+00:01:32.000 --> 00:01:33.759
+that looks something like this.
+
+00:01:33.759 --> 00:01:35.680
+This particular manifest file is an
+
+00:01:35.680 --> 00:01:37.840
+example offered in the repository under
+
+00:01:37.840 --> 00:01:39.520
+the assets directory.
+
+00:01:39.520 --> 00:01:41.200
+Please feel free to utilize them as a
+
+00:01:41.200 --> 00:01:42.640
+starting point if you are interested in
+
+00:01:42.640 --> 00:01:44.399
+using org-webring.
+
+00:01:44.399 --> 00:01:46.320
+As you can see here, we are able to place
+
+00:01:46.320 --> 00:01:48.640
+an RSS or ATOM feed in this file and
+
+00:01:48.640 --> 00:01:50.479
+specify information about the feed we
+
+00:01:50.479 --> 00:01:51.920
+wish to produce.
+
+00:01:51.920 --> 00:01:54.640
+For example: the total number of items
+
+00:01:54.640 --> 00:01:56.159
+and the total number of entries per
+
+00:01:56.159 --> 00:01:57.439
+source item.
+
+00:01:57.439 --> 00:01:59.439
+Additionally, you're able to filter posts
+
+00:01:59.439 --> 00:02:02.079
+you feel would not be relevant to your
+web ring.
+
+00:02:02.079 --> 00:02:03.843
+We can take this example file,
+
+00:02:03.843 --> 00:02:13.120
+run the dispatch and see the result.
+
+00:02:13.120 --> 00:02:15.280
+The web ring displays a proper summary
+
+00:02:15.280 --> 00:02:17.760
+set to a character limit you can specify.
+
+00:02:17.760 --> 00:02:19.453
+Additionally, all the links in the
+
+00:02:19.453 --> 00:02:20.814
+web ring are navigatable and
+
+00:02:20.814 --> 00:02:22.560
+will open in a new tab.
+
+00:02:22.560 --> 00:02:24.719
+That way, if someone wishes to
+view the content,
+
+00:02:24.719 --> 00:02:25.920
+they simply need to
+
+00:02:25.920 --> 00:02:30.319
+click on the title or their source name.
+
+00:02:30.319 --> 00:02:32.879
+Now this particular example is not
+
+00:02:32.879 --> 00:02:34.800
+stylized because we have not given the
+
+00:02:34.800 --> 00:02:37.120
+website a CSS file to reference.
+
+00:02:37.120 --> 00:02:38.720
+Let's examine what is happening from
+
+00:02:38.720 --> 00:02:40.319
+behind the scenes a little bit.
+
+00:02:40.319 --> 00:02:42.621
+From inside of the Org Mode file,
+
+00:02:42.621 --> 00:02:48.800
+let's run the org-webring function.
+
+00:02:48.800 --> 00:02:51.280
+As you can see, it takes that XML file
+
+00:02:51.280 --> 00:02:54.239
+and processes it into the correct HTML.
+
+00:02:54.239 --> 00:02:55.938
+You will then be able to embed this
+
+00:02:55.938 --> 00:02:57.758
+Org function into another Org file
+
+00:02:57.758 --> 00:03:00.080
+to be able to display it on your website.
+
+00:03:00.080 --> 00:03:05.440
+Pretty neat. Let's look at
+another example.
+
+00:03:05.440 --> 00:03:07.360
+On my website, we have an example of
+
+00:03:07.360 --> 00:03:09.519
+using org-webring to reply to another
+
+00:03:09.519 --> 00:03:10.800
+blog post.
+
+00:03:10.800 --> 00:03:12.178
+What I have here is a post from
+
+00:03:12.178 --> 00:03:14.640
+Drew DeVault's blog. It is showcased clearly at
+
+00:03:14.640 --> 00:03:16.239
+the top as a single entry,
+
+00:03:16.239 --> 00:03:18.220
+and you can see it is pinned.
+
+00:03:18.220 --> 00:03:19.889
+The pinning functionality ensures
+
+00:03:19.889 --> 00:03:20.800
+that this post is
+
+00:03:20.800 --> 00:03:21.852
+moved to the front of the
+
+00:03:21.852 --> 00:03:23.120
+hypothetical web ring
+
+00:03:23.120 --> 00:03:25.232
+and guaranteeing its visibility.
+
+00:03:25.232 --> 00:03:27.599
+This is then coupled with a
+few changes, such as
+
+00:03:27.599 --> 00:03:29.840
+disabling the generation time
+
+00:03:29.840 --> 00:03:31.552
+(which would not be relevant to the
+readers)
+
+00:03:31.552 --> 00:03:34.000
+and a change of the text
+in the header
+
+00:03:34.000 --> 00:03:37.040
+to demonstrate it is indeed
+used as a reply.
+
+00:03:37.040 --> 00:03:39.599
+An example of this is also provided in
+
+00:03:39.599 --> 00:03:42.319
+the assets directory.
+
+00:03:42.319 --> 00:03:44.146
+Last, we can use org-webring
+
+00:03:44.146 --> 00:03:45.519
+as a blog planet,
+
+00:03:45.519 --> 00:03:47.599
+which is one of my favorites. This takes
+
+00:03:47.599 --> 00:03:49.360
+after the Emacs Life planet, which I
+
+00:03:49.360 --> 00:03:51.722
+believe is moderated
+by Sacha and others,
+
+00:03:51.722 --> 00:03:53.200
+as well as the Haskell and
+
+00:03:53.200 --> 00:03:54.720
+OCaml planets.
+
+00:03:54.720 --> 00:03:56.959
+A planet, for the uninitiated, is a
+
+00:03:56.959 --> 00:03:58.485
+curated form of content sharing
+
+00:03:58.485 --> 00:04:00.159
+about a set of topics.
+
+00:04:00.159 --> 00:04:02.400
+The Emacs Life, Haskell, and OCaml planets,
+
+00:04:02.400 --> 00:04:03.439
+as their names imply,
+
+00:04:03.439 --> 00:04:07.200
+cover Emacs, Haskell, and OCaml blogs
+respectively.
+
+00:04:07.200 --> 00:04:08.962
+Likewise, my planet covers
+
+00:04:08.962 --> 00:04:10.310
+programming language theory
+
+00:04:10.310 --> 00:04:12.239
+and category theory, primarily.
+
+00:04:12.239 --> 00:04:13.920
+It works in essentially the same way as
+
+00:04:13.920 --> 00:04:15.840
+the org-webring. You provide it with a
+
+00:04:15.840 --> 00:04:17.519
+list of feeds that get parsed.
+
+00:04:17.519 --> 00:04:19.317
+However, unlike the web ring,
+
+00:04:19.317 --> 00:04:21.086
+the planet function has no limits
+
+00:04:21.086 --> 00:04:23.040
+on the number of entries per source,
+
+00:04:23.040 --> 00:04:24.639
+and the display number of posts is
+
+00:04:24.639 --> 00:04:27.600
+increased significantly.
+
+00:04:27.600 --> 00:04:29.759
+The syndicates or sources have their
+
+00:04:29.759 --> 00:04:31.429
+feeds shown visibly to users
+
+00:04:31.429 --> 00:04:33.759
+who may wish to fetch them.
+
+00:04:33.759 --> 00:04:35.440
+A planet is typically meant to be a
+
+00:04:35.440 --> 00:04:37.040
+standalone page and not something you
+
+00:04:37.040 --> 00:04:39.440
+would embed in another page like a
+web ring.
+
+00:04:39.440 --> 00:04:41.680
+All this is provided under a single file
+
+00:04:41.680 --> 00:04:43.009
+in the org-webring package,
+
+00:04:43.009 --> 00:04:45.280
+as the code reuse is quite high.
+
+00:04:45.280 --> 00:04:48.240
+Aside from my own website, we can view
+
+00:04:48.240 --> 00:04:49.840
+the org-webring being used in neat
+
+00:04:49.840 --> 00:04:52.400
+context with varying stylizations.
+
+00:04:52.400 --> 00:04:53.642
+Here's a nice example
+
+00:04:53.642 --> 00:04:57.680
+from Mikhail Kirillov at w96k.ru,
+
+00:04:57.680 --> 00:05:00.960
+featuring a four symmetrical
+flexbox layout,
+
+00:05:00.960 --> 00:05:02.324
+an appropriate Russian language
+
+00:05:02.324 --> 00:05:04.225
+time encoding, which can be also set
+
+00:05:04.225 --> 00:05:07.360
+in the org-webring manifest.
+
+00:05:07.360 --> 00:05:08.892
+Another is an example from
+
+00:05:08.892 --> 00:05:10.400
+Camilo Mesa Gaete (https://cmezagaete.cl/),
+
+00:05:10.400 --> 00:05:13.280
+using ox-hugo with org-webring and
+
+00:05:13.280 --> 00:05:14.320
+likewise correctly
+
+00:05:14.320 --> 00:05:17.680
+features the correct Spanish
+time encoding.
+
+00:05:17.680 --> 00:05:22.240
+Last, my other website workircd.org
+
+00:05:22.240 --> 00:05:24.265
+shows the web ring being used
+
+00:05:24.265 --> 00:05:27.440
+in combination with Ocaml's tool
+link Soupault,
+
+00:05:27.440 --> 00:05:32.800
+to fetch git logs for that project.
+
+00:05:32.800 --> 00:05:34.639
+You may obtain org-webring directly
+
+00:05:34.639 --> 00:05:37.039
+from SourceHut and add it to your
+load-path.
+
+00:05:37.039 --> 00:05:39.639
+Additionally, you will need to obtain
+
+00:05:39.639 --> 00:05:43.280
+xmlgen.el, which is unfortunately
+not yet on ELPA,
+
+00:05:43.280 --> 00:05:44.960
+although I have been trying to get this
+
+00:05:44.960 --> 00:05:46.800
+rectified so I do not have to rewrite
+
+00:05:46.800 --> 00:05:49.840
+org-webring's XML to HTML parser.
+
+00:05:49.840 --> 00:05:51.759
+Or if you're one of the cool kids using
+
+00:05:51.759 --> 00:05:54.000
+my favorite package manager, GNU Guix,
+
+00:05:54.000 --> 00:06:06.319
+you can obtain it like so.
+
+00:06:06.319 --> 00:06:08.248
+All of the documentation for
+
+00:06:08.248 --> 00:06:09.840
+org-webring is available
+
+00:06:09.840 --> 00:06:12.000
+on the SourceHut website or in the README
+
+00:06:12.000 --> 00:06:15.039
+file after you check it out
+from the git tree.
+
+00:06:15.039 --> 00:06:16.586
+There are so many ways to
+
+00:06:16.586 --> 00:06:18.240
+customize org-webring,
+
+00:06:18.240 --> 00:06:20.671
+as there are just as many variables
+
+00:06:20.671 --> 00:06:23.056
+as there are parts and components
+
+00:06:23.056 --> 00:06:25.759
+to org-webring for you to change.
+
+00:06:25.759 --> 00:06:27.759
+All of this is able to be done simply
+
+00:06:27.759 --> 00:06:31.600
+from that same manifest file.
+
+00:06:31.600 --> 00:06:33.919
+Now, taking a moment to examine some of
+
+00:06:33.919 --> 00:06:35.759
+the org-webring code,
+
+00:06:35.759 --> 00:06:37.840
+you can see it is all done in the same
+
+00:06:37.840 --> 00:06:40.160
+Elisp that everybody else is used to.
+
+00:06:40.160 --> 00:06:43.120
+Now, admittedly, my Elisp is not as
+
+00:06:43.120 --> 00:06:45.977
+strong as probably somebody else's,
+
+00:06:45.977 --> 00:06:48.678
+so if you are an Elisp ninja,
+
+00:06:48.678 --> 00:06:50.479
+please feel free to
+
+00:06:50.479 --> 00:06:52.633
+send a contribution or a patch
+
+00:06:52.633 --> 00:06:54.880
+and tell me what I'm doing wrong.
+
+00:06:54.880 --> 00:06:56.836
+I am not going to be offended
+
+00:06:56.836 --> 00:06:58.233
+by that at all. I would love to
+
+00:06:58.233 --> 00:06:59.982
+see this code to improve.
+
+00:06:59.982 --> 00:07:04.160
+Otherwise, I don't think it's half bad,
+
+00:07:04.160 --> 00:07:06.800
+considering that my experience with
+
+00:07:06.800 --> 00:07:08.880
+Lisps is usually in Scheme.
+
+00:07:08.880 --> 00:07:10.774
+Me moving from Scheme to Elisp
+
+00:07:10.774 --> 00:07:13.680
+was not all that hard.
+
+00:07:13.680 --> 00:07:17.120
+Taking the syntax apart,
+
+00:07:17.120 --> 00:07:20.880
+we're able to see that we can
+
+00:07:20.880 --> 00:07:23.331
+fetch URLs, which are then
+
+00:07:23.331 --> 00:07:26.505
+parsed and filtered, sorted, and then
+
+00:07:26.505 --> 00:07:29.151
+kind of reverse-sorted, rather,
+
+00:07:29.151 --> 00:07:32.960
+to get you to the web ring result.
+
+00:07:32.960 --> 00:07:34.639
+All of this is then passed through
+
+00:07:34.639 --> 00:07:37.840
+different parts of the xmlgen.el
+
+00:07:37.840 --> 00:07:40.280
+functions which gets you that HTML
+
+00:07:40.280 --> 00:07:43.520
+that you saw earlier.
+
+00:07:43.520 --> 00:07:45.599
+org-webring is fully free software
+
+00:07:45.599 --> 00:07:47.440
+distributed under the GNU General Public
+
+00:07:47.440 --> 00:07:49.280
+License versions 3 or later.
+
+00:07:49.280 --> 00:07:52.000
+At your option, I love accepting patches
+
+00:07:52.000 --> 00:07:53.120
+and collaborating.
+
+00:07:53.120 --> 00:07:55.166
+I hope you will consider
+using org-webring.
+
+00:07:55.166 --> 00:07:56.720
+You can contact me on
+
+00:07:56.720 --> 00:07:59.390
+Freenode, OFTC, or many other
+
+00:07:59.390 --> 00:08:01.520
+IRC networks at brettgillio,
+
+00:08:01.520 --> 00:08:05.120
+or email me at brettg@gnu.org.
+
+00:08:05.120 --> 00:08:09.327
+Thanks so much to Amin Bandali and the
+EmacsConf organizers,
+
+00:08:09.327 --> 00:08:13.840
+and to you, the audience, thanks.