jekyll-import 0.1.0.beta4 → 0.1.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/History.markdown +5 -0
- data/Rakefile +114 -11
- data/jekyll-import.gemspec +67 -2
- data/lib/jekyll-import.rb +3 -5
- data/lib/jekyll-import/importer.rb +6 -0
- data/lib/jekyll-import/importers/rss.rb +2 -2
- data/lib/jekyll-import/importers/s9y.rb +1 -1
- data/lib/jekyll-import/importers/textpattern.rb +1 -1
- data/site/.gitignore +4 -0
- data/site/CNAME +1 -0
- data/site/README +1 -0
- data/site/_config.yml +7 -0
- data/site/_includes/analytics.html +32 -0
- data/site/_includes/docs_contents.html +10 -0
- data/site/_includes/docs_contents_mobile.html +14 -0
- data/site/_includes/docs_option.html +11 -0
- data/site/_includes/docs_ul.html +20 -0
- data/site/_includes/footer.html +15 -0
- data/site/_includes/header.html +18 -0
- data/site/_includes/news_contents.html +23 -0
- data/site/_includes/news_contents_mobile.html +11 -0
- data/site/_includes/news_item.html +24 -0
- data/site/_includes/primary-nav-items.html +14 -0
- data/site/_includes/section_nav.html +22 -0
- data/site/_includes/top.html +17 -0
- data/site/_layouts/default.html +12 -0
- data/site/_layouts/docs.html +29 -0
- data/site/_layouts/news.html +19 -0
- data/site/_layouts/news_item.html +27 -0
- data/site/_posts/2013-11-09-jekyll-import-0-1-0-beta4-release.markdown +23 -0
- data/site/_posts/2013-11-18-jekyll-import-0-1-0-rc1-released.markdown +17 -0
- data/site/css/gridism.css +110 -0
- data/site/css/normalize.css +1 -0
- data/site/css/pygments.css +70 -0
- data/site/css/style.css +946 -0
- data/site/docs/contributing.md +8 -0
- data/site/docs/csv.md +25 -0
- data/site/docs/drupal6.md +24 -0
- data/site/docs/drupal7.md +24 -0
- data/site/docs/enki.md +23 -0
- data/site/docs/google_reader.md +19 -0
- data/site/docs/history.md +7 -0
- data/site/docs/index.md +17 -0
- data/site/docs/installation.md +26 -0
- data/site/docs/joomla.md +26 -0
- data/site/docs/jrnl.md +23 -0
- data/site/docs/marley.md +20 -0
- data/site/docs/mephisto.md +23 -0
- data/site/docs/mt.md +23 -0
- data/site/docs/posterous.md +25 -0
- data/site/docs/rss.md +19 -0
- data/site/docs/s9y.md +19 -0
- data/site/docs/textpattern.md +30 -0
- data/site/docs/third-party.md +30 -0
- data/site/docs/tumblr.md +24 -0
- data/site/docs/typo.md +26 -0
- data/site/docs/usage.md +28 -0
- data/site/docs/wordpress.md +31 -0
- data/site/docs/wordpressdotcom.md +44 -0
- data/site/favicon.png +0 -0
- data/site/feed.xml +36 -0
- data/site/img/article-footer.png +0 -0
- data/site/img/footer-arrow.png +0 -0
- data/site/img/footer-logo.png +0 -0
- data/site/img/logo-2x.png +0 -0
- data/site/img/octojekyll.png +0 -0
- data/site/img/tube.png +0 -0
- data/site/img/tube1x.png +0 -0
- data/site/index.html +100 -0
- data/site/js/modernizr-2.5.3.min.js +4 -0
- data/site/news/index.html +10 -0
- data/site/news/releases/index.html +10 -0
- metadata +68 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb0a7bbe8aca1585023f14fd2c866837814187a3
|
4
|
+
data.tar.gz: 03d0d027aed6b677d10f4a29abbdb15baa6dbe13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74f2d5907720b4e013bba9edc05ea0bf12247e8015ea03c5fc8254d696eb3f0811cbf1a3c41cbd864888edecc466d07503f05119e4de8264530a0cfd88e088b2
|
7
|
+
data.tar.gz: 1c422eee36df10b8b7458bb3fcc205e6e9af79d610442a228ea88b9b9e2cc92f630dc3158f56fdf4782ea0600fe152cef178e45d32be9c9282ed1022f213610f
|
data/History.markdown
CHANGED
@@ -22,6 +22,8 @@
|
|
22
22
|
* Improve the handling of tags in the Drupal 6 importer. Tags with
|
23
23
|
spaces are handled now and the importer doesn't eat tags anymore. (#42)
|
24
24
|
* Upgrade to `jekyll ~> 1.3` and `safe_yaml ~> 0.9.7`
|
25
|
+
* Add license to gemspec (#83)
|
26
|
+
* Add an `Importer.run` method for easy invocation (#88)
|
25
27
|
|
26
28
|
### Bug Fixes
|
27
29
|
* Remove usage of `Hash#at` in Tumblr importer (#14)
|
@@ -39,8 +41,11 @@
|
|
39
41
|
* Fix bug where post date in `MT` importer was not imported for older versions
|
40
42
|
of MT sites (#62)
|
41
43
|
* Fix interface of importers' `#process` method (#69)
|
44
|
+
* RSS importer should specify `--source` option (#81)
|
45
|
+
* Fix fetching of parameters from options hash (#86)
|
42
46
|
|
43
47
|
### Site Enhancements
|
48
|
+
* Add the site (#87)
|
44
49
|
|
45
50
|
### Development Fixes
|
46
51
|
* Update usage docs in RSS importer (#35)
|
data/Rakefile
CHANGED
@@ -9,7 +9,9 @@
|
|
9
9
|
|
10
10
|
require 'rubygems'
|
11
11
|
require 'rake'
|
12
|
+
require 'rdoc'
|
12
13
|
require 'date'
|
14
|
+
require 'yaml'
|
13
15
|
|
14
16
|
#############################################################################
|
15
17
|
#
|
@@ -46,6 +48,39 @@ def replace_header(head, header_name)
|
|
46
48
|
head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
|
47
49
|
end
|
48
50
|
|
51
|
+
def normalize_bullets(markdown)
|
52
|
+
markdown.gsub(/\s{2}\*{1}/, "-")
|
53
|
+
end
|
54
|
+
|
55
|
+
def linkify_prs(markdown)
|
56
|
+
markdown.gsub(/#(\d+)/) do |word|
|
57
|
+
"[#{word}]({{ site.repository }}/issues/#{word.delete("#")})"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def linkify_users(markdown)
|
62
|
+
markdown.gsub(/(@\w+)/) do |username|
|
63
|
+
"[#{username}](https://github.com/#{username.delete("@")})"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def linkify(markdown)
|
68
|
+
linkify_users(linkify_prs(markdown))
|
69
|
+
end
|
70
|
+
|
71
|
+
def liquid_escape(markdown)
|
72
|
+
markdown.gsub(/(`{[{%].+[}%]}`)/, "{% raw %}\\1{% endraw %}")
|
73
|
+
end
|
74
|
+
|
75
|
+
def remove_head_from_history(markdown)
|
76
|
+
index = markdown =~ /^##\s+\d+\.\d+\.\d+/
|
77
|
+
markdown[index..-1]
|
78
|
+
end
|
79
|
+
|
80
|
+
def converted_history(markdown)
|
81
|
+
remove_head_from_history(liquid_escape(linkify(normalize_bullets(markdown))))
|
82
|
+
end
|
83
|
+
|
49
84
|
#############################################################################
|
50
85
|
#
|
51
86
|
# Standard tasks
|
@@ -76,22 +111,90 @@ end
|
|
76
111
|
|
77
112
|
#############################################################################
|
78
113
|
#
|
79
|
-
#
|
114
|
+
# Site tasks - http://import.jekyllrb.com
|
80
115
|
#
|
81
116
|
#############################################################################
|
82
117
|
|
83
|
-
namespace :
|
84
|
-
desc "
|
85
|
-
task :
|
86
|
-
|
118
|
+
namespace :site do
|
119
|
+
desc "Generate and view the site locally"
|
120
|
+
task :preview do
|
121
|
+
require "launchy"
|
122
|
+
|
123
|
+
# Yep, it's a hack! Wait a few seconds for the Jekyll site to generate and
|
124
|
+
# then open it in a browser. Someday we can do better than this, I hope.
|
125
|
+
Thread.new do
|
126
|
+
sleep 4
|
127
|
+
puts "Opening in browser..."
|
128
|
+
Launchy.open("http://localhost:4000")
|
129
|
+
end
|
130
|
+
|
131
|
+
# Generate the site in server mode.
|
132
|
+
puts "Running Jekyll..."
|
133
|
+
Dir.chdir("site") do
|
134
|
+
sh "jekyll serve --watch"
|
135
|
+
end
|
87
136
|
end
|
88
|
-
|
89
|
-
|
90
|
-
|
137
|
+
|
138
|
+
desc "Update normalize.css library to the latest version and minify"
|
139
|
+
task :update_normalize_css do
|
140
|
+
Dir.chdir("site/css") do
|
141
|
+
sh 'curl "http://necolas.github.io/normalize.css/latest/normalize.css" -o "normalize.scss"'
|
142
|
+
sh 'sass "normalize.scss":"normalize.css" --style compressed'
|
143
|
+
sh 'rm "normalize.scss"'
|
144
|
+
end
|
91
145
|
end
|
92
|
-
|
93
|
-
|
94
|
-
|
146
|
+
|
147
|
+
desc "Commit the local site to the gh-pages branch and publish to GitHub Pages"
|
148
|
+
task :publish => [:history] do
|
149
|
+
sh "git subtree push --prefix site origin gh-pages"
|
150
|
+
end
|
151
|
+
|
152
|
+
desc "Create a nicely formatted history page for the jekyll site based on the repo history."
|
153
|
+
task :history do
|
154
|
+
if File.exist?("History.markdown")
|
155
|
+
history_file = File.read("History.markdown")
|
156
|
+
front_matter = {
|
157
|
+
"layout" => "docs",
|
158
|
+
"title" => "History",
|
159
|
+
"permalink" => "/docs/history/",
|
160
|
+
"prev_section" => "contributing"
|
161
|
+
}
|
162
|
+
Dir.chdir('site/docs/') do
|
163
|
+
File.open("history.md", "w") do |file|
|
164
|
+
file.write("#{front_matter.to_yaml}---\n\n")
|
165
|
+
file.write(converted_history(history_file))
|
166
|
+
end
|
167
|
+
end
|
168
|
+
sh "git add site/docs/history.md"
|
169
|
+
sh "git commit -m 'Updated generated history.md file in the site.'"
|
170
|
+
else
|
171
|
+
abort "You seem to have misplaced your History.markdown file. I can haz?"
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
namespace :releases do
|
176
|
+
desc "Create new release post"
|
177
|
+
task :new, :version do |t, args|
|
178
|
+
raise "Specify a version: rake site:releases:new['1.2.3']" unless args.version
|
179
|
+
today = Time.new.strftime('%Y-%m-%d')
|
180
|
+
release = args.version.to_s
|
181
|
+
filename = "site/_posts/#{today}-jekyll-import-#{release.split('.').join('-')}-released.markdown"
|
182
|
+
|
183
|
+
File.open(filename, "wb") do |post|
|
184
|
+
post.puts("---")
|
185
|
+
post.puts("layout: news_item")
|
186
|
+
post.puts("title: 'jekyll-import #{release} Released'")
|
187
|
+
post.puts("date: #{Time.new.strftime('%Y-%m-%d %H:%M:%S %z')}")
|
188
|
+
post.puts("author: ")
|
189
|
+
post.puts("version: #{version}")
|
190
|
+
post.puts("categories: [release]")
|
191
|
+
post.puts("---")
|
192
|
+
post.puts
|
193
|
+
post.puts
|
194
|
+
end
|
195
|
+
|
196
|
+
puts "Created #{filename}"
|
197
|
+
end
|
95
198
|
end
|
96
199
|
end
|
97
200
|
|
data/jekyll-import.gemspec
CHANGED
@@ -5,8 +5,8 @@ Gem::Specification.new do |s|
|
|
5
5
|
s.required_ruby_version = '>= 1.9.2'
|
6
6
|
|
7
7
|
s.name = 'jekyll-import'
|
8
|
-
s.version = '0.1.0.
|
9
|
-
s.date = '2013-11-
|
8
|
+
s.version = '0.1.0.rc1'
|
9
|
+
s.date = '2013-11-18'
|
10
10
|
s.rubyforge_project = 'jekyll-import'
|
11
11
|
|
12
12
|
s.summary = "Import command for Jekyll (static site generator)."
|
@@ -15,6 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.authors = ["Tom Preston-Werner"]
|
16
16
|
s.email = 'tom@mojombo.com'
|
17
17
|
s.homepage = 'http://github.com/jekyll/jekyll-import'
|
18
|
+
s.license = 'MIT'
|
18
19
|
|
19
20
|
s.require_paths = %w[lib]
|
20
21
|
|
@@ -76,6 +77,70 @@ Gem::Specification.new do |s|
|
|
76
77
|
lib/jekyll-import/importers/wordpress.rb
|
77
78
|
lib/jekyll-import/importers/wordpressdotcom.rb
|
78
79
|
lib/jekyll/commands/import.rb
|
80
|
+
site/.gitignore
|
81
|
+
site/CNAME
|
82
|
+
site/README
|
83
|
+
site/_config.yml
|
84
|
+
site/_includes/analytics.html
|
85
|
+
site/_includes/docs_contents.html
|
86
|
+
site/_includes/docs_contents_mobile.html
|
87
|
+
site/_includes/docs_option.html
|
88
|
+
site/_includes/docs_ul.html
|
89
|
+
site/_includes/footer.html
|
90
|
+
site/_includes/header.html
|
91
|
+
site/_includes/news_contents.html
|
92
|
+
site/_includes/news_contents_mobile.html
|
93
|
+
site/_includes/news_item.html
|
94
|
+
site/_includes/primary-nav-items.html
|
95
|
+
site/_includes/section_nav.html
|
96
|
+
site/_includes/top.html
|
97
|
+
site/_layouts/default.html
|
98
|
+
site/_layouts/docs.html
|
99
|
+
site/_layouts/news.html
|
100
|
+
site/_layouts/news_item.html
|
101
|
+
site/_posts/2013-11-09-jekyll-import-0-1-0-beta4-release.markdown
|
102
|
+
site/_posts/2013-11-18-jekyll-import-0-1-0-rc1-released.markdown
|
103
|
+
site/css/gridism.css
|
104
|
+
site/css/normalize.css
|
105
|
+
site/css/pygments.css
|
106
|
+
site/css/style.css
|
107
|
+
site/docs/contributing.md
|
108
|
+
site/docs/csv.md
|
109
|
+
site/docs/drupal6.md
|
110
|
+
site/docs/drupal7.md
|
111
|
+
site/docs/enki.md
|
112
|
+
site/docs/google_reader.md
|
113
|
+
site/docs/history.md
|
114
|
+
site/docs/index.md
|
115
|
+
site/docs/installation.md
|
116
|
+
site/docs/joomla.md
|
117
|
+
site/docs/jrnl.md
|
118
|
+
site/docs/marley.md
|
119
|
+
site/docs/mephisto.md
|
120
|
+
site/docs/mt.md
|
121
|
+
site/docs/posterous.md
|
122
|
+
site/docs/rss.md
|
123
|
+
site/docs/s9y.md
|
124
|
+
site/docs/textpattern.md
|
125
|
+
site/docs/third-party.md
|
126
|
+
site/docs/tumblr.md
|
127
|
+
site/docs/typo.md
|
128
|
+
site/docs/usage.md
|
129
|
+
site/docs/wordpress.md
|
130
|
+
site/docs/wordpressdotcom.md
|
131
|
+
site/favicon.png
|
132
|
+
site/feed.xml
|
133
|
+
site/img/article-footer.png
|
134
|
+
site/img/footer-arrow.png
|
135
|
+
site/img/footer-logo.png
|
136
|
+
site/img/logo-2x.png
|
137
|
+
site/img/octojekyll.png
|
138
|
+
site/img/tube.png
|
139
|
+
site/img/tube1x.png
|
140
|
+
site/index.html
|
141
|
+
site/js/modernizr-2.5.3.min.js
|
142
|
+
site/news/index.html
|
143
|
+
site/news/releases/index.html
|
79
144
|
test/helper.rb
|
80
145
|
test/test_jrnl_importer.rb
|
81
146
|
test/test_mt_importer.rb
|
data/lib/jekyll-import.rb
CHANGED
@@ -8,7 +8,7 @@ require 'jekyll-import/importer'
|
|
8
8
|
require 'jekyll-import/importers'
|
9
9
|
|
10
10
|
module JekyllImport
|
11
|
-
VERSION = '0.1.0.
|
11
|
+
VERSION = '0.1.0.rc1'
|
12
12
|
|
13
13
|
def self.logger
|
14
14
|
@logger ||= Jekyll::Stevenson.new
|
@@ -27,10 +27,8 @@ module JekyllImport
|
|
27
27
|
cmd.command(name.to_sym) do |c|
|
28
28
|
c.syntax "jekyll import #{name} [options]"
|
29
29
|
importer.specify_options(c)
|
30
|
-
c.action do |
|
31
|
-
importer.
|
32
|
-
importer.validate(options) if importer.respond_to?(:validate)
|
33
|
-
importer.process(options)
|
30
|
+
c.action do |_, options|
|
31
|
+
importer.run(options)
|
34
32
|
end
|
35
33
|
end
|
36
34
|
end
|
@@ -12,7 +12,7 @@ module JekyllImport
|
|
12
12
|
module Importers
|
13
13
|
class RSS < Importer
|
14
14
|
def self.specify_options(c)
|
15
|
-
c.option '
|
15
|
+
c.option 'source', '--source NAME', 'The RSS file or URL to import'
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.validate(options)
|
@@ -37,7 +37,7 @@ module JekyllImport
|
|
37
37
|
#
|
38
38
|
# Returns nothing.
|
39
39
|
def self.process(options)
|
40
|
-
source = options.fetch('
|
40
|
+
source = options.fetch('source')
|
41
41
|
|
42
42
|
content = ""
|
43
43
|
open(source) { |s| content = s.read }
|
@@ -39,7 +39,7 @@ module JekyllImport
|
|
39
39
|
def self.process(options)
|
40
40
|
dbname = options.fetch('dbname')
|
41
41
|
user = options.fetch('user')
|
42
|
-
pass = options.fetch('password')
|
42
|
+
pass = options.fetch('password', "")
|
43
43
|
host = options.fetch('host', "localhost")
|
44
44
|
|
45
45
|
db = Sequel.mysql(dbname, :user => user, :password => pass, :host => host, :encoding => 'utf8')
|
data/site/.gitignore
ADDED
data/site/CNAME
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
import.jekyllrb.com
|
data/site/README
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Jekyll's awesome website.
|
data/site/_config.yml
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
{% if site.gauges_id %}
|
2
|
+
<!-- Gauges (http://gaug.es/) -->
|
3
|
+
<script type="text/javascript">
|
4
|
+
var _gauges = _gauges || [];
|
5
|
+
(function() {
|
6
|
+
var t = document.createElement('script');
|
7
|
+
t.type = 'text/javascript';
|
8
|
+
t.async = true;
|
9
|
+
t.id = 'gauges-tracker';
|
10
|
+
t.setAttribute('data-site-id', '{{ site.gauges_id }}');
|
11
|
+
t.src = '//secure.gaug.es/track.js';
|
12
|
+
var s = document.getElementsByTagName('script')[0];
|
13
|
+
s.parentNode.insertBefore(t, s);
|
14
|
+
})();
|
15
|
+
</script>
|
16
|
+
{% endif %}
|
17
|
+
|
18
|
+
{% if site.google_analytics_id %}
|
19
|
+
<!-- Google Analytics (http://google.com/analytics) -->
|
20
|
+
<script type="text/javascript">
|
21
|
+
var _gaq = _gaq || [];
|
22
|
+
_gaq.push(['_setAccount', '{{ site.google_analytics_id }}']);
|
23
|
+
_gaq.push(['_setDomainName', '{{ site.url }}']); // Multiple sub-domains
|
24
|
+
_gaq.push(['_setAllowLinker', true]); // Multiple TLDs
|
25
|
+
_gaq.push(['_trackPageview']);
|
26
|
+
(function() {
|
27
|
+
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
28
|
+
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
29
|
+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
30
|
+
})();
|
31
|
+
</script>
|
32
|
+
{% endif %}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<div class="unit one-fifth hide-on-mobiles">
|
2
|
+
<aside>
|
3
|
+
<h4>Getting Started</h4>
|
4
|
+
{% include docs_ul.html items='home installation usage' %}
|
5
|
+
<h4>Importers</h4>
|
6
|
+
{% include docs_ul.html items='csv drupal6 drupal7 enki google_reader joomla jrnl marley mephisto mt posterous rss s9y textpattern tumblr typo wordpress wordpressdotcom' %}
|
7
|
+
<h4>Meta</h4>
|
8
|
+
{% include docs_ul.html items='third-party contributing history' %}
|
9
|
+
</aside>
|
10
|
+
</div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="docs-nav-mobile unit whole show-on-mobiles">
|
2
|
+
<select onchange="if (this.value) window.location.href=this.value">
|
3
|
+
<option value="">Navigate the docs…</option>
|
4
|
+
<optgroup label="Getting started">
|
5
|
+
{% include docs_option.html items='home installation usage' %}
|
6
|
+
</optgroup>
|
7
|
+
<optgroup label="Importers">
|
8
|
+
{% include docs_option.html items='csv drupal6 drupal7 enki google_reader joomla jrnl marley mephisto mt posterous rss s9y textpattern tumblr typo wordpress wordpressdotcom' %}
|
9
|
+
</optgroup>
|
10
|
+
<optgroup label="Meta">
|
11
|
+
{% include docs_option.html items='third-party contributing history' %}
|
12
|
+
</optgroup>
|
13
|
+
</select>
|
14
|
+
</div>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{% assign items = include.items | split: ' ' %}
|
2
|
+
|
3
|
+
{% for item in items %}
|
4
|
+
{% assign item_url = item | prepend:'/docs/' | append:'/' %}
|
5
|
+
|
6
|
+
{% for p in site.pages %}
|
7
|
+
{% if p.url == item_url %}
|
8
|
+
<option value="{{ site.url }}{{ p.url }}">{{ p.title }}</option>
|
9
|
+
{% endif %}
|
10
|
+
{% endfor %}
|
11
|
+
{% endfor %}
|