Skip to content

Commit 9fe7b01

Browse files
committed
posts should now merge with normal pages
1 parent 46c890c commit 9fe7b01

File tree

10 files changed

+84
-10
lines changed

10 files changed

+84
-10
lines changed

lib/jekyll/helper/rdf_generator_helper.rb

+14-9
Original file line numberDiff line numberDiff line change
@@ -132,21 +132,26 @@ def extract_list_resources path
132132
result
133133
end
134134

135+
def assimilate_pages(page, pages)
136+
pages.map!{|old_page|
137+
if (old_page.url.chomp('.html') == page.url.chomp('.html'))
138+
changes||=true
139+
page.assimilate_page(old_page)
140+
page
141+
else
142+
old_page
143+
end
144+
}
145+
end
146+
135147
def create_page(site, resource, mapper)
136148
Jekyll::JekyllRdf::Helper::RdfPageHelper.prepare_resource resource, mapper
137149
page = Jekyll::Page.new(site, site.source, resource.filedir, resource.filename)
138150
page.re_init_as_rdf(resource, mapper)
139151
if(page.complete)
140152
changes = false
141-
site.pages.map!{|old_page|
142-
if (old_page.url.chomp('.html') == page.url.chomp('.html'))
143-
changes||=true
144-
page.assimilate_page(old_page)
145-
page
146-
else
147-
old_page
148-
end
149-
}
153+
assimilate_pages(page, site.pages)
154+
assimilate_pages(page, site.posts.docs)
150155
unless changes
151156
site.pages << page
152157
end

test/cases/PostMerge/Gemfile

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
source 'https://rubygems.org'
2+
group :jekyll_plugins do
3+
gem "theme-gem", :path => '../../theme-gem'
4+
gem 'jekyll-rdf', :path => '../../../'
5+
end

test/cases/PostMerge/_config.yml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
baseurl: ""
2+
url: "http://example.org/"
3+
4+
theme: theme-gem
5+
plugins:
6+
- jekyll-rdf
7+
jekyll_rdf:
8+
path: "_data/knowledge-base.ttl"
9+
restriction: "SELECT ?resourceUri WHERE {?resourceUri ?p ?o}"
10+
default_template: "default"
11+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
2+
@prefix owl: <http://www.w3.org/2002/07/owl#>.
3+
4+
<http://example.org/blog> a owl:Ontology ;
5+
rdfs:label "My Jekyll RDF Blog" .
6+
7+
<http://example.org/2019/02/12/Blogpost> a owl:Ontology ;
8+
rdfs:label "My Jekyll RDF Blogpost" .
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
PREFIX ex: <http://example.org/>
2+
PREFIX jb: <http://jekyllrdf.biz/>
3+
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
rdf_prefix_path: "_data/prefixes.sparql"
3+
---
4+
<html>
5+
<head>
6+
<title>Rdf Post Merge Test</title>
7+
<meta charset="UTF-8">
8+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
9+
</head>
10+
<body>
11+
<h1>My Jekyll RDF Blog</h1><br/>
12+
{{content}}<br/>
13+
{{ page.rdf }}<br/>
14+
</body>
15+
</html>
16+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This is a Blogpost

test/cases/PostMerge/blog.html

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
layout: ontology
3+
---
4+
5+
A page
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
require 'test_helper'
2+
3+
class TestPrefixes < Test::Unit::TestCase
4+
context "Page merging feature" do
5+
include RdfTestUtility
6+
should "also merge posts" do
7+
setup_jekyll File.dirname(__FILE__)
8+
9+
content = []
10+
file = File.read(File.join(@source, "_site/2019/02/12/Blogpost.html"))
11+
content = file[/\<body\>(.|\s)*\<\/body\>/][6..-6].strip.split("<br/>").map do |entry|
12+
entry.strip
13+
end
14+
15+
assert_equal "<h1>My Jekyll RDF Blog</h1>", content[0]
16+
assert_equal "This is a Blogpost", content[1]
17+
assert_equal "http://example.org/2019/02/12/Blogpost", content[2]
18+
end
19+
end
20+
end

test/cases/prefixesInPostsWithGemTheme/test_prefixes.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class TestPrefixes < Test::Unit::TestCase
1313
end
1414

1515
assert_equal "<h1>My Jekyll RDF Blog</h1>", content[0]
16-
assert_equal "<p>This is a Blogpost</p>", content[1]
16+
assert_equal "This is a Blogpost", content[1]
1717
# this line has to be uncommented once page.rdf is set in posts
1818
#assert_equal "My Jekyll RDF Blogpost", content[2]
1919
assert_equal "My Jekyll RDF Blog", content[3]

0 commit comments

Comments
 (0)