jekyll-sitemap 0.1.0

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d3a165220778a80648f02febf36583691350cf38
4
+ data.tar.gz: 0480733be5165c40eae4459c333602f3163941cc
5
+ SHA512:
6
+ metadata.gz: 12b4ff869a137bf8a71f5ce0a19a5a47fafabe4b40c87055d3cd2d7d252225018da4238d44c6d499ec1dab202a3b1e2e99e693be780311f482c6d30fa0fa38f4
7
+ data.tar.gz: 0a7e3d9bef2ea241b0aa18a9b7153d34bc91cd087649a0198dd83ee3cec0c12cbe6ca20b3353e27002a527ca77ce8544b7e2b4137a31d9b3eb7ba29a94ff9cdc
@@ -0,0 +1,53 @@
1
+ require 'fileutils'
2
+ require File.expand_path('static_file', File.dirname(__FILE__))
3
+
4
+ module Jekyll
5
+ class JekyllSitemap < Jekyll::Generator
6
+ safe true
7
+
8
+ # Main plugin action, called by Jekyll-core
9
+ def generate(site)
10
+ @site = site
11
+ @site.config["time"] = Time.new
12
+ @site.config["static_files"] = html_files.map(&:to_liquid)
13
+ unless sitemap_exists?
14
+ write
15
+ @site.keep_files ||= []
16
+ @site.keep_files << "sitemap.xml"
17
+ end
18
+ end
19
+
20
+ # Array of all non-jekyll site files with an HTML extension
21
+ def html_files
22
+ @site.static_files.select { |file| File.extname(file.relative_path) == ".html" }
23
+ end
24
+
25
+ # Path to sitemap.xml template file
26
+ def source_path
27
+ File.expand_path "sitemap.xml", File.dirname(__FILE__)
28
+ end
29
+
30
+ # Destination for sitemap.xml file within the site source directory
31
+ def destination_path
32
+ File.expand_path "sitemap.xml", @site.dest
33
+ end
34
+
35
+ # copy sitemap template from source to destination
36
+ def write
37
+ FileUtils.mkdir_p File.dirname(destination_path)
38
+ File.open(destination_path, 'w') { |f| f.write(sitemap_content) }
39
+ end
40
+
41
+ def sitemap_content
42
+ site_map = Page.new(@site, File.dirname(__FILE__), "", "sitemap.xml")
43
+ site_map.content = File.read(source_path)
44
+ site_map.render(@site.layouts, @site.site_payload)
45
+ site_map.output
46
+ end
47
+
48
+ # Checks if a sitemap already exists in the site source
49
+ def sitemap_exists?
50
+ File.exists? File.expand_path "sitemap.xml", @site.source
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <?xml-stylesheet type="text/xsl" href="/sitemap.xsl"?>
3
+ <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
4
+ {% capture site_url %}{% if site.url %}{{ site.url }}{% else %}{{ site.github.url }}{% endif %}{% endcapture %}
5
+ {% for post in site.posts %}
6
+ <url>
7
+ <loc>{{ site_url }}{{ post.url }}</loc>
8
+ <lastmod>{{ post.date | date_to_xmlschema }}</lastmod>
9
+ <priority>0.8</priority>
10
+ </url>
11
+ {% endfor %}
12
+ {% for post in site.pages %}
13
+ <url>
14
+ <loc>{{ site_url }}{{ post.url | replace:'index.html','' }}</loc>
15
+ <lastmod>{{ site.time | date_to_xmlschema }}</lastmod>
16
+ <changefreq>weekly</changefreq>
17
+ <priority>{% if post.url == "/" or post.url == "/index.html" %}1.0{% else %}0.7{% endif %}</priority>
18
+ </url>
19
+ {% endfor %}
20
+ {% for file in site.static_files %}
21
+ <url>
22
+ <loc>{{ site_url }}{{ file.path }}</loc>
23
+ <lastmod>{{ file.modified_time | date_to_xmlschema }}</lastmod>
24
+ <priority>0.6</priority>
25
+ </url>
26
+ {% endfor %}
27
+ </urlset>
@@ -0,0 +1,21 @@
1
+ # Monkey Patch Jekyll 2.0.0 static file treatment back to Jekyll 1.4.x
2
+ # See https://github.com/jekyll/jekyll/pull/2075/files
3
+
4
+ module Jekyll
5
+ class StaticFile
6
+
7
+ # Returns the source file path relative to the site source
8
+ def relative_path
9
+ @relative_path ||= path.sub(/\A#{@site.source}/, '')
10
+ end
11
+
12
+ def to_liquid
13
+ {
14
+ "path" => relative_path,
15
+ "modified_time" => Time.at(mtime),
16
+ "extname" => File.extname(relative_path)
17
+ }
18
+ end
19
+
20
+ end
21
+ end
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-sitemap
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - GitHub, Inc.
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-03-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.4.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.4.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description:
56
+ email: support@github.com
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - lib/jekyll-sitemap.rb
62
+ - lib/sitemap.xml
63
+ - lib/static_file.rb
64
+ homepage: https://github.com/github/jekyll-sitemap
65
+ licenses:
66
+ - MIT
67
+ metadata: {}
68
+ post_install_message:
69
+ rdoc_options: []
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ requirements: []
83
+ rubyforge_project:
84
+ rubygems_version: 2.2.0
85
+ signing_key:
86
+ specification_version: 4
87
+ summary: Automatically generate a sitemap.xml for your Jekyll site.
88
+ test_files: []