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