hi my name is brett gillio
and today I'll be sharing a project that
several people and I've been working on
for the past few months called org
webbery
the essential idea behind org webbering
is to take the power of creating a
website with org mode
and its built-in features to control
html and xml output
and utilize it to share blogs git
commits or other rss or atom static feed
content
to share directly with your audiences
my website is created entirely using org
mode and I love the amount of
flexibility it offers me while keeping
everything quite simple
I am able to put information about
myself a blog
and my org web ring tool directly on on
the home page using symbol org syntax
as you can see I am currently displaying
three posts on my website
the first is the geeksday announcement
the second is a quarterly financial
update from sourcehut
and the third is a post from
drewdevault's blog drew devault by the
way
his open ring is what helped inspire
what is today or
web ring all this information is
gathered using a sort of manifest file
that org web ring will use to acquire
and place the information in the correct
format
according to your specification
additionally
you can see that the geeksday
announcement is post is pinned
stylization is likewise controlled by
using css
you can add nice subtle color changes on
mouse hover or control the size of the
flexboxes all using standard css
let's examine a simple scenario of using
org webroom
after you have org webbing installed
you'll be able to create a manifest file
that looks something like this
this particular manifest file is an
example offered in the repository under
the assets directory
please feel free to utilize them as a
starting point if you are interested in
using org web ring
as you can see here we are able to place
an rss or atom feed in this file and
specify information about the feed we
wish to produce
for example the total number of items
and the total number of entries per
source item
additionally you're able to filter posts
you feel would not be relevant to your
web ring
we can take this example file and run
the dispatch and see the result
the web ring displays a proper summary
set to a character limit you can specify
additionally all the links in the web
ring are navigable and will open in a
new tab
that way if someone wishes to view the
content they simply need to
click on the title or their source name
now this particular example is not
stylized because we have not given the
website a css file to reference
let's examine what is happening from
behind the scenes a little bit
from inside of the org mode file let's
run
the org web ring function
as you can see it takes that xml file
and processes it into the correct html
you will then be able to embed this org
function into another org file to be
able to display it on your website
pretty neat let's look at an at another
example
on my website we have an example of
using org webbring to reply to another
blog post
what I have here is a post from drew to
vault's blog it is showcased clearly at
the top as a single entry
and you can see it is pinned the pinning
functionality ensures that this post is
moved to the front of the hypothetical
web ring
and guaranteeing its visibility this is
then coupled with a few changes such as
disabling the generation time
which would not be relevant to the
readers and a change of the text in the
header
to demonstrate is indeed used as a reply
an example of this is also provided in
the assets directory
last we can use org webbring as a blog
planet
which is one of my favorites this takes
after the emax life planet which I
believe is moderated by sasha
and others as well as the haskell and
ocamoplanets
a planet for the uninitiated is a
curated form of content sharing about a
set of topics
the max life haskell and ocampo planets
as their names imply
cover Emacs haskell and ocampo blogs
respectively
likewise my planet covers programming
language theory and category theory
primarily
it works in essentially the same way as
the org web ring you provide it with a
list of feeds that get parsed
however unlike the web ring the planet
function has no limits on the number of
entries per source
and the display number of posts is
increased significantly
the syndicates or sources have their
feeds shown
visibly to users who may wish to fetch
them
a planet is typically meant to be a
standalone page and not something you
would embed in another page like a web
ring
all this is provided under a single file
in the org web ring package as the code
reuse is quite high
aside from my own website we can view
the org web ring being used in neat
context with varying stylizations
here's a nice example from mikhail
kirilov at w96k.ru
featuring a four symmetrical flexbox
layout
an appropriate russian language timing
coding which can be also set in the org
web ring manifest
another is an example from camilo mesa
gayete
using ox hugo with org webring and
likewise correct
features the correct spanish time
encoding
last my other website workircd.org
shows the web ring being used in
combination with ocamo's tool link
supalt
to fetch git logs for that project
you may obtain org web ring directly
from source hut and add it to your load
path
additionally you will need to obtain
xmlgen.el
which is unfortunately not yet on alpha
although I have been trying to get this
rectified so I do not have to rewrite
org web brings xml to html parser
or if you're one of the cool kids using
my favorite package manager gnu geeks
you can obtain it like so
all of the documentation for org web
ring is available
on the sourceup website or in the readme
file after you check it out from the get
tree
there are so many ways to customize org
web ring
as there are just as many variables as
there are
parts and components to org web ring for
you to change
all of this is able to be done simply
from that same manifest file
now taking a moment to examine some of
the org web ring code
you can see it is all done in the same
e-lisp that everybody else is used to
now admittedly my e-lisp is not as
strong as
probably somebody else's so if you are
an e-lisp ninja please feel free to
send a contribution or a patch and tell
me what I'm doing wrong
it's I am not going to be offended by
that at all I would love to see this
code to
improve otherwise I don't think it's
half bad
considering that my experience with
lisps is usually in scheme
me moving from scheme to e-lisp was not
all that hard
taking the syntax apart
we're able to see that we can
fetch urls which are then parsed and
filtered sorted and then kind of reverse
sorted
rather to get you to the web ring result
all of this is then passed through
different parts of the xmlgen.el
functions which gets you that html that
you saw earlier
org webbring is fully free software
distributed under the gnu general public
license versions three or later
at your option I love accepting patches
and collaborating
I hope you will consider using
orawebring you can contact me on
freenode oftc or many other ioc irc
networks at brettgillio
or email me at brettgee gnu.org
thanks so much to amin bendali and the
Emacs cough
organizers and to you the audience
thanks