blob: 8a08f4c9ceba87a9a6c718ab4ecba73e82479271 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
module Jekyll
class CelixPage < Page
def initialize(site, base, dir, name)
@site = site
@base = base
@dir = dir
@name = name
full_path = "source/" + dir
if !full_path.end_with?("/") then
full_path += "/"
end
full_path += name
file_contents = File.read(full_path, :encoding => 'utf-8')
if !file_contents.start_with?("---") then
hdr = "---\n"
hdr += "layout: celix-md\n"
hdr += "title: " + name + "\n"
hdr += "---\n\n\n"
edited_file_contents = hdr + file_contents
out_file = File.new(full_path, "w")
out_file.puts(edited_file_contents)
out_file.close
end
self.process(@name)
self.read_yaml(File.join(base, '_layouts'), 'celix-md.html')
self.data['title'] = name
super
end
end
class CelixPageGenerator < Generator
safe true
@@celix_doc_dir = "docs/celix"
def generate(site)
if site.layouts.key? 'celix-md'
celix_dir = site.source + "/" + @@celix_doc_dir
celix_markdown = File.join(celix_dir + "/**", "*.md")
Dir.glob(celix_markdown).select{ |e|
markdown_file = e
spl = markdown_file.rpartition('/')
file_name = spl.last()
splDir = spl.first().rpartition('source/' + @@celix_doc_dir)
file_dir = splDir.last()
if file_dir.start_with?("/") then
file_dir = file_dir[1, file_dir.length - 1]
end
file_dir = @@celix_doc_dir + "/" + file_dir
site.pages << CelixPage.new(site, site.source, file_dir, file_name)
}
end
end
end
end