blob: 672f36de7e21be8e43d5d78e9a84297dca588bab (
plain) (
tree)
|
|
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've been working on
00:00:05.920 --> 00:00:07.520
for the past few months called org
00:00:07.520 --> 00:00:08.480
webbery
00:00:08.480 --> 00:00:10.559
the essential idea behind org webbering
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.080
commits or other rss or atom static feed
00:00:22.080 --> 00:00:22.640
content
00:00:22.640 --> 00:00:25.920
to share directly with your audiences
00:00:25.920 --> 00:00:28.560
my website is created entirely using org
00:00:28.560 --> 00:00:30.000
mode and 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 web ring tool directly on on
00:00:40.079 --> 00:00:42.879
the home page using symbol 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 geeksday 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:54.480
drewdevault's blog drew devault by the
00:00:54.480 --> 00:00:55.120
way
00:00:55.120 --> 00:00:57.680
his open ring is what helped inspire
00:00:57.680 --> 00:00:59.039
what is today or
00:00:59.039 --> 00:01:01.359
web ring 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 web ring will use to acquire
00:01:05.360 --> 00:01:07.040
and place the information in the correct
00:01:07.040 --> 00:01:07.760
format
00:01:07.760 --> 00:01:10.000
according to your specification
00:01:10.000 --> 00:01:10.799
additionally
00:01:10.799 --> 00:01:11.840
you can see that the geeksday
00:01:11.840 --> 00:01:14.159
announcement is post is pinned
00:01:14.159 --> 00:01:16.000
stylization is likewise controlled by
00:01:16.000 --> 00:01:17.200
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:26.080
let's examine a simple scenario of using
00:01:26.080 --> 00:01:28.320
org webroom
00:01:28.320 --> 00:01:30.400
after you have org webbing 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 web ring
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:00.960
you feel would not be relevant to your
00:02:00.960 --> 00:02:02.079
web ring
00:02:02.079 --> 00:02:04.079
we can take this example file and run
00:02:04.079 --> 00:02:13.120
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.599
additionally all the links in the web
00:02:19.599 --> 00:02:21.520
ring are navigable and will open in a
00:02:21.520 --> 00:02:22.560
new tab
00:02:22.560 --> 00:02:24.239
that way if someone wishes to view the
00:02:24.239 --> 00:02:25.920
content 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:43.040
from inside of the org mode file let's
00:02:43.040 --> 00:02:43.360
run
00:02:43.360 --> 00:02:48.800
the org web ring 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:56.080
you will then be able to embed this org
00:02:56.080 --> 00:02:58.080
function into another org file to be
00:02:58.080 --> 00:03:00.080
able to display it on your website
00:03:00.080 --> 00:03:02.840
pretty neat let's look at an at another
00:03:02.840 --> 00:03:05.440
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 webbring to reply to another
00:03:09.519 --> 00:03:10.800
blog post
00:03:10.800 --> 00:03:12.480
what I have here is a post from drew to
00:03:12.480 --> 00:03:14.640
vault'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:19.040
and you can see it is pinned the pinning
00:03:19.040 --> 00:03:20.800
functionality ensures that this post is
00:03:20.800 --> 00:03:22.400
moved to the front of the hypothetical
00:03:22.400 --> 00:03:23.120
web ring
00:03:23.120 --> 00:03:25.760
and guaranteeing its visibility this is
00:03:25.760 --> 00:03:27.599
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.120
which would not be relevant to the
00:03:31.120 --> 00:03:33.280
readers and a change of the text in the
00:03:33.280 --> 00:03:34.000
header
00:03:34.000 --> 00:03:37.040
to demonstrate 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.799
last we can use org webbring as a blog
00:03:44.799 --> 00:03:45.519
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 emax life planet which I
00:03:49.360 --> 00:03:51.120
believe is moderated by sasha
00:03:51.120 --> 00:03:53.200
and others as well as the haskell and
00:03:53.200 --> 00:03:54.720
ocamoplanets
00:03:54.720 --> 00:03:56.959
a planet for the uninitiated is a
00:03:56.959 --> 00:03:58.879
curated form of content sharing about a
00:03:58.879 --> 00:04:00.159
set of topics
00:04:00.159 --> 00:04:02.400
the max life haskell and ocampo planets
00:04:02.400 --> 00:04:03.439
as their names imply
00:04:03.439 --> 00:04:05.920
cover Emacs haskell and ocampo blogs
00:04:05.920 --> 00:04:07.200
respectively
00:04:07.200 --> 00:04:09.680
likewise my planet covers programming
00:04:09.680 --> 00:04:11.360
language theory and category theory
00:04:11.360 --> 00:04:12.239
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 web ring 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:20.000
however unlike the web ring the planet
00:04:20.000 --> 00:04:21.919
function has no limits on the number of
00:04:21.919 --> 00:04:23.040
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:30.720
feeds shown
00:04:30.720 --> 00:04:32.639
visibly to users who may wish to fetch
00:04:32.639 --> 00:04:33.759
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:38.639
would embed in another page like a web
00:04:38.639 --> 00:04:39.440
ring
00:04:39.440 --> 00:04:41.680
all this is provided under a single file
00:04:41.680 --> 00:04:43.600
in the org web ring package as the code
00:04:43.600 --> 00:04:45.280
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 web ring being used in neat
00:04:49.840 --> 00:04:52.400
context with varying stylizations
00:04:52.400 --> 00:04:54.320
here's a nice example from mikhail
00:04:54.320 --> 00:04:57.680
kirilov at w96k.ru
00:04:57.680 --> 00:05:00.000
featuring a four symmetrical flexbox
00:05:00.000 --> 00:05:00.960
layout
00:05:00.960 --> 00:05:02.720
an appropriate russian language timing
00:05:02.720 --> 00:05:04.720
coding which can be also set in the org
00:05:04.720 --> 00:05:07.360
web ring manifest
00:05:07.360 --> 00:05:09.600
another is an example from camilo mesa
00:05:09.600 --> 00:05:10.400
gayete
00:05:10.400 --> 00:05:13.280
using ox hugo with org webring and
00:05:13.280 --> 00:05:14.320
likewise correct
00:05:14.320 --> 00:05:15.840
features the correct spanish time
00:05:15.840 --> 00:05:17.680
encoding
00:05:17.680 --> 00:05:22.240
last my other website workircd.org
00:05:22.240 --> 00:05:24.400
shows the web ring being used in
00:05:24.400 --> 00:05:26.560
combination with ocamo's tool link
00:05:26.560 --> 00:05:27.440
supalt
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 web ring directly
00:05:34.639 --> 00:05:36.320
from source hut and add it to your load
00:05:36.320 --> 00:05:37.039
path
00:05:37.039 --> 00:05:39.639
additionally you will need to obtain
00:05:39.639 --> 00:05:40.800
xmlgen.el
00:05:40.800 --> 00:05:43.280
which is unfortunately not yet on alpha
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 web brings 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 geeks
00:05:54.000 --> 00:06:06.319
you can obtain it like so
00:06:06.319 --> 00:06:08.800
all of the documentation for org web
00:06:08.800 --> 00:06:09.840
ring is available
00:06:09.840 --> 00:06:12.000
on the sourceup website or in the readme
00:06:12.000 --> 00:06:13.840
file after you check it out from the get
00:06:13.840 --> 00:06:15.039
tree
00:06:15.039 --> 00:06:17.360
there are so many ways to customize org
00:06:17.360 --> 00:06:18.240
web ring
00:06:18.240 --> 00:06:20.880
as there are just as many variables as
00:06:20.880 --> 00:06:21.520
there are
00:06:21.520 --> 00:06:24.319
parts and components to org web ring for
00:06:24.319 --> 00:06:25.759
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 web ring 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
e-lisp that everybody else is used to
00:06:40.160 --> 00:06:43.120
now admittedly my e-lisp is not as
00:06:43.120 --> 00:06:43.919
strong as
00:06:43.919 --> 00:06:47.120
probably somebody else's so if you are
00:06:47.120 --> 00:06:50.479
an e-lisp ninja please feel free to
00:06:50.479 --> 00:06:53.280
send a contribution or a patch and tell
00:06:53.280 --> 00:06:54.880
me what I'm doing wrong
00:06:54.880 --> 00:06:57.039
it's I am not going to be offended by
00:06:57.039 --> 00:06:58.639
that at all I would love to see this
00:06:58.639 --> 00:06:59.360
code to
00:06:59.360 --> 00:07:02.560
improve otherwise I don't think it's
00:07:02.560 --> 00:07:04.160
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:11.280
me moving from scheme to e-lisp was not
00:07:11.280 --> 00:07:13.680
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:24.240
fetch urls which are then parsed and
00:07:24.240 --> 00:07:27.680
filtered sorted and then kind of reverse
00:07:27.680 --> 00:07:28.479
sorted
00:07:28.479 --> 00:07:32.960
rather 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.639
functions which gets you that html that
00:07:40.639 --> 00:07:43.520
you saw earlier
00:07:43.520 --> 00:07:45.599
org webbring 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 three 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:54.319
I hope you will consider using
00:07:54.319 --> 00:07:56.720
orawebring you can contact me on
00:07:56.720 --> 00:07:59.759
freenode oftc or many other ioc irc
00:07:59.759 --> 00:08:01.520
networks at brettgillio
00:08:01.520 --> 00:08:05.120
or email me at brettgee gnu.org
00:08:05.120 --> 00:08:07.759
thanks so much to amin bendali and the
00:08:07.759 --> 00:08:08.720
Emacs cough
00:08:08.720 --> 00:08:11.120
organizers and to you the audience
00:08:11.120 --> 00:08:13.840
thanks
|