The Library Basement
Reading under ground

Category meta

Pelican Implementation

In this post I'll share some of the implementation details for converting this blog from WordPress to Pelican. The process was not difficult, but it did require a bit of figuring to get everything right. Luckily Pelican has good documentation.

File import

Pelican comes with an importer for WordPress XML, so that made things nice and easy. I simply exported from my site and re-imported it into Pelican, converting to Markdown. One thing about the Markdown conversion that did not go well was that the "alt" text of images did not come through correctly. I think this was due to an alternate syntax for links being used by the converter.

Post URL format

I used the /year/month/day/slug format for my WordPress posts (e.g. "http://example.com/2014/03/21/pelican-implementation"). By default Pelican saves the output HTML in a flat structure. If you care about preserving links, this won't do. I used the settings ARTICLE_URL and ARTICLE_URL_SAVEAS to get Pelican to match the output. There are two ways you can go with the SAVEAS setting. Either you can put an index.html file inside the folder path (e.g. /2014/03/21/pelican-implementation/index.html), or you can use some sort of rewrite rule in your web server to point the clean path to the HTML in question. I went with the fool-proof index file method. Here are my versions of these settings:

ARTICLE_URL = '{date:%Y}/{date:%m}/{date:%d}/{slug}/'
ARTICLE_SAVE_AS = '{date:%Y}/{date:%m}/{date:%d}/{slug}/index.html'

Media

Wordpress sticks its uploads in the wp-content directory. You'll probably want to put those contents inside your "images" folder in your Pelican project, and then edit your imported posts to re-point the paths. I used the following to edit the files in place:

for f in *.md; do sed -i "s/wp-content\/uploads/images/g" $f; done

Voila!

Etc.

You can use git or another vcs to keep track both of your inputs and outputs. I'd use the following setting in your pelicanconf.py file to let Pelican know not to mess with git in your output directory:

OUTPUT_RETENTION = (".git")

The End

The majority of the time I spent on this project was on creating my own custom theme. Theming templates was easy with jinja. I am just bad at CSS. I tried to avoid JavaScript for the function of the page. It is only used in my analytics tracking code (Piwik). I also link to Google for some web fonts. But browsers will fall back if the visitor chooses to block remote @fontface calls.

That's it. Let me know if you have any questions.

Published:
Category: meta Tags: Pelican

Updated Platform

For quite some time I have been interested by the prospect of converting this blog to a static format. This has been for various reasons, ease of maintenance and security concerns being foremost. I tried various static blog generators, but found little to love in them.

But then some time in the past year I discovered Pelican and knew it was the platform for me. It's based on Python after all! So I had some aborted attempts at a conversion. In case you are wondering, converting a mature WordPress blog to another format is not always easy. Thankfully there is an import tool with Pelican, and a number of configurable options to help match the new environment to the old as much as possible.

I have endeavored to preserve links where prudent. So this includes links to posts, pages, and the syndicated feed. Links to categories, tags, and particular index pages may be broken.

The hardest part of this conversion required the decision to remove comments from posts. This blog will not be using a public commenting system in the future. Pelican offers Disqus, but that is not a solution I would prefer. If you would like to comment on a post, please email me, and I may add it to the site. I will see if I can develop a way to add existing comments back to their respective posts.

So that's it. Onward and upward.

Published:
Category: meta

On web analytics

Some time ago I began questioning the value of tracking viewership of this blog and my various other websites. Additionally I felt that tracking code was a bit invasive to my readers' privacy. So I disabled the Google Analytics tracking plugin and accepted that I would just be ignorant about my readership outside of comments. This sentiment coincides with a general trend of mine to stop relying on Google and other free service providers and roll my own services where possible. Yet I still wanted to know some general information about my visitors.

Enter Piwik, the free software analytics system. You can host it on a standard PHP/MySQL stack, so it is easy to roll your own. The data it collects stays with you. You can also configure it to provide better privacy for your readers, including anonymizing IP addresses and providing an opt-out feature. I installed it, loved it, and added it to all my sites. I am not storing the last two bytes of IP addresses, meaning the best I can do is narrow users down to a class B subnet.

So, yes, I am back on the analytics bandwagon.

Published:
Category: meta Tags: software

Apocrypha reading

This year I resolved to finally read the Christian Apocrypha. Growing up in a protestant church I never had any exposure to these books. As a result they were somewhat mysterious. I recall eagerly flipping the intertestamental pages the first time I encountered a Catholic Bible. For some reason I got the impression that because they were non-canonical they were not to be read. How silly.

So in setting out to read the Apocrypha, I realized I had to answer the question, "which Apocrypha?" The Roman Catholics, the Greek Orthodox, and the Russian Orthodox churches have their own arrangements. I decided to choose the Greek version. So here are the exact books I'll be reading:

  • Tobit
  • Judith
  • Additions to Esther
  • Wisdom of Solomon
  • Sirach
  • Baruch
  • Epistle of Jeremiah
  • Additions to Daniel
  • 1 Maccabees
  • 2 Maccabees
  • 1 Esdras
  • Prayer of Manasseh
  • Psalm 151
  • 3 Maccabees

As I make my way through, I will do occasional posts on what interests me in the reading.

Published:
Category: meta

Lectionary Radio redivivus

Lectionary Radio logoAs you may have noticed, I have started publishing Lectionary Radio again. There are a few changes from the last incarnation:

  • Instead of reading and commenting on all of the weekly readings, I'll be selecting just one.
  • I'll spend some time discussing current events surrounding Christianity, liturgy, and scripture.
  • The podcast will be hosted on the Library Basement instead of on my other website (which makes it easier for me).
  • I'll only be distributing the audio in MP3 format (sorry Ogg Vorbis fans).

The podcast feed stays the same, so anyone who may still be subscribed should start seeing new episodes in their podcatchers.

On surpassing 200 published posts

This is The Library Basement's 201st published post. However that number is far lower than the total number of online posts I have made. I got my start "blogging" in high school, before we knew the term. Since that time I'd wager I have put up at least 600-800 posts, and maybe even a thousand.

But I am fickle, and I delete a lot of stuff. I have not had that inclination so much lately, and perhaps that is because I am becoming more comfortable with who I am. But who knows, maybe I'll surpass 200 posts again in a year or two.

Published:
Category: meta

Coming soon: more reviews

I was contacted recently by a publicist for a Christian publishing company in response to some of my mini book reviews. The result is that I have received some review copies of new books in the mail. I plan on reading and posting about those books here shortly. Both of the titles I received look quite interesting. Stay tuned.

Published:
Category: meta

Quitting Lectionary Radio

Lately I have been failing to publish new episodes of Lectionary Radio in a timely fashion. The bottom line for me is that it takes more time and effort than I am motivated to expend for the project. So I'll be suspending publishing of the podcast.

Lectionary Radio

During my "Easter fast" I came up with the idea to start a podcast. The idea? I just read the coming Sunday's assigned lessons and provide a short comment. It does not sound hard, but it did take a good amount of work to put together, particularly in figuring out RSS feeds, and offering MP3 as well as Ogg Vorbis. But I digress . . .

Lectionary Radio IconI am pleased to present Lectionary Radio, a weekly podcast featuring the coming Sunday's scripture readings from the Revised Common Lectionary and discussion of those passages. The show will be published some time in the middle of each week so folks can have some time to listen to it before church on the weekend. I hope to interview guests in the future, but for now it is just me. The show is distributed under the Creative Commons Attribution/Share-alike license.

The audio quality is a bit questionably due to the first episode being recorded on my Sansa Clip. I'll see about better options for recording. In the course of editing I found that I say "ummm" a lot and have a rather stilted, Shatner-esque pacing to my impromptu speaking. Consequently I may just prepare a script for future episodes.

Please comment or email with feedback. Thanks!

(Yes, I know it is not Pentecost yet, so I have sorta broken my Easter blogging fast. But at least the first episode of Lectionary Radio has readings for Pentecost!)

Easter fast?

We were so busy during the past weeks that I feel like I have largely missed out on Lent. Now that Easter is upon us, I would like to make a more formal observance. But a fast for Easter? That does not make much sense. But I'll frame it another way: in celebration of Jesus' resurrection, I'll be forgoing blogging and social networking to focus on better things.

Therefore this blog will be fallow until Pentecost.

Published:
Category: meta

The Best Laid Plans (BibleTech 2011)

I had planned to attend the BibleTech conference this weekend. However Elias came down with his first-ever illness, so I thought it best to cancel my trip and help take care of him. As it happens, Weston's trip to the conference was also cancelled due to family exigencies, and so he was not able to give his talk about Open Scriptures.

I am pretty sad, because I have really been looking to going to this conference for a few years now. Oh well, better luck next year!

Published:
Category: meta Tags: technology

Copyright revisited

In graduate school I began some thought and writing on the subject of Christianity and Copyright. That resulted in some interesting class and online discussions, and it has been an important topic to me ever since. Now a few years later I'd like to revisit the subject. I'll be republishing some of my earlier writings on the subject in revised and expanded form. This will give me space to reflect on any changes of opinion I may have had, as well as to address the positive changes which are coming about in the world of Bible licensing. Look for posts to follow.

Dark Theme, New Font

I've re-themed the site with a dark color scheme. I've also changed the font-face to Vollkorn. Thoughts?

Published:
Category: meta

New line of demarcation

I realized that my previous blogging on my personal site has been quite diverse: Biblical studies, family stuff, politics, sports, technology, etc. So in order to make an easier read for everyone, I've decided the split my blogs in twain:

  • The Library Basement (this new site) will contain posts on Christian studies, culture, and society (including politics).
  • My personal site will contain posts on sports, technology, personal updates, etc.

You may want to read both, or perhaps you'll just want to stick with one or the other, depending on your interests.

Update: There is no more line of demarcation.

Published:
Category: meta

Categories

Tags