File: versions.rb

package info (click to toggle)
php-league-commonmark 2.7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,260 kB
  • sloc: php: 20,378; xml: 1,988; ruby: 45; makefile: 21; javascript: 15
file content (63 lines) | stat: -rw-r--r-- 1,930 bytes parent folder | download | duplicates (5)
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)