Module: Jekyll::CustomFilters

Includes:
Filters::URLFilters, Liquid::StandardFilters
Defined in:
lib/custom_filters.rb

Instance Method Summary collapse

Instance Method Details

#chunked(input, size) ⇒ Object



62
63
64
65
66
67
68
69
# File 'lib/custom_filters.rb', line 62

def chunked(input, size)
    size = Liquid::Utils.to_integer(size)
    if input.is_a? Array
        input.each_slice(size).to_a
    else
        input.to_s.scan(/.{1,#{size}}/m)
    end
end

#find(input, property, targetValue = nil) ⇒ Object



15
16
17
# File 'lib/custom_filters.rb', line 15

def find(input, property, targetValue = nil)
    first(where(input, property, targetValue))
end

#is_active?(pageHash, children = nil) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
11
12
13
# File 'lib/custom_filters.rb', line 8

def is_active?(pageHash, children = nil)
    page = pageFromHash(pageHash)
    return true if page.equal? currentPage

    isActiveRecursion? children
end

#prefix(input, prefix) ⇒ Object



53
54
55
# File 'lib/custom_filters.rb', line 53

def prefix(input, prefix)
    prefix.to_s + input.to_s if input
end

#previous_and_next(pageHash, nav) ⇒ Object



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
# File 'lib/custom_filters.rb', line 19

def previous_and_next(pageHash, nav)
    result = {'previous' => nil, 'next' => nil}
    page = pageFromHash(pageHash)

    indexPage = pageFromHash(nav, 'index_path')

    if page.equal? indexPage
        result['next'] = pageFromHash(nav['menu'].first)
        return result
    end

    flattenedMenu = flattenMenu(nav['menu'])

    for i in 0...flattenedMenu.count
        pageI = flattenedMenu[i]

        if page.equal? pageI
            result['previous'] = i == 0 ? indexPage : flattenedMenu[i - 1]
            result['next'] = flattenedMenu[i + 1] unless i == flattenedMenu.count - 1
            return result
        end
    end

    result
end

#strip_empty_html(input) ⇒ Object



72
73
74
# File 'lib/custom_filters.rb', line 72

def strip_empty_html(input)
    input.gsub(/<([^\/>][^>]*)><\/\1>/, '')
end

#suffix(input, suffix) ⇒ Object



57
58
59
# File 'lib/custom_filters.rb', line 57

def suffix(input, suffix)
    input.to_s + suffix.to_s if input
end

#url_without_ext(pageHash) ⇒ Object



45
46
47
48
49
50
# File 'lib/custom_filters.rb', line 45

def url_without_ext(pageHash)
    page = pageFromHash(pageHash)
    url = absolute_url(page.url)

    return url.sub /\.x?html?$/, ''
end