1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
module Jekyll
module VersionFilter
def get_version_type(version)
releases = @context.registers[:site].data['project']['releases']
releases.each do |type, versions|
return type if versions.has_key?(version)
end
return nil
end
def get_documentation_link(v)
releases = @context.registers[:site].data['project']['releases']
releases.each do |type, versions|
versions.each do |version, info|
return info['documentation_link'] if version == v
end
end
return nil
end
def get_version_link(targetVersion, page)
defaultUrl = '/' + targetVersion + '/'
menuByVersion = @context.registers[:site].data['menu']['version']
return defaultUrl if not menuByVersion.has_key?(targetVersion)
expectedUrl = page.gsub(/^\/[\d\.]+\//, defaultUrl)
menuByVersion[targetVersion].each do |section, pages|
pages.each do |title, url|
return url if url == expectedUrl
end
end
return defaultUrl
end
def get_edit_link(currentPath)
project = @context.registers[:site].data['project']
# Extract the version number from the current path
version = currentPath.delete_prefix('/').split('/').first()
if version == '' or version == 'releases'
version = project['default_version']
end
# Edit the page on that version branch if the version is supported;
# otherwise, use the default version branch
versionType = get_version_type(version)
if not (versionType == 'next' or versionType == 'current')
version = project['default_version']
end
return 'https://github.com/thephpleague/' + project['repository'] + '/edit/' + version + '/docs/' + currentPath
end
end
end
Liquid::Template.register_filter(Jekyll::VersionFilter)
|