Blogdiggity is a minimalist Rails Blog powered by Git (Github in particular) and Asciidoc. The premise behind Blogdiggity is that you should never have redeploy your app to add, modify or delete blog entries. We (the Integrallis Team) are sick of dealing with database-driven blog engines. In most cases they are slow and bloated and try to become mini-application frameworks which ends up feeling pretty invasive. Blogdiggity deals with one format and one format only; AsciiDoc (http://www.methods.co.nz/asciidoc/). When you add, remove or make changes to an article on the repo, those changes are automatically reflected on your site using the magic of Github post receive hooks (https://help.github.com/articles/post-receive-hooks). Articles are never stored on your app’s db. They are read directly from the repo, rendered into HTML using AsciiDoctor (/~https://github.com/asciidoctor/asciidoctor) and cached until a post receive hook invalidates the cache, making page loads very fast!
"AsciiDoc is a text document format for writing notes, documentation, articles, books, ebooks, slideshows, web pages, man pages and blogs. AsciiDoc files can be translated to many formats including HTML, PDF, EPUB, man page.
AsciiDoc is highly configurable: both the AsciiDoc source file syntax and the backend output markups (which can be almost any type of SGML/XML markup) can be customized and extended by the user."
-
Visit /~https://github.com/settings/applications to register your application. Select "Register new application"
-
Set "Callback URL" to http://<your-site>/auth/github/callback
(/~https://github.com/laserlemon/figaro) Add /config/application.yml with the following contents:
GITHUB_KEY: xxxxxxxxxxx
GITHUB_SECRET: xxxxxxxxxx
-
Create a Foreman .env file at the root of the project with you Github Credentials to be able to use OAuth
GITHUB_KEY=xxxxx
GITHUB_SECRET=xxxxx
on your Rails application by modifying your routes file:
Rails.application.routes.draw do
mount Blogdiggity::Engine => "/blog", as: "blog"
end
Blogdiggity provides a few admin views that you will use to configure which repositories contain articles to be published.
This admin page allows an author to register as a contributor to the blog.
Sample repos (that can be forked for testing) are available at:
<% Blogdiggity::Page.each do |page| %>
<tr>
<td><%= page.title %></td>
<td><%= link_to "/#{page.slug}", page.slug %></td>
</tr>
<% end %>
-
Automatically available at /pages.xml
-
Consistent with the Sitemap 0.9 (http://www.sitemaps.org/) protocol specification
Coming soon! Other assets relative to the page (images / pdfs / etc) are extracted and cached on Amazon S3. The same cache invalidation mechanism is used to refresh the external S3 assets
I’ve used proxylocal (https://proxylocal.com) to expose local application to the outside world.
$ proxylocal 3000
Local server on port 3000 is now publicly available via:
http://fp9k.t.proxylocal.com/