mupuf.org // we are octopimupuf.org

Mupuf.org V3: Exploiting the Full Power of Octopress

After a very long period of stagnation and an accumulation of hacks to support the growth of our Web needs, our website has finally had a full revamp. We’ve hacked our own Octopress theme and updated virtually all the content, hosting more projects than ever before!

A Fresh Style for the Octopi Headquarters

The most noticeable change, obviously, is a brand new style for the website, with its own octopus-featuring landing page and a clearer layout imagined to give our posts the feel of real documents, and to make the position and separation of various items more consistent.

We’re very happy that all the contents of this theme are free and open source, including a photo from Morten Brekkevold under Creative Common Attribution ShareAlike 2.0, and a couple icons from the Elementary theme, under the GNU General Public License.

We will be releasing the theme in a couple months, after the much-needed research section is further developed and after I try to deploy it for another website (so as to check it actually is self-contained and no hardcoded octopusness remains).

Here, Have Some Plugins!

It’s hard to make a full list of the changes I’ve made to our codebase over the past 6 months, but I should at least mention that I modified Dave Perrett’s author generator plugin for it to support multiple authors written as an array, as well as writing the code that supports this in our own theme. I’m documenting it here as I might forget to include the plugin when we release the theme.

def write_author_indexes
  if self.layouts.key? 'author_index'
    dir = self.config['author_dir'] || 'authors'        
    self.posts.each do |post|
      post_authors = post.data["author"]
      if post_authors.kind_of?(Array)
        post_authors.each do |author|              
          self.write_author_index(File.join(dir, author.downcase.delete("^a-zA-Z0-9")), author)
        end
      else
        post_authors.each_line(',') do |author|              
          self.write_author_index(File.join(dir, author.downcase.delete("^a-zA-Z0-9")), author)
        end
      end
    end
  # Throw an exception if the layout couldn't be found.
  else
    throw "No 'author_index' layout found."
  end
end

Projects Listing Overhaul

Traditionally, the projects section only really spoke about code hosted by Denis and Martin on the website. It turns out that we’ve contributed to FOSS much more than that, and it was about time we updated this section. You can now find our (Martin’s) currently maintained code, as well as archives of projects that have been discontinued or taken over, and of course links to the Free Software we were or are contributors of!

We will be including selected pieces from good old PIGA OS in the future, and hosting them there as well.

Feedback is Welcome

Do you have any comments? Did you spot a bug? Does something render poorly with your favourite browser/fonts/settings? Please leave us a comment below and we’ll get back to you!

Comments