jekyll-flant-plugins 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a41738634aa1a1d30a05e38149f2686a7a2c1853f7b2cecedf72f188b1786291
4
+ data.tar.gz: 67f9c55637d6f872624746583c26c5f98ab744bc73e4710da07b2727e16d8671
5
+ SHA512:
6
+ metadata.gz: 32a20188058a77dd76882c24f78b5e3e19fe5d30afe867c4a7d2206828d098fc148fd21ccea1ad32331b84155f2a2064046fd2e0ba83a81e620989d2db389ce2
7
+ data.tar.gz: 3122447e979ec0137085d3594ba8b20bdcf200572cfaa89a55344e90450dc8d5fb6f578ca112c0d10d75cdd9a734be8f57dcea0ae87484a1f645290ba268f8e4
@@ -0,0 +1,71 @@
1
+ require "liquid"
2
+
3
+ module JekyllFlantPlugins
4
+ module SnippetCut
5
+ class SnippetCutTag < Liquid::Block
6
+ @@DEFAULTS = {
7
+ :name => 'changeme.yaml',
8
+ :url => '/changeme.yaml',
9
+ :limited => false
10
+ }
11
+
12
+ def self.DEFAULTS
13
+ return @@DEFAULTS
14
+ end
15
+
16
+ def initialize(tag_name, raw_markup, tokens)
17
+ super
18
+ @raw_markup = raw_markup
19
+ @config = {}
20
+ end
21
+
22
+ def render(context)
23
+ @markup = Liquid::Template
24
+ .parse(@raw_markup)
25
+ .render(context)
26
+ .gsub(%r!\\\{\\\{|\\\{\\%!, '\{\{' => "{{", '\{\%' => "{%")
27
+ .strip
28
+
29
+ site = context.registers[:site]
30
+ lang = context.registers[:page]['lang']
31
+
32
+ override_config(@@DEFAULTS)
33
+
34
+ params = @markup.scan /([a-z]+)\=\"(.+?)\"/
35
+ if params.size > 0
36
+ config = {}
37
+ params.each do |param|
38
+ config[param[0].to_sym] = param[1]
39
+ end
40
+ override_config(config)
41
+ end
42
+
43
+ content = super
44
+ rendered_content = Jekyll::Converters::Markdown::KramdownParser.new(Jekyll.configuration()).convert(content)
45
+
46
+ %Q(
47
+ <div class="snippetcut#{@config[:limited] ? ' snippetcut_limited' : ''}" data-snippetcut>
48
+ <div class="snippetcut__title">#{if (@config[:url]!='#') then "<a href=\""+@config[:url]+"\" target=\"_blank\" class=\"snippetcut__title-name\" data-snippetcut-name>" else "<span class=\"snippetcut__title-name-text\" data-snippetcut-name>" end}#{@config[:name]}#{if (@config[:url]!='#') then "</a>" else "</span>" end}
49
+ <a href="javascript:void(0)" class="snippetcut__title-btn" data-snippetcut-btn-name>#{ site.data.dig('i18n', 'copy_filename', lang) ? site.data['i18n']['copy_filename'][lang] : site.data['global']['i18n']['copy_filename'][lang].capitalize }</a>
50
+ <a href="javascript:void(0)" class="snippetcut__title-btn" data-snippetcut-btn-text>#{ site.data.dig('i18n', 'copy_content', lang) ? site.data['i18n']['copy_content'][lang] : site.data['global']['i18n']['copy_content'][lang].capitalize }</a>
51
+ </div>
52
+ <div class="highlight">
53
+ #{rendered_content}
54
+ </div>
55
+ <div class="snippetcut__raw" data-snippetcut-text>#{CGI::escapeHTML(remove_excessive_newlines(content.strip.gsub(%r!^```[a-zA-Z0-9]*!,'')))}</div>
56
+ </div>
57
+ )
58
+ end
59
+
60
+ private
61
+
62
+ def override_config(config)
63
+ config.each{ |key,value| @config[key] = value }
64
+ end
65
+
66
+ def remove_excessive_newlines(text)
67
+ return text.sub(/^(\s*\R)*/, "").rstrip()
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JekyllFlantPlugins
4
+ VERSION = "0.1.0"
5
+ end
@@ -0,0 +1,4 @@
1
+ require_relative "jekyll-flant-plugins/snippetcut"
2
+
3
+
4
+ Liquid::Template.register_tag('snippetcut', JekyllFlantPlugins::SnippetCut::SnippetCutTag)
metadata ADDED
@@ -0,0 +1,82 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-flant-plugins
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Artem Kladov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-07-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '4.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: liquid
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '4.0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '4.0'
47
+ description:
48
+ email:
49
+ - artem.kladov@flant.com
50
+ executables: []
51
+ extensions: []
52
+ extra_rdoc_files: []
53
+ files:
54
+ - lib/jekyll-flant-plugins.rb
55
+ - lib/jekyll-flant-plugins/snippetcut.rb
56
+ - lib/jekyll-flant-plugins/version.rb
57
+ homepage: https://github.com/flant/website-core
58
+ licenses:
59
+ - MIT
60
+ metadata:
61
+ homepage_uri: https://github.com/flant/website-core
62
+ source_code_uri: https://github.com/flant/website-core
63
+ post_install_message:
64
+ rdoc_options: []
65
+ require_paths:
66
+ - lib
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: 2.7.0
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ requirements: []
78
+ rubygems_version: 3.1.4
79
+ signing_key:
80
+ specification_version: 4
81
+ summary: The Jekyll Plugins for using on the Flant Europe (flant.com) sites
82
+ test_files: []