123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 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)
|