tychoish <ga...@tychoish.com> writes: > On Wed, Dec 07, 2011 at 10:50:52PM +0530, Puneeth Chaganti wrote: >> I have a system, that does most of what you are looking for. >> >> https://github.com/punchagan/blog-files >> >> Though it seems to be a little more complicated than it needs to be, >> it works for me and I haven't had the time and motivation to simplify >> it. > > > This is a commentary on the entire thread rather than on this specific > suggestion (though it's applicable here.) > > All of these "take a git repo with text files in a lightweight markup > language (e.g. markdown, org, rst, etc.) and build a blog/website" tools > have this major flaw and there's no good solution: > > They rebuild all pages in the site every time you update the site. Which > doesn't matter at all when you have 10 posts, but when you have a > hundred posts you notice the rebuild process, and by the time you have > 1000-1500 posts, its totally unusable. Every time you fix a comma it > takes 1-3 minutes and nearly OOMs a VPS system to fix. > > So what's the solution? > > - Incremental builds > - Cached build elements. > - make-style dependency checking. > - indexes (for tags, archives, etc.) that are > > The truth is that the part of the pipe that handles the filtering of the > text is important, but is not particularly central or crucial in the > grand scheme of the usability of this kind of application. > > Cheers, > sam >
Note that regular Org-mode projects [1] do *not* re-publish every single page after an update, but rather only publish pages which have changed since the previous publish. Thus a git repository with a pos-update hook which runs `org-publish' in a batch Emacs session does a good job of publishing updates without having to re-publish the entire site. This is the approach taken for my lab's wiki [2], which is just a git repository [3] with a post-update hook and a couple of helper scripts [4] which re-publish updated pages after every commit. Best, Footnotes: [1] http://orgmode.org/manual/Publishing.html [2] http://wiki.adaptive.cs.unm.edu [3] http://gitweb.adaptive.cs.unm.edu/wiki.git [4] http://gitweb.adaptive.cs.unm.edu/wiki.git/tree/HEAD:/data -- Eric Schulte http://cs.unm.edu/~eschulte/