Fixed the example.

master
Jakub Stastny aka botanicus 2011-05-26 12:10:16 +02:00
parent cd2273da6f
commit e5fe48990d
15 changed files with 132 additions and 10 deletions

7
example/Gemfile Normal file
View File

@ -0,0 +1,7 @@
# encoding: utf-8
source :rubygems
gem "ace", path: ".."
gem "nokogiri"
gem "nake", group: "bundle"

26
example/Gemfile.lock Normal file
View File

@ -0,0 +1,26 @@
PATH
remote: ..
specs:
ace (0.3.2)
template-inheritance
GEM
remote: http://rubygems.org/
specs:
haml (3.1.1)
nake (0.0.8)
term-ansicolor
nokogiri (1.4.4)
template-inheritance (0.3)
haml
tilt
term-ansicolor (1.0.5)
tilt (1.3.1)
PLATFORMS
ruby
DEPENDENCIES
ace!
nake
nokogiri

3
example/README.textile Normal file
View File

@ -0,0 +1,3 @@
h1. About
This is a minimal example of a blog in Ace. If you want to see something real-world and probably more up to date, then check "sources":https://github.com/botanicus/blog.101ideas.cz of "my blog":http://blog.101ideas.cz.

View File

@ -1,7 +1,7 @@
# encoding: utf-8
require "nokogiri"
require "ace/filters"
require "ace/filters/template"
# Inheritted methods:
# - content

View File

@ -1,11 +1,11 @@
# encoding: utf-8
# The class represents all the tags, whereas
# the instance represents each single tag.
class Tag < Ace::Item
before Ace::TemplateFilter, layout: "tag.html"
end
class TagPagesGenerator
def tags
def self.tags
Post.instances.inject(Hash.new) do |buffer, post|
if tags = post.metadata[:tags]
tags.each do |tag|
@ -17,7 +17,7 @@ class TagPagesGenerator
end
end
def run
def self.generate
self.tags.each do |tag_title, items|
tag_name = tag_title.downcase.gsub(" ", "-")
metadata = {title: tag_title, timestamp: Time.now}

View File

@ -1,6 +1,8 @@
#!/usr/bin/env ace
#!/usr/bin/env bundle exec ace
# encoding: utf-8
# Execute this file to generate the web.
Dir["app/**/*.rb"].each do |file|
load file
end

View File

@ -1,6 +1,5 @@
---
title: Ruby Programming Language
timestamp: 2010-09-14
tags: ["Development", "Ruby"]
---

View File

@ -1,6 +1,5 @@
---
title: Node.js Asynchronous JavaScript Framework
timestamp: 2010-09-16
tags: ["Development", "JavaScript", "Node.js"]
---

View File

@ -0,0 +1,24 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head></head>
<body>
<div id='main'>
<h1>My Coooooool Bloogiiiiseeeeek!</h1>
<p class="excerpt">
Ruby is a dynamic, reflective, general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto. It was influenced primarily by Perl, Smalltalk, Eiffel, and Lisp.
</p>
<p>
Ruby supports multiple programming paradigms, including functional, object oriented, imperative and reflective. It also has a dynamic type system and automatic memory management; it is therefore similar in varying respects to Python, Perl, Lisp, Dylan, Pike, and CLU.
</p>
<p>
The standard 1.8.7 implementation is written in C, as a single-pass interpreted language. There is currently no specification of the Ruby language, so the original implementation is considered to be the de facto reference. As of 2010[update], there are a number of complete or upcoming alternative implementations of the Ruby language, including YARV, JRuby, Rubinius, IronRuby, MacRuby, and HotRuby, each of which takes a different approach, with IronRuby, JRuby and MacRuby providing just-in-time compilation and MacRuby also providing ahead-of-time compilation. The official 1.9 branch uses YARV, as will 2.0 (development), and will eventually supersede the slower Ruby MRI.
</p>
<p>
<em>From <a href="http://en.wikipedia.org/wiki/Ruby_%28programming_language%29">Wikipedia.org</em>.
</p>
</div>
</body>
</html>

View File

@ -0,0 +1,32 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head></head>
<body>
<div id='main'>
<h1>My Coooooool Bloogiiiiseeeeek!</h1>
<p class="excerpt">
Node.js is an evented I/O framework for the V8 JavaScript engine. It is intended for writing scalable network programs such as web servers.
</p>
<p>
Node.js is similar in purpose to Twisted for Python, Perl Object Environment for Perl, and EventMachine for Ruby. Unlike most JavaScript, it is not executed in a web browser, but it is rather related to server-side JavaScript. Node.js implements some CommonJS specifications[1]. Node.js includes a REPL environment for interactive testing.
</p>
<pre>
var sys = require('sys'),
http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World\n');
}).listen(8000);
sys.puts('Server running at http://127.0.0.1:8000/');
</pre>
<p>
<em>From <a href="http://en.wikipedia.org/wiki/Node.js">Wikipedia.org</em>.
</p>
</div>
</body>
</html>

View File

@ -4,8 +4,8 @@
<body>
<div id='main'>
<h1>My Coooooool Bloogiiiiseeeeek!</h1>
Node.js Asynchronous JavaScript Framework
Ruby Programming Language
Node.js Asynchronous JavaScript Framework
</div>
</body>
</html>

View File

@ -0,0 +1,10 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head></head>
<body>
<div id='main'>
<h1>My Coooooool Bloogiiiiseeeeek!</h1>
Node.js Asynchronous JavaScript Framework
</div>
</body>
</html>

View File

@ -0,0 +1,10 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head></head>
<body>
<div id='main'>
<h1>My Coooooool Bloogiiiiseeeeek!</h1>
Node.js Asynchronous JavaScript Framework
</div>
</body>
</html>

View File

@ -5,4 +5,4 @@ rule Post, "posts/*.html"
rule Ace::Asset, "assets/**/*"
# generators
generator TagPagesGenerator#, "/tags/:slug"
generator Tag#, "/tags/:slug"

View File

@ -0,0 +1,10 @@
#!/usr/bin/env bundle exec nake
# encoding: utf-8
Task.new(:generate) do |task|
task.description = "Generate static HTML."
task.define do
sh "./boot.rb"
end
end