0:00:01.120,0:00:04.560
hi my name is brett gillio
0:00:03.120,0:00:05.920
and today i'll be sharing a project that
0:00:04.560,0:00:07.520
several people and i've been working on
0:00:05.920,0:00:08.480
for the past few months called org
0:00:07.520,0:00:10.559
webbery
0:00:08.480,0:00:12.240
the essential idea behind org webbering
0:00:10.559,0:00:13.679
is to take the power of creating a
0:00:12.240,0:00:15.360
website with org mode
0:00:13.679,0:00:17.520
and its built-in features to control
0:00:15.360,0:00:19.119
html and xml output
0:00:17.520,0:00:22.080
and utilize it to share blogs git
0:00:19.119,0:00:22.640
commits or other rss or atom static feed
0:00:22.080,0:00:25.920
content
0:00:22.640,0:00:28.560
to share directly with your audiences
0:00:25.920,0:00:30.000
my website is created entirely using org
0:00:28.560,0:00:31.679
mode and i love the amount of
0:00:30.000,0:00:34.079
flexibility it offers me while keeping
0:00:31.679,0:00:35.920
everything quite simple
0:00:34.079,0:00:37.600
i am able to put information about
0:00:35.920,0:00:40.079
myself a blog
0:00:37.600,0:00:42.879
and my org web ring tool directly on on
0:00:40.079,0:00:44.640
the home page using symbol org syntax
0:00:42.879,0:00:46.239
as you can see i am currently displaying
0:00:44.640,0:00:48.239
three posts on my website
0:00:46.239,0:00:49.840
the first is the geeksday announcement
0:00:48.239,0:00:51.039
the second is a quarterly financial
0:00:49.840,0:00:52.320
update from sourcehut
0:00:51.039,0:00:54.480
and the third is a post from
0:00:52.320,0:00:55.120
drewdevault's blog drew devault by the
0:00:54.480,0:00:57.680
way
0:00:55.120,0:00:59.039
his open ring is what helped inspire
0:00:57.680,0:01:01.359
what is today or
0:00:59.039,0:01:03.440
web ring all this information is
0:01:01.359,0:01:05.360
gathered using a sort of manifest file
0:01:03.440,0:01:07.040
that org web ring will use to acquire
0:01:05.360,0:01:07.760
and place the information in the correct
0:01:07.040,0:01:10.000
format
0:01:07.760,0:01:10.799
according to your specification
0:01:10.000,0:01:11.840
additionally
0:01:10.799,0:01:14.159
you can see that the geeksday
0:01:11.840,0:01:16.000
announcement is post is pinned
0:01:14.159,0:01:17.200
stylization is likewise controlled by
0:01:16.000,0:01:18.960
using css
0:01:17.200,0:01:20.720
you can add nice subtle color changes on
0:01:18.960,0:01:23.759
mouse hover or control the size of the
0:01:20.720,0:01:26.080
flexboxes all using standard css
0:01:23.759,0:01:28.320
let's examine a simple scenario of using
0:01:26.080,0:01:30.400
org webroom
0:01:28.320,0:01:32.000
after you have org webbing installed
0:01:30.400,0:01:33.759
you'll be able to create a manifest file
0:01:32.000,0:01:35.680
that looks something like this
0:01:33.759,0:01:37.840
this particular manifest file is an
0:01:35.680,0:01:39.520
example offered in the repository under
0:01:37.840,0:01:41.200
the assets directory
0:01:39.520,0:01:42.640
please feel free to utilize them as a
0:01:41.200,0:01:44.399
starting point if you are interested in
0:01:42.640,0:01:46.320
using org web ring
0:01:44.399,0:01:48.640
as you can see here we are able to place
0:01:46.320,0:01:50.479
an rss or atom feed in this file and
0:01:48.640,0:01:51.920
specify information about the feed we
0:01:50.479,0:01:54.640
wish to produce
0:01:51.920,0:01:56.159
for example the total number of items
0:01:54.640,0:01:57.439
and the total number of entries per
0:01:56.159,0:01:59.439
source item
0:01:57.439,0:02:00.960
additionally you're able to filter posts
0:01:59.439,0:02:02.079
you feel would not be relevant to your
0:02:00.960,0:02:04.079
web ring
0:02:02.079,0:02:09.840
we can take this example file and run
0:02:04.079,0:02:09.840
the dispatch and see the result
0:02:13.120,0:02:17.760
the web ring displays a proper summary
0:02:15.280,0:02:19.599
set to a character limit you can specify
0:02:17.760,0:02:21.520
additionally all the links in the web
0:02:19.599,0:02:22.560
ring are navigable and will open in a
0:02:21.520,0:02:24.239
new tab
0:02:22.560,0:02:25.920
that way if someone wishes to view the
0:02:24.239,0:02:30.319
content they simply need to
0:02:25.920,0:02:32.879
click on the title or their source name
0:02:30.319,0:02:34.800
now this particular example is not
0:02:32.879,0:02:37.120
stylized because we have not given the
0:02:34.800,0:02:38.720
website a css file to reference
0:02:37.120,0:02:40.319
let's examine what is happening from
0:02:38.720,0:02:43.040
behind the scenes a little bit
0:02:40.319,0:02:43.360
from inside of the org mode file let's
0:02:43.040,0:02:46.959
run
0:02:43.360,0:02:46.959
the org web ring function
0:02:48.800,0:02:54.239
as you can see it takes that xml file
0:02:51.280,0:02:56.080
and processes it into the correct html
0:02:54.239,0:02:58.080
you will then be able to embed this org
0:02:56.080,0:03:00.080
function into another org file to be
0:02:58.080,0:03:02.840
able to display it on your website
0:03:00.080,0:03:05.440
pretty neat let's look at an at another
0:03:02.840,0:03:07.360
example
0:03:05.440,0:03:09.519
on my website we have an example of
0:03:07.360,0:03:10.800
using org webbring to reply to another
0:03:09.519,0:03:12.480
blog post
0:03:10.800,0:03:14.640
what i have here is a post from drew to
0:03:12.480,0:03:16.239
vault's blog it is showcased clearly at
0:03:14.640,0:03:19.040
the top as a single entry
0:03:16.239,0:03:20.800
and you can see it is pinned the pinning
0:03:19.040,0:03:22.400
functionality ensures that this post is
0:03:20.800,0:03:23.120
moved to the front of the hypothetical
0:03:22.400,0:03:25.760
web ring
0:03:23.120,0:03:27.599
and guaranteeing its visibility this is
0:03:25.760,0:03:29.840
then coupled with a few changes such as
0:03:27.599,0:03:31.120
disabling the generation time
0:03:29.840,0:03:33.280
which would not be relevant to the
0:03:31.120,0:03:34.000
readers and a change of the text in the
0:03:33.280,0:03:37.040
header
0:03:34.000,0:03:39.599
to demonstrate is indeed used as a reply
0:03:37.040,0:03:42.319
an example of this is also provided in
0:03:39.599,0:03:44.799
the assets directory
0:03:42.319,0:03:45.519
last we can use org webbring as a blog
0:03:44.799,0:03:47.599
planet
0:03:45.519,0:03:49.360
which is one of my favorites this takes
0:03:47.599,0:03:51.120
after the emax life planet which i
0:03:49.360,0:03:53.200
believe is moderated by sasha
0:03:51.120,0:03:54.720
and others as well as the haskell and
0:03:53.200,0:03:56.959
ocamoplanets
0:03:54.720,0:03:58.879
a planet for the uninitiated is a
0:03:56.959,0:04:00.159
curated form of content sharing about a
0:03:58.879,0:04:02.400
set of topics
0:04:00.159,0:04:03.439
the max life haskell and ocampo planets
0:04:02.400,0:04:05.920
as their names imply
0:04:03.439,0:04:07.200
cover emacs haskell and ocampo blogs
0:04:05.920,0:04:09.680
respectively
0:04:07.200,0:04:11.360
likewise my planet covers programming
0:04:09.680,0:04:12.239
language theory and category theory
0:04:11.360,0:04:13.920
primarily
0:04:12.239,0:04:15.840
it works in essentially the same way as
0:04:13.920,0:04:17.519
the org web ring you provide it with a
0:04:15.840,0:04:20.000
list of feeds that get parsed
0:04:17.519,0:04:21.919
however unlike the web ring the planet
0:04:20.000,0:04:23.040
function has no limits on the number of
0:04:21.919,0:04:24.639
entries per source
0:04:23.040,0:04:27.600
and the display number of posts is
0:04:24.639,0:04:29.759
increased significantly
0:04:27.600,0:04:30.720
the syndicates or sources have their
0:04:29.759,0:04:32.639
feeds shown
0:04:30.720,0:04:33.759
visibly to users who may wish to fetch
0:04:32.639,0:04:35.440
them
0:04:33.759,0:04:37.040
a planet is typically meant to be a
0:04:35.440,0:04:38.639
standalone page and not something you
0:04:37.040,0:04:39.440
would embed in another page like a web
0:04:38.639,0:04:41.680
ring
0:04:39.440,0:04:43.600
all this is provided under a single file
0:04:41.680,0:04:45.280
in the org web ring package as the code
0:04:43.600,0:04:48.240
reuse is quite high
0:04:45.280,0:04:49.840
aside from my own website we can view
0:04:48.240,0:04:52.400
the org web ring being used in neat
0:04:49.840,0:04:54.320
context with varying stylizations
0:04:52.400,0:04:57.680
here's a nice example from mikhail
0:04:54.320,0:05:00.000
kirilov at w96k.ru
0:04:57.680,0:05:00.960
featuring a four symmetrical flexbox
0:05:00.000,0:05:02.720
layout
0:05:00.960,0:05:04.720
an appropriate russian language timing
0:05:02.720,0:05:07.360
coding which can be also set in the org
0:05:04.720,0:05:09.600
web ring manifest
0:05:07.360,0:05:10.400
another is an example from camilo mesa
0:05:09.600,0:05:13.280
gayete
0:05:10.400,0:05:14.320
using ox hugo with org webring and
0:05:13.280,0:05:15.840
likewise correct
0:05:14.320,0:05:17.680
features the correct spanish time
0:05:15.840,0:05:22.240
encoding
0:05:17.680,0:05:24.400
last my other website workircd.org
0:05:22.240,0:05:26.560
shows the web ring being used in
0:05:24.400,0:05:27.440
combination with ocamo's tool link
0:05:26.560,0:05:31.440
supalt
0:05:27.440,0:05:31.440
to fetch git logs for that project
0:05:32.800,0:05:36.320
you may obtain org web ring directly
0:05:34.639,0:05:37.039
from source hut and add it to your load
0:05:36.320,0:05:39.639
path
0:05:37.039,0:05:40.800
additionally you will need to obtain
0:05:39.639,0:05:43.280
xmlgen.el
0:05:40.800,0:05:44.960
which is unfortunately not yet on alpha
0:05:43.280,0:05:46.800
although i have been trying to get this
0:05:44.960,0:05:49.840
rectified so i do not have to rewrite
0:05:46.800,0:05:51.759
org web brings xml to html parser
0:05:49.840,0:05:54.000
or if you're one of the cool kids using
0:05:51.759,0:06:06.319
my favorite package manager gnu geeks
0:05:54.000,0:06:08.800
you can obtain it like so
0:06:06.319,0:06:09.840
all of the documentation for org web
0:06:08.800,0:06:12.000
ring is available
0:06:09.840,0:06:13.840
on the sourceup website or in the readme
0:06:12.000,0:06:15.039
file after you check it out from the get
0:06:13.840,0:06:17.360
tree
0:06:15.039,0:06:18.240
there are so many ways to customize org
0:06:17.360,0:06:20.880
web ring
0:06:18.240,0:06:21.520
as there are just as many variables as
0:06:20.880,0:06:24.319
there are
0:06:21.520,0:06:25.759
parts and components to org web ring for
0:06:24.319,0:06:27.759
you to change
0:06:25.759,0:06:31.520
all of this is able to be done simply
0:06:27.759,0:06:31.520
from that same manifest file
0:06:31.600,0:06:35.759
now taking a moment to examine some of
0:06:33.919,0:06:37.840
the org web ring code
0:06:35.759,0:06:40.160
you can see it is all done in the same
0:06:37.840,0:06:43.120
e-lisp that everybody else is used to
0:06:40.160,0:06:43.919
now admittedly my e-lisp is not as
0:06:43.120,0:06:47.120
strong as
0:06:43.919,0:06:50.479
probably somebody else's so if you are
0:06:47.120,0:06:53.280
an e-lisp ninja please feel free to
0:06:50.479,0:06:54.880
send a contribution or a patch and tell
0:06:53.280,0:06:57.039
me what i'm doing wrong
0:06:54.880,0:06:58.639
it's i am not going to be offended by
0:06:57.039,0:06:59.360
that at all i would love to see this
0:06:58.639,0:07:02.560
code to
0:06:59.360,0:07:04.160
improve otherwise i don't think it's
0:07:02.560,0:07:06.800
half bad
0:07:04.160,0:07:08.880
considering that my experience with
0:07:06.800,0:07:11.280
lisps is usually in scheme
0:07:08.880,0:07:13.680
me moving from scheme to e-lisp was not
0:07:11.280,0:07:17.120
all that hard
0:07:13.680,0:07:20.880
taking the syntax apart
0:07:17.120,0:07:24.240
we're able to see that we can
0:07:20.880,0:07:27.680
fetch urls which are then parsed and
0:07:24.240,0:07:28.479
filtered sorted and then kind of reverse
0:07:27.680,0:07:32.960
sorted
0:07:28.479,0:07:34.639
rather to get you to the web ring result
0:07:32.960,0:07:37.840
all of this is then passed through
0:07:34.639,0:07:40.639
different parts of the xmlgen.el
0:07:37.840,0:07:43.360
functions which gets you that html that
0:07:40.639,0:07:43.360
you saw earlier
0:07:43.520,0:07:47.440
org webbring is fully free software
0:07:45.599,0:07:49.280
distributed under the gnu general public
0:07:47.440,0:07:52.000
license versions three or later
0:07:49.280,0:07:53.120
at your option i love accepting patches
0:07:52.000,0:07:54.319
and collaborating
0:07:53.120,0:07:56.720
i hope you will consider using
0:07:54.319,0:07:59.759
orawebring you can contact me on
0:07:56.720,0:08:01.520
freenode oftc or many other ioc irc
0:07:59.759,0:08:05.120
networks at brettgillio
0:08:01.520,0:08:07.759
or email me at brettgee gnu.org
0:08:05.120,0:08:08.720
thanks so much to amin bendali and the
0:08:07.759,0:08:11.120
emacs cough
0:08:08.720,0:08:13.840
organizers and to you the audience
0:08:11.120,0:08:13.840
thanks