Jekyll插件,用于在静态站点中包含RDF数据。
API文档可在Rubydoc.info上找到。
Docker有一个Docker图像查看docker的使用情况。
作为Jekyll RDF的先决条件,您当然需要安装Jekyll 。请在https://jekyllrb.com/docs/installation/上查看安装说明。
如果您已经有工作的Jekyll安装,则可以添加Jekyll-RDF插件。可能您已经在使用Bundler,并且您的Jekyll目录中有一个Gemfile
。将Jekyll-RDF添加到插件部分:
gem "jekyll-rdf", "~> 3.2"
将版本字符串替换为Rubygems.org上列出的当前可用稳定版本。更新您的Gemfile
后,您可能想运行bundle install
(或bundle install --path vendor/bundle
)或bundle update
。
如果您不使用Gemfile
来管理jekyll/ruby软件包安装jekyll-rdf,则使用gem
:
gem install jekyll-rdf
如果您想从源构建插件,请查看我们的开发部分。
本节说明了如何在三个步骤中使用Jekyll-RDF:
在“一目了然的参数和配置选项”部分中记录了用于模板和配置选项中的所有过滤器和方法。
首先,您需要一个jekyll页面。为了创建一个,只需做:
jekyll new my_page
cd my_page
此外,您的_config.yml
中需要一些jekyll-rdf
。 IE url
和baseurl
参数用于将资源页面包含在站点的根部,必须配置插件,并且必须存在RDF文件的路径。
baseurl : " /simpsons "
url : " http://example.org "
plugins :
- jekyll-rdf
jekyll_rdf :
path : " _data/data.ttl "
default_template : " default.html "
restriction : " SELECT ?resourceUri WHERE { ?resourceUri ?p ?o . FILTER regex(str(?resourceUri), 'http://example.org/simpsons') } "
class_template_mappings :
" http://xmlns.com/foaf/0.1/Person " : " person.html "
instance_template_mappings :
" http://example.org/simpsons/Abraham " : " abraham.html "
Jekyll RDF使用url
+ baseurl
来识别其应构建RDF资源页面的URL。在上面的示例中,这意味着具有IRI <http://example.org/simpsons/Bart>
的资源渲染到路径/Bart.html
。 Jekyll的其他功能和插件都取决于这两个参数。如果在任何情况下,两个参数与Jekyll RDF应该假设的基本路径不同,则可以在jekyll_rdf
部分中设置参数baseiri
。
baseurl : " /simpsons "
url : " https://beispiel.com "
jekyll_rdf :
baseiri : " http://example.org/ "
可以将特定类(分别为RDF型)或单个资源映射到模板。
class_template_mappings :
" http://xmlns.com/foaf/0.1/Person " : " person.html "
instance_template_mappings :
" http://aksw.org/Team " : " team.html "
映射到类的模板将用于渲染该类及其子类的每个实例。每个实例都呈现为映射到模板的最特定类。如果映射对资源的含糊不清,则将警告输出到您的命令窗口,因此请注意!
也可以定义一个默认模板,该模板用于所有资源,该模板不受class_template_mappings
或instance_template_mappings
覆盖的所有资源。
default_template : " default.html "
您可以通过将SPARQL查询作为restriction
参数添加到_config.yml
来限制所选择的资源。请使用?resourceUri
作为由此产生的URI的占位符:
restriction : " SELECT ?resourceUri WHERE { ?resourceUri <http://www.ifi.uio.no/INF3580/family#hasFather> <http://www.ifi.uio.no/INF3580/simpsons#Homer> } "
实施限制有3个预定义的关键字:
subjects
将加载所有主题urispredicates
将加载所有谓词URIobjects
将加载所有对象URI由于某些SPARQL端点具有适用于某些查询的内置限制,因此您还可以定义要构建的资源列表。文件_data/restriction.txt
cool具有以下内容:
<http://example.org/resourceA>
<http://example.org/resourceB>
<http://example.org/resourceC>
<http://example.org/resourceD>
<http://example.org/resourceE>
在_config.yml
中,您可以使用键restriction_file
指定文件。如果两者都指定了restriction_file
和restriction
,则jekyll rdf将为两者的结合构建页面。
此外,您可以决定是否要渲染空白节点。您只需要添加include_blank
到_config.yml
:
jekyll_rdf :
include_blank : true
最后,也可以使用选项语言为RDF-Literals设置首选language
:
jekyll_rdf :
language : " en "
运行jekyll build
将渲染RDF资源到_site/…
目录。运行jekyll serve
将渲染RDF资源,并为您提供通常可在http://localhost:4000/
即时http-server。 IRIS的RDF资源不会从配置的Jekyll url
和baseurl
( baseiri
)开始渲染到_site/rdfsites/…
sub Directory。
要使用RDF数据,请在_layouts
-directory中创建一个或多个文件(例如rdf_index.html
或person.html
)。对于每个资源,一个页面都将渲染。请参阅下面的示例:
---
layout: default
---
< div class =" home " >
< h1 class =" page-heading " > < b > {{ page.rdf.iri }} </ b > </ h1 >
< p >
< h3 > Statements in which {{ page.rdf.iri }} occurs as subject: </ h3 >
{% include statements_table.html collection=page.rdf.statements_as_subject %}
</ p >
< p >
< h3 > Statements in which {{ page.rdf.iri }} occurs as predicate: </ h3 >
{% include statements_table.html collection=page.rdf.statements_as_predicate %}
</ p >
< p >
< h3 > Statements in which {{ page.rdf.iri }} occurs as object: </ h3 >
{% include statements_table.html collection=page.rdf.statements_as_object %}
</ p >
</ div >
我们在
test/source/_layouts/rdf_index.html
test/source/_layouts/person.html
{{ page.rdf }}
是当前渲染的资源。
{{ page.rdf.iri }}
返回当前渲染资源的IRI。
要访问通过谓词连接到当前主题的对象,您可以使用我们的自定义液体过滤器。对于单个对象或对象列表,请使用rdf_property
-filter(请参阅1和2)。
要访问一个通过给定谓词连接到当前主题的对象,请使用rdf_property
-filter过滤page.rdf
数据。例子:
Age: {{ page.rdf | rdf_property: '<http://xmlns.com/foaf/0.1/age>' }}
要选择特定语言,请在过滤器中添加第二个参数:
Age: {{ page.rdf | rdf_property: '<http://xmlns.com/foaf/0.1/job>','en' }}
要通过给定的谓词将多个对象连接到当前主题,请与设置为true
的第三个参数一起使用过滤器rdf_property
(可以通过将其设置为nil
来省略该语言的第二个参数):
Sisters: < br />
{% assign resultset = page.rdf | rdf_property: ' < http: //www.ifi.uio.no/INF3580/family#hasSister > ', nil, true %}
< ul >
{% for result in resultset %}
< li > {{ result }} </ li >
{% endfor %}
</ ul >
要选择特定语言,请在过滤器中添加第二个参数:
Book titles: < br />
{% assign resultset = page.rdf | rdf_property: ' < http: //xmlns.com/foaf/0.1/currentProject > ','de' %}
< ul >
{% for result in resultset %}
< li > {{ result }} </ li >
{% endfor %}
</ ul >
为了支持RDF容器和RDF集合,我们提供rdf_container
和rdf_collection
滤波器。
在这两种情况下,各自的容器资源都得到了解答。需要识别集合的头,然后通过相应的过滤器。对于容器,我们目前支持rdf:Bag
, rdf:Seq
和rdf:Alt
的明确实例,使用rdfs:ContainerMembershipProperty
S: rdf:_1
, rdf:_2
, rdf:_3
…。使用rdf:first
, rdf:rest
并用L rdf:rest rdf:nil
终止的收集。由于需要识别集合的头部,因此您不能在那里使用空白节点,因此您可以通过包含集合的谓词间接识别它。
示例图:
@prefix ex: <http://example.org/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
ex:Resource ex:lists ex:List ;
ex:directList ("hello" "from" "turtle") .
ex:hasContainer ex:Container .
ex:List rdf:first "hello" ;
rdf:rest ("rdf" "list") .
ex:Container a rdf:Bag ;
rdf:_1 "hello" ;
rdf:_2 "rdf" ;
rdf:_3 "container" .
ex:Resource
的模板:
{% assign list = page.rdf | rdf_collection: '<http://example.org/directList>' %}
<ol>
{% for item in list %}
<li>{{ item }}</li>
{% endfor %}
</ol>
{% assign container = page.rdf | rdf_property: '<http://example.org/hasContainer>' | rdf_container %}
<ul>
{% for item in container %}
<li>{{ item }}</li>
{% endfor %}
</ul>
我们实施了一个液体过滤器sparql_query
来运行自定义SPARQL查询。每次出现?resourceUri
被当前的URI替换。注意:由于液体概念,您必须分开查询并设置变量。例子:
{% assign query = 'SELECT ?sub ?pre WHERE { ?sub ?pre ?resourceUri }' %}
{% assign resultset = page.rdf | sparql_query: query %}
< table >
{% for result in resultset %}
< tr >
< td > {{ result.sub }} </ td >
< td > {{ result.pre }} </ td >
</ tr >
{% endfor %}
</ table >
可以声明一组可以在rdf_property
和sparql_query
液体滤波器中使用的前缀。这允许缩短每个液体过滤器所需的文本量。前缀声明的语法与SPARQL 1.1相同。只需将您的前缀放在单独的文件中,然后将密钥rdf_prefix_path
以及文件的YAML前路路径以及应该使用前缀使用的相对路径。
对于前缀,适用于YAML前提下定义的其他变量相同的规则。然后,这些变量将可供您使用,同时使用液体标签访问文件中的液体标签,也可以在任何布局中访问,或者包括所讨论的页面或帖子所依赖的页面或帖子。 (来源:YAML前物质)。如果您使用的前缀Incloce Incloys尤其重要。
如果资源的URI包含一个片段标识符( #…
),则可以将资源与其他资源一起托管,并带有相同的基础URI,直至单个页面上的片段标识符。该页面将通过基本URI访问,而在模板中,具有片段标识符的单个URI可以通过Collection page.sub_rdf
访问。
例子
在_config.yml
中:
' instance_template_mappings ' :
' http://www.ifi.uio.no/INF3580/simpsons ' : 'family.html'
在_layouts/family.html
中:
{% for member in page.sub_rdf%}
{% include simPerson.html person = member%}
{% endfor %}
该示例使用模板family.html
渲染一个页面,其中包含每个资源以http://www.ifi.uio.no/INF3580/simpsons#
开头的每个资源,与资源http://www.ifi.uio.no/INF3580/simpsons
本身。 page.sub_rdf
-rdf在其URI中使用片段标识符subResources
从此处发出的subResources
superResource
收集所有资源)。
jekyll-rdf
S过滤器之一返回的每个资源都是液体也可以像字符串一样处理的对象。它们都有以下可在液体中使用的方法。
返回一个主题是当前资源的语句列表。可以通过解决其位置来访问返回列表中的语句: Statement.subject
, Statement.predicate
,prosedigate,相应的Statement.object
。
返回谓词是当前资源的语句列表。可以通过解决其位置来访问返回列表中的语句: Statement.subject
, Statement.predicate
,prosedigate,相应的Statement.object
。
返回对象是当前资源的语句列表。可以通过解决其位置来访问返回列表中的语句: Statement.subject
, Statement.predicate
,prosedigate,相应的Statement.object
。
返回代表此rdfresource的页面的URL。
将路径返回代表此rdfresource的页面。谨慎使用它。
此属性与包含片段标识符的虹膜( http://superresource#anchor
)渲染页面有关。如果在给定的知识库中实际描述了这个属性,则此属性对于超级资源( http://superresource
)是正确的。
该属性告诉当前站点生成的上下文中,资源的相应实例是否呈现。用法: {% if resource.rendered? %}…{% endif %}
。
返回代表此资源的详细字符串。
概要: <resource_iri> | rdf_get
参数:
<resource_iri>
是代表RDF资源的字符串,带有前缀( prefix:name
)或完整的IRI( <http://ex.org/name>
)。引用当前页面使用页面的资源page.rdf
, page
或nil
。描述:获取提供的IRI,并从您的知识库中返回相应的RDFRESOURCE对象。在此对象上,您可以按照“部分资源”中所述调用方法。
例子:
{{'<http://www.ifi.uio.no/INF3580/simpsons>' | rdf_get }}
结果:
http://www.ifi.uio.no/INF3580/simpsons
概要: <rdf_resource> OR <rdf_resource_string> | rdf_property: <property>, [<lang>] OR [<lang>, <list>] OR [nil, <list>]
参数:
<rdf_resource>
是RDFResource。引用当前页面使用页面的资源page.rdf
, page
或nil
。<rdf_resource_string>
是代表<rdf_resource>
IRI的字符串。<property>
是代表RDF谓词的字符串,带有前缀( prefix:name
)或完整的IRI( <http://ex.org/name>
)。<lang>
是语言标签(例如de
)。如果省略此参数,则nil
替换。<list>
是一个布尔值( true
, false
)。描述:返回三重<rdf_resource> <predicate> ?object
的对象。返回的对象可以通过任何类型,资源,文字或空白节点。
示例(默认):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_get %}
{{ resource | rdf_property: '<http://xmlns.com/foaf/0.1/job>' }}
结果:
"unknown"
示例(字符串):
{{ '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_property: '<http://xmlns.com/foaf/0.1/job>' }}
结果:
"unknown"
示例(使用语言):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_get %}
{{ resource | rdf_property: '<http://xmlns.com/foaf/0.1/job>', 'de' }}
结果:
"unbekannt"
示例(返回为列表):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_get %}
{% assign resultset = resource | rdf_property: '<http://xmlns.com/foaf/0.1/job>', nil, true %}
{% for result in resultset %}
<li>{{ result }}</li>
{% endfor %}
结果:
< li > "unknown" </ li >
< li > "unbekannt" </ li >
< li > "unbekannter Job 2" </ li >
< li > "unknown Job 2" </ li >
概要: <rdf_resource> OR <rdf_resource_string>| rdf_inverse_property: <property>, [<list>]
参数:
<rdf_resource>
是RDFResource。引用当前页面使用页面的资源page.rdf
, page
或nil
。<rdf_resource_string>
是代表<rdf_resource>
IRI的字符串。<property>
是代表RDF谓词的字符串,带有前缀( prefix:name
)或完整的IRI( <http://ex.org/name>
)。<list>
是一个布尔值( true
, false
)。描述:与RDF_Property相同,但在逆向方向上。它返回了三重主题的主题?subject <predicate> <rdf_resource>
。返回的对象可以通过任何类型,资源或空白节点。
示例(默认):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_get %}
{{ page.rdf | rdf_inverse_property: '<http://www.ifi.uio.no/INF3580/family#hasFather>' }}
结果:
http://www.ifi.uio.no/INF3580/simpsons#Bart
示例(字符串):
{{ '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_inverse_property: '<http://www.ifi.uio.no/INF3580/family#hasFather>' }}
结果:
http://www.ifi.uio.no/INF3580/simpsons#Bart
示例(作为列表):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons#Homer>' | rdf_get %}
{% assign resultset = resource | rdf_property: '<http://www.ifi.uio.no/INF3580/family#hasFather>', true %}
{% for result in resultset %}
<li>{{ result }}</li>
{% endfor %}
结果:
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
概要: <rdf_resource> | sparql_query: <query>
或<reference_array> | sparql_query: <query>
或<query> | sparql_query
参数:
<rdf_resource>
是一个rdfresource,它将替换查询中的?resourceUri
。省略此参数或引用当前页面使用页面的资源page.rdf
, page
或nil
。<reference_array>
一个包含虹膜作为字符串或rdf_resource
数组。他们将在您的查询中连续替换每个?resourceUri_<index>
。<query>
一个包含SPARQL查询的字符串。描述:评估给定知识库的query
,并返回一系列结果(结果集)。结果集(结果)中的每个输入对象都包含所选变量作为资源或文字。您可以使用?resourceUri
来引用以<rdf_resource>
给出的资源。
示例(页)
<!--Rendering the page of resource Lisa -->
{% assign query = 'SELECT ?sub ?pre WHERE { ?sub ?pre ?resourceUri }' %}
{% assign resultset = page.rdf | sparql_query: query %}
<table>
{% for result in resultset %}
<tr><td>{{ result.sub }}</td><td>{{ result.pre }}</td></tr>
{% endfor %}
</table>
结果:
< table >
< tr > < td > http://www.ifi.uio.no/INF3580/simpsons#TheSimpsons </ td > < td > http://www.ifi.uio.no/INF3580/family#hasFamilyMember </ td > </ tr >
< tr > < td > http://www.ifi.uio.no/INF3580/simpsons#Bart </ td > < td > http://www.ifi.uio.no/INF3580/family#hasSister </ td > </ tr >
< tr > < td > http://www.ifi.uio.no/INF3580/simpsons#Maggie </ td > < td > http://www.ifi.uio.no/INF3580/family#hasSister </ td > </ tr >
...
示例(数组)
{% assign query = 'SELECT ?x WHERE {?resourceUri_0 ?x ?resourceUri_1}' %}
{% assign array = "<http://www.ifi.uio.no/INF3580/simpsons#Homer>,<http://www.ifi.uio.no/INF3580/simpsons#Marge>" | split: %}
{% assign resultset = array | sparql_query: query %}
<table>
{% for result in resultset %}
<tr><td>{{ result.x }}</td></tr>
{% endfor %}
</table>
结果:
<table>
<tr><td>http://www.ifi.uio.no/INF3580/family#hasSpouse</td></tr>
</table>
示例(查询)
{% assign query = 'SELECT ?x WHERE {<http://www.ifi.uio.no/INF3580/simpsons#Homer> ?x <http://www.ifi.uio.no/INF3580/simpsons#Marge>}' %}
{% assign resultset = query | sparql_query %}
<table>
{% for result in resultset %}
<tr><td>{{ result.x }}</td></tr>
{% endfor %}
</table>
结果:
<table>
<tr><td>http://www.ifi.uio.no/INF3580/family#hasSpouse</td></tr>
</table>
概要: <rdf_container_head> **OR** <rdf_container_head_string> | rdf_container
参数:
<rdf_container_head>
是RDFResource。引用当前页面使用页面的资源page.rdf
, page
或nil
。<rdf_container_head_string>
是代表<rdf_container_head>
的IRI的字符串。描述:返回一个带有rdf_container_head
引用的容器中每个元素的资源的数组。
示例:
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpson-container#Container>' | rdf_get %}
{% assign array = resource | rdf_container %}
{% for item in array %}
{{ item }}
{% endfor %}
http://www.ifi.uio.no/INF3580/simpsons#Homer
http://www.ifi.uio.no/INF3580/simpsons#Marge
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
示例:(字符串)
{% assign array = '<http://www.ifi.uio.no/INF3580/simpson-container#Container>' | rdf_container %}
{% for item in array %}
{{ item }}
{% endfor %}
http://www.ifi.uio.no/INF3580/simpsons#Homer
http://www.ifi.uio.no/INF3580/simpsons#Marge
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
概要: <rdf_collection_head> OR <rdf_collection_head_string> | rdf_collection
或<rdf_resource> | rdf_collection: "<property>"
参数:
<rdf_collection_head>
是RDFResource。引用当前页面使用页面的资源page.rdf
, page
或nil
。<rdf_collection_head_string>
是代表<rdf_collection_head>
IRI的字符串。<rdf_resource>
是RDFResource。引用当前页面使用页面的资源page.rdf
, page
或nil
。<property>
是代表RDF谓词的字符串,带有前缀( prefix:name
)或完整的IRI( <http://ex.org/name>
)。描述:返回一个带有rdf_collection_head
引用其头部的元素的资源的数组。与其直接引用头部,还可以指定引用收集头的属性。
示例(指定头资源):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpson-collection#Collection>' | rdf_get %}
{% assign array = resource | rdf_collection %}
{% for item in array %}
{{ item }}
{% endfor %}
结果:
http://www.ifi.uio.no/INF3580/simpsons#Homer
http://www.ifi.uio.no/INF3580/simpsons#Marge
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
示例(指定头字符串):
{% assign array = '<http://www.ifi.uio.no/INF3580/simpson-collection#Collection>' | rdf_collection %}
{% for item in array %}
{{ item }}
{% endfor %}
结果:
http://www.ifi.uio.no/INF3580/simpsons#Homer
http://www.ifi.uio.no/INF3580/simpsons#Marge
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
示例(通过属性指定):
{% assign resource = '<http://www.ifi.uio.no/INF3580/simpsons>' | rdf_get %}
{% assign array = resource | rdf_collection: "<http://www.ifi.uio.no/INF3580/simpsons#familycollection>" %}
{% for item in array %}
{{ item }}
{% endfor %}
结果:
http://www.ifi.uio.no/INF3580/simpsons#Homer
http://www.ifi.uio.no/INF3580/simpsons#Marge
http://www.ifi.uio.no/INF3580/simpsons#Bart
http://www.ifi.uio.no/INF3580/simpsons#Lisa
http://www.ifi.uio.no/INF3580/simpsons#Maggie
姓名 | 范围 | 默认 | 描述 | 例子 |
---|---|---|---|---|
小路 | RDF文件的相对路径 | 没有默认值 | 指定您要渲染网站的RDF文件的路径 | path: "rdf-data/simpsons.ttl" |
偏僻的 | 一节指定远程数据源 | 没有默认值 | 必须包含endpoint 密钥。 remote 参数覆盖path 参数。 | |
远程>端点 | SPARQL端点以获取数据 | 没有默认值 | 指定您要渲染网站的SPARQL端点的URL | remote: endpoint: "http://localhost:5000/sparql/" |
远程> default_graph | 在端点上选择一个命名图,以代替端点默认图 | 没有默认值 | 指定IRI到命名的图表以从SPARQL端点进行选择 | remote: endpoint: "http://localhost:5000/sparql/" default_graph: "http://example.org/" |
语言 | 语言标签作为字符串 | 没有默认值 | 当您使用我们的液体过滤器选择对象时,指定首选语言 | language: "en" |
包括_blank | 布尔表达 | 错误的 | 指定是否也应该呈现空白节点 | include_blank: true |
限制 | sparql-Query作为字符串或主题/对象/谓词 | 没有默认值 | 用给定的sparql Query限制资源选择,以限制为特殊变量的结果?resourceUri 或三个关键字subjects (仅主题URI), objects , predicates | restriction: "SELECT ?resourceUri WHERE { ?resourceUri <http://www.ifi.uio.no/INF3580/family#hasFather> <http://www.ifi.uio.no/INF3580/simpsons#Homer> }" |
限制性_file | 要渲染的资源文件 | 没有默认值 | 将资源选择限制为文件中的资源列表 | restriction_file: _data/restriction.txt |
default_template | _layouts目录中默认RDF-Template的文件名 | 没有默认值 | 指定您要Jekyll用于渲染所有RDF资源的模板文件 | default_template: "rdf_index.html" |
instance_template_mappings | 目标URI作为字符串:模板的文件名作为字符串 | 没有默认值 | 将uris映射到模板文件,用于渲染单个实例 | instance_template_mappings: "http://www.ifi.uio.no/INF3580/simpsons#Abraham": "abraham.html" |
class_template_mappings | 目标URI作为字符串:模板的文件名作为字符串 | 没有默认值 | 将URI的地图放在模板文件中,用于渲染该类的所有实例 | class_template_mappings: "http://xmlns.com/foaf/0.1/Person": "person.html" |
还有一个Docker/Podman图像,它具有Jekyll和Jekyll-RDF的预安装。您可以得到它:
docker pull ghcr.io/aksw/jekyll-rdf:latest
并与
docker run --rm --workdir /page -v $PWD:/page ghcr.io/aksw/jekyll-rdf:latest
或使用Jekyll执行
docker run --rm --workdir /page -v $PWD/sources:/page -v $PWD/build/jekyll:/build ghcr.io/aksw/jekyll-rdf:latest jekyll build -d /build
图像的入口点执行bundle install
首先安装一个然后运行bundle exec jekyll build
或bundle exec <your command>
。为了保持运行之间的已安装软件包,将环境变量BUNDLE_PATH
指定到在运行之间持续存在的位置,例如-e BUNDLE_PATH=.vendor
。为了将整个Bundler的东西设置为NO_BUNDLER
非空值,入口处将按原样运行您的命令。
姓名 | 默认 | 描述 |
---|---|---|
BUNDLE_PATH | 不设置 | 设置Bundler安装软件包的路径。另请参见Bundler文档。 |
NO_BUNDLER | 不设置 | 设置为非空价值以禁用入口点中的所有捆绑器零件 |
要使用git repository安装项目,您将需要在系统上进行git
。第一步只是克隆存储库:
git clone [email protected]:AKSW/jekyll-rdf.git
将自动生成一个名为jekyll-rdf
的文件夹。您需要切换到此文件夹并编译Ruby Gem来完成安装:
cd jekyll-rdf
gem build jekyll-rdf.gemspec
gem install jekyll-rdf -*.gem
bundle exec rake test
每次执行测试时,都会处理test/source
内的Jekyll页面。启动纤细的Web服务器以观看Web浏览器中的结果,例如Pythons SimpleHTTPServer
(Python 2,对于Python 3,它是http.server
):
cd test/source/_site
python -m SimpleHTTPServer 8000
要生成API文档,请导航到jekyll-rdf/lib
目录并运行
gem install yard
yardoc *
生成的文档放在jekyll-rdf/lib/doc
目录中。
Jekyll-RDF获得了MIT许可证的许可。