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