summaryrefslogblamecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.sbv
blob: 23334b94e1e327af5a92f59249f35a846639daa3 (plain) (tree)
1
2
3
4
5
6
7
8



                          
                                        

                       
                                       





































                                        
                             







                                      
                                  










                                       
                                        

























































































































































































































                                        
                                       























































                                        
                                  

























                                       
                                    























































































































































                                        
                                       

                       
                                     















































































                                        
                       

                       
                                     

                       
                                    




                       
                                    























































                                        
                                       




                       
                              
















                                      
           






                                  
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