who-needs-wp 0.6.1 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/who-needs-wp +12 -2
- data/lib/who-needs-wp.rb +25 -4
- data/lib/who-needs-wp/Content.rb +23 -13
- data/lib/who-needs-wp/content/Page.rb +1 -0
- data/lib/who-needs-wp/content/Post.rb +6 -3
- data/lib/who-needs-wp/keywords.rb +17 -0
- data/lib/who-needs-wp/sidebar/delicious.rb +5 -6
- data/lib/who-needs-wp/sidebar/latitude.rb +14 -0
- data/lib/who-needs-wp/sitemap.rb +40 -0
- data/lib/who-needs-wp/stylesheets/style.sass +3 -1
- data/lib/who-needs-wp/templates.rb +4 -2
- data/lib/who-needs-wp/templates/all_posts.haml +8 -7
- data/lib/who-needs-wp/templates/latitude.haml +1 -0
- data/lib/who-needs-wp/templates/layout.haml +14 -8
- data/lib/who-needs-wp/templates/page.haml +5 -4
- data/lib/who-needs-wp/templates/pageindex.haml +1 -1
- data/lib/who-needs-wp/templates/post.haml +1 -1
- metadata +27 -38
- data/lib/who-needs-wp/stylesheets/pygments.sass +0 -140
data/bin/who-needs-wp
CHANGED
@@ -53,11 +53,21 @@ Choice.options do
|
|
53
53
|
desc 'Upload the output to an FTP address.'
|
54
54
|
end
|
55
55
|
|
56
|
-
option :
|
57
|
-
long '--
|
56
|
+
option :upload_url do
|
57
|
+
long '--upload-url=SCP address'
|
58
58
|
desc "Location to upload the output. To enable specify the --upload option. (Default: \"#{options[:ftp]}\")"
|
59
59
|
end
|
60
60
|
|
61
|
+
option :use_term_extractor do
|
62
|
+
long '--use-term-extractor'
|
63
|
+
desc "Generate tags for each post / page using the Yahoo Term Extractor API."
|
64
|
+
end
|
65
|
+
|
66
|
+
option :index_page do
|
67
|
+
long '--index-page=filename'
|
68
|
+
desc "Override the default index page for the site. If not set then the first page in the site is used."
|
69
|
+
end
|
70
|
+
|
61
71
|
option :help do
|
62
72
|
long '--help'
|
63
73
|
desc 'Show this message'
|
data/lib/who-needs-wp.rb
CHANGED
@@ -4,12 +4,17 @@ require 'rdiscount'
|
|
4
4
|
require 'haml'
|
5
5
|
require 'open-uri'
|
6
6
|
require 'sass'
|
7
|
-
require '
|
7
|
+
require 'kramdown'
|
8
8
|
require 'logger'
|
9
9
|
require 'rss/maker'
|
10
10
|
require 'net/ssh'
|
11
11
|
require 'net/sftp'
|
12
|
+
require 'rexml/document'
|
13
|
+
require 'net/http'
|
14
|
+
|
12
15
|
require 'who-needs-wp/css.rb'
|
16
|
+
require 'who-needs-wp/keywords.rb'
|
17
|
+
require 'who-needs-wp/sitemap.rb'
|
13
18
|
require 'who-needs-wp/Content.rb'
|
14
19
|
require 'who-needs-wp/content/Page.rb'
|
15
20
|
require 'who-needs-wp/content/Post.rb'
|
@@ -18,6 +23,7 @@ require 'who-needs-wp/sidebar/twitter.rb'
|
|
18
23
|
require 'who-needs-wp/sidebar/delicious.rb'
|
19
24
|
require 'who-needs-wp/sidebar/recentposts.rb'
|
20
25
|
require 'who-needs-wp/sidebar/pageindex.rb'
|
26
|
+
require 'who-needs-wp/sidebar/latitude.rb'
|
21
27
|
require 'who-needs-wp/templates.rb'
|
22
28
|
|
23
29
|
module WhoNeedsWP
|
@@ -47,6 +53,9 @@ module WhoNeedsWP
|
|
47
53
|
if @options[:delicious]
|
48
54
|
delicious = Delicious.new(@options[:delicious][:user])
|
49
55
|
end
|
56
|
+
if @options[:latitude]
|
57
|
+
Latitude.new(@options[:latitude])
|
58
|
+
end
|
50
59
|
Page.load
|
51
60
|
Post.load
|
52
61
|
if Post.all.length > 0
|
@@ -62,6 +71,7 @@ module WhoNeedsWP
|
|
62
71
|
Post.index
|
63
72
|
self.index
|
64
73
|
self.css
|
74
|
+
self.sitemap
|
65
75
|
|
66
76
|
if @options[:upload]
|
67
77
|
self.upload
|
@@ -74,19 +84,30 @@ module WhoNeedsWP
|
|
74
84
|
|
75
85
|
# Generate the index page for the blog
|
76
86
|
def self.index
|
87
|
+
keywords = []
|
77
88
|
contents = ""
|
78
89
|
if Post.all.length > 0
|
79
90
|
Post.all[0..3].each do |post|
|
80
91
|
contents << post.html
|
92
|
+
keywords = keywords + post.tags
|
81
93
|
end
|
82
94
|
else
|
83
|
-
|
95
|
+
index_page = Page.all.first
|
96
|
+
if @options[:index_page]
|
97
|
+
Page.all.each do |page|
|
98
|
+
if page.filename[:original] == @options[:index_page]
|
99
|
+
index_page = page
|
100
|
+
break
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
contents = index_page.html
|
84
105
|
end
|
85
|
-
self.render_html("index.html", "index", contents)
|
106
|
+
self.render_html("index.html", "index", contents, "", keywords, @options[:index_summary])
|
86
107
|
end
|
87
108
|
|
88
109
|
def self.upload
|
89
|
-
match = @options[:
|
110
|
+
match = @options[:upload_url].match(/(.*)@(.*):(.*)/)
|
90
111
|
username = match[1]
|
91
112
|
host = match[2]
|
92
113
|
remote_path = match[3]
|
data/lib/who-needs-wp/Content.rb
CHANGED
@@ -19,8 +19,9 @@ module WhoNeedsWP
|
|
19
19
|
attr_accessor :summary
|
20
20
|
# A Hash which contains the original and generated filename
|
21
21
|
attr_accessor :filename
|
22
|
-
|
23
|
-
|
22
|
+
# An array of tags which are associated with this content
|
23
|
+
attr_accessor :tags
|
24
|
+
|
24
25
|
def initialize(filename)
|
25
26
|
@filename = {
|
26
27
|
:original => filename,
|
@@ -30,7 +31,7 @@ module WhoNeedsWP
|
|
30
31
|
@url = WhoNeedsWP::options[:url] + '/' + @filename[:generated]
|
31
32
|
# Set the default author of the content to be the site author
|
32
33
|
@author = WhoNeedsWP::options[:author]
|
33
|
-
|
34
|
+
|
34
35
|
read_file
|
35
36
|
end
|
36
37
|
|
@@ -38,8 +39,10 @@ module WhoNeedsWP
|
|
38
39
|
def render
|
39
40
|
# Set the summary to be the first paragraph
|
40
41
|
@summary = $1 if @html =~ (/(?:<p>)(.*?)(?:<\/p>)/)
|
42
|
+
# Append the full site URL to any links referring to the root folder
|
43
|
+
@html.gsub!(/(href|src)=\"\//, '\1="' + WhoNeedsWP::options[:url] + '/')
|
41
44
|
# Render the content HTML within a page
|
42
|
-
WhoNeedsWP::render_html(@filename[:generated], "page", @html, @title)
|
45
|
+
WhoNeedsWP::render_html(@filename[:generated], "page", @html, @title, @tags, @summary)
|
43
46
|
end
|
44
47
|
|
45
48
|
private
|
@@ -49,7 +52,15 @@ module WhoNeedsWP
|
|
49
52
|
content = File.read(@filename[:original])
|
50
53
|
# Remove the author, if there is one from the Markdown
|
51
54
|
content = extract_author(content)
|
52
|
-
|
55
|
+
if WhoNeedsWP::options[:use_term_extractor]
|
56
|
+
@tags = YahooTermExtractor.generate_keywords(content)
|
57
|
+
else
|
58
|
+
@tags = []
|
59
|
+
end
|
60
|
+
|
61
|
+
@markdown = Kramdown::Document.new(content)
|
62
|
+
#,{:coderay => {:wrap => :div, :line_numbers => :inline,
|
63
|
+
#:line_number_start => 1, :tab_width => 8, :bold_every => 10, :css => :style}})
|
53
64
|
end
|
54
65
|
|
55
66
|
# Return the title of the content, based on the filename
|
@@ -60,18 +71,17 @@ module WhoNeedsWP
|
|
60
71
|
|
61
72
|
# Return the filename which will be use to save rendered content
|
62
73
|
def generate_filename(filename)
|
63
|
-
File.dirname(filename) + "/" + File.basename(filename, ".markdown") + ".html"
|
74
|
+
File.dirname(filename) + "/" + File.basename(filename, ".markdown").gsub(/[?\/]/, '') + ".html"
|
64
75
|
end
|
65
76
|
|
66
77
|
# Generate a unique ID for this content
|
67
78
|
def generate_id
|
68
|
-
if
|
69
|
-
|
79
|
+
if @created_at != nil
|
80
|
+
# Replace the HTTP from the URL with tag:
|
81
|
+
@id = (WhoNeedsWP::options[:url] + '/' + @filename[:generated]).gsub(/http:\/\//, 'tag:')
|
82
|
+
match = @id.match(/([^\/]*)\/(.*)/)
|
83
|
+
@id = "#{match[1]},#{self.created_at.strftime('%Y-%m-%d')}:#{match[2]}" if match
|
70
84
|
end
|
71
|
-
# Replace the HTTP from the URL with tag:
|
72
|
-
@id = (WhoNeedsWP::options[:url] + @filename[:generated]).gsub(/http:\/\//, 'tag:')
|
73
|
-
match = @id.match(/([^\/]*)\/(.*)/)
|
74
|
-
@id = "#{match[1]},#{self.created_at.strftime('%Y-%m-%d')}:#{match[2]}" if match
|
75
85
|
end
|
76
86
|
|
77
87
|
# Read the author from the Markdown content. If none exists
|
@@ -86,4 +96,4 @@ module WhoNeedsWP
|
|
86
96
|
return content
|
87
97
|
end
|
88
98
|
end
|
89
|
-
end
|
99
|
+
end
|
@@ -6,6 +6,7 @@ module WhoNeedsWP
|
|
6
6
|
def initialize(filename, created_at)
|
7
7
|
super(filename)
|
8
8
|
@created_at = created_at
|
9
|
+
generate_id
|
9
10
|
end
|
10
11
|
|
11
12
|
# A list of all the pages on the site
|
@@ -50,9 +51,11 @@ module WhoNeedsWP
|
|
50
51
|
end
|
51
52
|
|
52
53
|
def self.index(filename = "posts/index.html")
|
53
|
-
|
54
|
-
|
55
|
-
|
54
|
+
if File.exists?(File.dirname(filename))
|
55
|
+
WhoNeedsWP::render_html(filename, "post_index", WhoNeedsWP::render_template("all_posts", {
|
56
|
+
:posts => @@posts
|
57
|
+
}), "All Posts")
|
58
|
+
end
|
56
59
|
end
|
57
60
|
|
58
61
|
# Generate an RSS feed of all the posts
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
module WhoNeedsWP
|
3
|
+
|
4
|
+
class YahooTermExtractor
|
5
|
+
@@API_URI = URI.parse('http://api.search.yahoo.com/ContentAnalysisService/V1/termExtraction')
|
6
|
+
def self.generate_keywords(text)
|
7
|
+
return [] if text.empty?
|
8
|
+
keywords = []
|
9
|
+
i = Net::HTTP.post_form(@@API_URI, { 'appid' => 'who-needs-wp', 'context' => text } )
|
10
|
+
i = REXML::Document.new i.body
|
11
|
+
i.each_element("//Result") do |result|
|
12
|
+
keywords << result.text
|
13
|
+
end
|
14
|
+
return keywords
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'nokogiri'
|
2
1
|
|
3
2
|
module WhoNeedsWP
|
4
3
|
class Delicious < Sidebar
|
@@ -27,12 +26,12 @@ module WhoNeedsWP
|
|
27
26
|
def get_bookmarks
|
28
27
|
@logger.debug "Fetching bookmarks from Delicious"
|
29
28
|
bookmarks = []
|
30
|
-
doc =
|
31
|
-
doc.
|
29
|
+
doc = REXML::Document.new(open("http://feeds.delicious.com/v2/rss/#{@username}?count=5"))
|
30
|
+
doc.each_element('//channel/item') do |item|
|
32
31
|
bookmarks << {
|
33
|
-
:title => (
|
34
|
-
:url => (
|
35
|
-
:date => Date.parse((
|
32
|
+
:title => item.get_text('title'),
|
33
|
+
:url => item.get_text('link'),
|
34
|
+
:date => Date.parse(item.get_text('pubDate').to_s)
|
36
35
|
}
|
37
36
|
end
|
38
37
|
return bookmarks
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module WhoNeedsWP
|
2
|
+
class Latitude < Sidebar
|
3
|
+
def initialize(username)
|
4
|
+
super()
|
5
|
+
@username = username
|
6
|
+
end
|
7
|
+
|
8
|
+
# See Sidebar.render
|
9
|
+
def render
|
10
|
+
@logger.debug "Rendering Latitude iFrame"
|
11
|
+
WhoNeedsWP::render_template("latitude", { :username => @username })
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
module WhoNeedsWP
|
3
|
+
def self.sitemap
|
4
|
+
document = REXML::Document.new
|
5
|
+
urlset = document.add_element("urlset", { "xmlns" => "http://www.sitemaps.org/schemas/sitemap/0.9"})
|
6
|
+
Post.all.each do |post|
|
7
|
+
url = REXML::Element.new("url")
|
8
|
+
urlset.add(url)
|
9
|
+
url.add_element("loc").text = post.url
|
10
|
+
url.add_element("lastmod").text = post.created_at.strftime('%Y-%m-%d')
|
11
|
+
url.add_element("priority").text = "0.5"
|
12
|
+
end
|
13
|
+
Page.all.each do |page|
|
14
|
+
url = REXML::Element.new("url")
|
15
|
+
urlset.add(url)
|
16
|
+
url.add_element("loc").text = page.url
|
17
|
+
url.add_element("priority").text = "0.8"
|
18
|
+
end
|
19
|
+
|
20
|
+
# Generate sitemap for index page
|
21
|
+
url = REXML::Element.new("url")
|
22
|
+
|
23
|
+
url.add_element("loc").text = WhoNeedsWP::options[:url] + "/index.html"
|
24
|
+
if Post.all.length > 0
|
25
|
+
url.add_element("lastmod").text = Post.all[0].created_at.strftime('%Y-%m-%d')
|
26
|
+
end
|
27
|
+
url.add_element("priority").text = "1.0"
|
28
|
+
urlset.add(url)
|
29
|
+
|
30
|
+
# Write the XML document to a file
|
31
|
+
File.open("sitemap.xml", "w") do |file|
|
32
|
+
file.puts document
|
33
|
+
end
|
34
|
+
|
35
|
+
# Create a robots.txt which points to the sitemap.xml
|
36
|
+
File.open("robots.txt", "w") do |file|
|
37
|
+
file.puts "Sitemap: #{WhoNeedsWP::options[:url]}sitemap.xml"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -6,7 +6,7 @@ module WhoNeedsWP
|
|
6
6
|
end
|
7
7
|
|
8
8
|
# Render the specified HTML contents within the layout template
|
9
|
-
def self.render_html(filename, type, contents, title = "")
|
9
|
+
def self.render_html(filename, type, contents, title = "", tags = [], summary = "")
|
10
10
|
File.open(filename, "w") do |file|
|
11
11
|
body = @template['body'].render(Object.new, {
|
12
12
|
:content => contents,
|
@@ -17,7 +17,9 @@ module WhoNeedsWP
|
|
17
17
|
file.puts @template['layout'].render(Object.new, {
|
18
18
|
:content => body,
|
19
19
|
:options => @options,
|
20
|
-
:title => title
|
20
|
+
:title => title,
|
21
|
+
:tags => tags,
|
22
|
+
:summary => summary
|
21
23
|
})
|
22
24
|
end
|
23
25
|
end
|
@@ -1,7 +1,8 @@
|
|
1
|
-
|
2
|
-
%
|
3
|
-
|
4
|
-
|
5
|
-
%
|
6
|
-
|
7
|
-
|
1
|
+
- if posts.length > 1
|
2
|
+
%h1 All Posts
|
3
|
+
%ul
|
4
|
+
- posts.each do |post|
|
5
|
+
%li
|
6
|
+
%span.date= post.created_at.strftime('%Y-%m-%d')
|
7
|
+
%a.title{:href => "#{post.url}", :title => post.title}= post.title
|
8
|
+
%p= post.summary
|
@@ -0,0 +1 @@
|
|
1
|
+
%iframe{:src => "http://www.google.com/latitude/apps/badge/api?user=#{username}&type=iframe&maptype=terrain", :width => "180", :height => "300"}
|
@@ -1,10 +1,14 @@
|
|
1
|
-
!!!
|
1
|
+
!!! 5
|
2
2
|
%html
|
3
3
|
%head
|
4
4
|
- if options[:stylesheet] == nil or options[:stylesheet].empty?
|
5
5
|
%link{:rel => "stylesheet", :type => "text/css", :href => "#{options[:url]}/style.css"}/
|
6
6
|
%link{:rel => "alternate", :type => "application/atom+xml", :href => "#{options[:url]}/posts.atom", :title => "#{options[:title]} - Atom"}/
|
7
7
|
%link{:rel => "alternate", :type => "application/rss+xml", :href => "#{options[:url]}/posts.rss", :title => "#{options[:title]} - RSS"}/
|
8
|
+
- if defined? tags and tags != nil and tags.length > 0
|
9
|
+
%meta{:name => "keywords", :content => tags.join(' ')}/
|
10
|
+
- if defined? summary and summary != nil and !summary.empty?
|
11
|
+
%meta{:name => "description", :content => summary.gsub(/<\/?[^>]*>/, "")}/
|
8
12
|
%title
|
9
13
|
= options[:title]
|
10
14
|
- if defined? title and title != nil and not title.empty?
|
@@ -15,14 +19,16 @@
|
|
15
19
|
%meta{:"http-equiv" => "Content-Type", :content => "text/html; charset=utf-8"}/
|
16
20
|
%body
|
17
21
|
= content
|
22
|
+
- if options[:google_analytics] != nil and not options[:google_analytics].empty?
|
23
|
+
%script{:src => 'http://www.google-analytics.com/ga.js', :type => 'text/javascript'}
|
24
|
+
= ""
|
18
25
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
} catch(err) {}
|
26
|
+
:javascript
|
27
|
+
try {
|
28
|
+
var pageTracker = _gat._getTracker("#{options[:google_analytics]}");
|
29
|
+
pageTracker._trackPageview();
|
30
|
+
} catch(err) {}
|
31
|
+
|
26
32
|
|
27
33
|
|
28
34
|
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 7
|
8
|
+
- 0
|
9
|
+
version: 0.7.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Owen Griffin
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-04-21 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -60,49 +60,49 @@ dependencies:
|
|
60
60
|
type: :runtime
|
61
61
|
version_requirements: *id003
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: choice
|
64
64
|
prerelease: false
|
65
65
|
requirement: &id004 !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
segments:
|
70
|
+
- 0
|
70
71
|
- 1
|
71
72
|
- 4
|
72
|
-
|
73
|
-
version: 1.4.1
|
73
|
+
version: 0.1.4
|
74
74
|
type: :runtime
|
75
75
|
version_requirements: *id004
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
|
-
name:
|
77
|
+
name: net-ssh
|
78
78
|
prerelease: false
|
79
79
|
requirement: &id005 !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
segments:
|
84
|
-
-
|
84
|
+
- 2
|
85
85
|
- 0
|
86
|
-
-
|
87
|
-
version:
|
86
|
+
- 21
|
87
|
+
version: 2.0.21
|
88
88
|
type: :runtime
|
89
89
|
version_requirements: *id005
|
90
90
|
- !ruby/object:Gem::Dependency
|
91
|
-
name:
|
91
|
+
name: net-sftp
|
92
92
|
prerelease: false
|
93
93
|
requirement: &id006 !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
segments:
|
98
|
+
- 2
|
98
99
|
- 0
|
99
|
-
-
|
100
|
-
|
101
|
-
version: 0.1.1
|
100
|
+
- 4
|
101
|
+
version: 2.0.4
|
102
102
|
type: :runtime
|
103
103
|
version_requirements: *id006
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
|
-
name:
|
105
|
+
name: kramdown
|
106
106
|
prerelease: false
|
107
107
|
requirement: &id007 !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
@@ -110,39 +110,25 @@ dependencies:
|
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
segments:
|
112
112
|
- 0
|
113
|
-
-
|
114
|
-
-
|
115
|
-
version: 0.
|
113
|
+
- 6
|
114
|
+
- 0
|
115
|
+
version: 0.6.0
|
116
116
|
type: :runtime
|
117
117
|
version_requirements: *id007
|
118
118
|
- !ruby/object:Gem::Dependency
|
119
|
-
name:
|
119
|
+
name: coderay
|
120
120
|
prerelease: false
|
121
121
|
requirement: &id008 !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
123
|
- - ">="
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
segments:
|
126
|
-
- 2
|
127
126
|
- 0
|
128
|
-
-
|
129
|
-
version: 2.0.21
|
130
|
-
type: :runtime
|
131
|
-
version_requirements: *id008
|
132
|
-
- !ruby/object:Gem::Dependency
|
133
|
-
name: net-sftp
|
134
|
-
prerelease: false
|
135
|
-
requirement: &id009 !ruby/object:Gem::Requirement
|
136
|
-
requirements:
|
137
|
-
- - ">="
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
segments:
|
127
|
+
- 9
|
140
128
|
- 2
|
141
|
-
|
142
|
-
- 4
|
143
|
-
version: 2.0.4
|
129
|
+
version: 0.9.2
|
144
130
|
type: :runtime
|
145
|
-
version_requirements: *
|
131
|
+
version_requirements: *id008
|
146
132
|
description: A static web site generator.
|
147
133
|
email: owen.griffin@gmail.com
|
148
134
|
executables:
|
@@ -160,12 +146,14 @@ files:
|
|
160
146
|
- lib/who-needs-wp/content/Page.rb
|
161
147
|
- lib/who-needs-wp/content/Post.rb
|
162
148
|
- lib/who-needs-wp/css.rb
|
149
|
+
- lib/who-needs-wp/keywords.rb
|
163
150
|
- lib/who-needs-wp/sidebar/delicious.rb
|
151
|
+
- lib/who-needs-wp/sidebar/latitude.rb
|
164
152
|
- lib/who-needs-wp/sidebar/pageindex.rb
|
165
153
|
- lib/who-needs-wp/sidebar/recentposts.rb
|
166
154
|
- lib/who-needs-wp/sidebar/twitter.rb
|
155
|
+
- lib/who-needs-wp/sitemap.rb
|
167
156
|
- lib/who-needs-wp/stylesheets/base.sass
|
168
|
-
- lib/who-needs-wp/stylesheets/pygments.sass
|
169
157
|
- lib/who-needs-wp/stylesheets/reset-fonts-grids.sass
|
170
158
|
- lib/who-needs-wp/stylesheets/style.sass
|
171
159
|
- lib/who-needs-wp/templates.rb
|
@@ -173,6 +161,7 @@ files:
|
|
173
161
|
- lib/who-needs-wp/templates/atom.haml
|
174
162
|
- lib/who-needs-wp/templates/body.haml
|
175
163
|
- lib/who-needs-wp/templates/delicious.haml
|
164
|
+
- lib/who-needs-wp/templates/latitude.haml
|
176
165
|
- lib/who-needs-wp/templates/layout.haml
|
177
166
|
- lib/who-needs-wp/templates/page.haml
|
178
167
|
- lib/who-needs-wp/templates/pageindex.haml
|
@@ -1,140 +0,0 @@
|
|
1
|
-
.code
|
2
|
-
.c
|
3
|
-
color: #999988
|
4
|
-
font-style: italic
|
5
|
-
|
6
|
-
.err
|
7
|
-
color: #a61717
|
8
|
-
background-color: #e3d2d2
|
9
|
-
|
10
|
-
.k, .o
|
11
|
-
font-weight: bold
|
12
|
-
|
13
|
-
.cm
|
14
|
-
color: #999988
|
15
|
-
font-style: italic
|
16
|
-
|
17
|
-
.cp
|
18
|
-
color: #999999
|
19
|
-
font-weight: bold
|
20
|
-
|
21
|
-
.c1
|
22
|
-
color: #999988
|
23
|
-
font-style: italic
|
24
|
-
|
25
|
-
.cs
|
26
|
-
color: #999999
|
27
|
-
font-weight: bold
|
28
|
-
font-style: italic
|
29
|
-
|
30
|
-
.gd
|
31
|
-
color: #000000
|
32
|
-
background-color: #ffdddd
|
33
|
-
|
34
|
-
.x
|
35
|
-
color: #000000
|
36
|
-
background-color: #ffaaaa
|
37
|
-
|
38
|
-
.ge
|
39
|
-
font-style: italic
|
40
|
-
|
41
|
-
.gr
|
42
|
-
color: #aa0000
|
43
|
-
|
44
|
-
.gh
|
45
|
-
color: #999999
|
46
|
-
|
47
|
-
.gi
|
48
|
-
color: #000000
|
49
|
-
background-color: #ddffdd
|
50
|
-
|
51
|
-
.x
|
52
|
-
color: #000000
|
53
|
-
background-color: #aaffaa
|
54
|
-
|
55
|
-
.go
|
56
|
-
color: #888888
|
57
|
-
|
58
|
-
.gp
|
59
|
-
color: #555555
|
60
|
-
|
61
|
-
.gs
|
62
|
-
font-weight: bold
|
63
|
-
|
64
|
-
.gu
|
65
|
-
color: #aaaaaa
|
66
|
-
|
67
|
-
.gt
|
68
|
-
color: #aa0000
|
69
|
-
|
70
|
-
.kc, .kd, .kp, .kr
|
71
|
-
font-weight: bold
|
72
|
-
|
73
|
-
.kt
|
74
|
-
color: #445588
|
75
|
-
font-weight: bold
|
76
|
-
|
77
|
-
.m
|
78
|
-
color: #009999
|
79
|
-
|
80
|
-
.s
|
81
|
-
color: #d14
|
82
|
-
|
83
|
-
.na
|
84
|
-
color: #008080
|
85
|
-
|
86
|
-
.nb
|
87
|
-
color: #0086B3
|
88
|
-
|
89
|
-
.nc
|
90
|
-
color: #445588
|
91
|
-
font-weight: bold
|
92
|
-
|
93
|
-
.no
|
94
|
-
color: #008080
|
95
|
-
|
96
|
-
.ni
|
97
|
-
color: #800080
|
98
|
-
|
99
|
-
.ne, .nf
|
100
|
-
color: #990000
|
101
|
-
font-weight: bold
|
102
|
-
|
103
|
-
.nn
|
104
|
-
color: #555555
|
105
|
-
|
106
|
-
.nt
|
107
|
-
color: #000080
|
108
|
-
|
109
|
-
.nv
|
110
|
-
color: #008080
|
111
|
-
|
112
|
-
.ow
|
113
|
-
font-weight: bold
|
114
|
-
|
115
|
-
.w
|
116
|
-
color: #bbbbbb
|
117
|
-
|
118
|
-
.mf, .mh, .mi, .mo
|
119
|
-
color: #009999
|
120
|
-
|
121
|
-
.sb, .sc, .sd, .s2, .se, .sh, .si, .sx
|
122
|
-
color: #d14
|
123
|
-
|
124
|
-
.sr
|
125
|
-
color: #009926
|
126
|
-
|
127
|
-
.s1
|
128
|
-
color: #d14
|
129
|
-
|
130
|
-
.ss
|
131
|
-
color: #990073
|
132
|
-
|
133
|
-
.bp
|
134
|
-
color: #999999
|
135
|
-
|
136
|
-
.vc, .vg, .vi
|
137
|
-
color: #008080
|
138
|
-
|
139
|
-
.il
|
140
|
-
color: #009999
|