jekyll-multiple-languages-plugin 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,92 +0,0 @@
1
- @media (max-width:1309px) {
2
- #cover-photo {
3
- max-width: 95%;
4
- }
5
-
6
- .header {
7
- padding-top: 3.45em;
8
- }
9
-
10
- .posts {
11
- font-size: 0.9em;
12
- }
13
-
14
- .footer {
15
- font-size: 0.85em;
16
- }
17
- }
18
-
19
- @media (max-width:1090px) {
20
- #logo {
21
- max-width: 100px;
22
- }
23
-
24
- #title {
25
- font-size: 3em;
26
- }
27
-
28
- .header {
29
- padding-top: 3.85em;
30
- }
31
-
32
- .posts {
33
- font-size: 0.85em;
34
- }
35
-
36
- .sidebar {
37
- padding-left: 4em;
38
- }
39
-
40
- .content {
41
- padding-right: 3em;
42
- }
43
-
44
- .footer {
45
- font-size: 0.85em;
46
- }
47
- }
48
-
49
- /**
50
- * iPhone width
51
- **/
52
- @media (max-width:640px) {
53
- #logo {
54
- max-width: 75px;
55
- }
56
-
57
- #cover-photo-container {
58
- text-align: center;
59
- }
60
-
61
- #title {
62
- font-size: 2.5em;
63
- }
64
-
65
- .sidebar {
66
- transition: 1s;
67
- margin-left: -100%;
68
- z-index: 3;
69
- width: 35%;
70
- padding-left: 1.75em;
71
- }
72
-
73
- .content {
74
- z-index: 1;
75
- padding-right: 2em;
76
- }
77
-
78
- #sidebar-button {
79
- display: block;
80
- z-index: 2;
81
- }
82
- }
83
-
84
- /*****************************************************************************/
85
- /*
86
- /* Sidebar responsive animations
87
- /*
88
- /*****************************************************************************/
89
-
90
- .slideIn {
91
- margin-left: 0%;
92
- }
@@ -1,60 +0,0 @@
1
- .highlight { background: #ffffff; }
2
- .highlight .c { color: #999988; font-style: italic } /* Comment */
3
- .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
4
- .highlight .k { font-weight: bold } /* Keyword */
5
- .highlight .o { font-weight: bold } /* Operator */
6
- .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
7
- .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
8
- .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
9
- .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
10
- .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
11
- .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
12
- .highlight .ge { font-style: italic } /* Generic.Emph */
13
- .highlight .gr { color: #aa0000 } /* Generic.Error */
14
- .highlight .gh { color: #999999 } /* Generic.Heading */
15
- .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
16
- .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
17
- .highlight .go { color: #888888 } /* Generic.Output */
18
- .highlight .gp { color: #555555 } /* Generic.Prompt */
19
- .highlight .gs { font-weight: bold } /* Generic.Strong */
20
- .highlight .gu { color: #aaaaaa } /* Generic.Subheading */
21
- .highlight .gt { color: #aa0000 } /* Generic.Traceback */
22
- .highlight .kc { font-weight: bold } /* Keyword.Constant */
23
- .highlight .kd { font-weight: bold } /* Keyword.Declaration */
24
- .highlight .kp { font-weight: bold } /* Keyword.Pseudo */
25
- .highlight .kr { font-weight: bold } /* Keyword.Reserved */
26
- .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
27
- .highlight .m { color: #009999 } /* Literal.Number */
28
- .highlight .s { color: #d14 } /* Literal.String */
29
- .highlight .na { color: #008080 } /* Name.Attribute */
30
- .highlight .nb { color: #0086B3 } /* Name.Builtin */
31
- .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
32
- .highlight .no { color: #008080 } /* Name.Constant */
33
- .highlight .ni { color: #800080 } /* Name.Entity */
34
- .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
35
- .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
36
- .highlight .nn { color: #555555 } /* Name.Namespace */
37
- .highlight .nt { color: #000080 } /* Name.Tag */
38
- .highlight .nv { color: #008080 } /* Name.Variable */
39
- .highlight .ow { font-weight: bold } /* Operator.Word */
40
- .highlight .w { color: #bbbbbb } /* Text.Whitespace */
41
- .highlight .mf { color: #009999 } /* Literal.Number.Float */
42
- .highlight .mh { color: #009999 } /* Literal.Number.Hex */
43
- .highlight .mi { color: #009999 } /* Literal.Number.Integer */
44
- .highlight .mo { color: #009999 } /* Literal.Number.Oct */
45
- .highlight .sb { color: #d14 } /* Literal.String.Backtick */
46
- .highlight .sc { color: #d14 } /* Literal.String.Char */
47
- .highlight .sd { color: #d14 } /* Literal.String.Doc */
48
- .highlight .s2 { color: #d14 } /* Literal.String.Double */
49
- .highlight .se { color: #d14 } /* Literal.String.Escape */
50
- .highlight .sh { color: #d14 } /* Literal.String.Heredoc */
51
- .highlight .si { color: #d14 } /* Literal.String.Interpol */
52
- .highlight .sx { color: #d14 } /* Literal.String.Other */
53
- .highlight .sr { color: #009926 } /* Literal.String.Regex */
54
- .highlight .s1 { color: #d14 } /* Literal.String.Single */
55
- .highlight .ss { color: #990073 } /* Literal.String.Symbol */
56
- .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
57
- .highlight .vc { color: #008080 } /* Name.Variable.Class */
58
- .highlight .vg { color: #008080 } /* Name.Variable.Global */
59
- .highlight .vi { color: #008080 } /* Name.Variable.Instance */
60
- .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
Binary file
Binary file
Binary file
@@ -1,8 +0,0 @@
1
- ---
2
- layout: default
3
- title: Home
4
- ---
5
-
6
- {% assign page = site.posts.first %}
7
- {% assign content = page.content %}
8
- {% include post.html %}
@@ -1,14 +0,0 @@
1
- window.onload = function() {
2
- var sidebar = document.getElementById("sidebar");
3
- var sidebarButton = document.getElementById("sidebar-button");
4
-
5
- function openSidebar(e) {
6
- if (sidebar.className.indexOf("slideIn") != -1) {
7
- sidebar.className = sidebar.className.replace(" slideIn", "");
8
- } else {
9
- sidebar.className = sidebar.className + " slideIn";
10
- }
11
- }
12
-
13
- sidebarButton.addEventListener("click", openSidebar, false);
14
- };
@@ -1,23 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'jekyll/multiple/languages/plugin/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "jekyll-multiple-languages-plugin"
8
- spec.version = Jekyll::Multiple::Languages::Plugin::VERSION
9
- spec.authors = ["Martin Kurtsson"]
10
- spec.email = ["martin.kurtsson@screeninteraction.com"]
11
- spec.description = %q{Plugin for Jekyll and Octopress that adds support for translated keys, templates and posts.}
12
- spec.summary = %q{I18n plugin for Jekyll and Octopress}
13
- spec.homepage = "https://github.com/screeninteraction/jekyll-multiple-languages-plugin/"
14
- spec.license = "MPL2"
15
-
16
- spec.files = `git ls-files`.split($/)
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake", "~> 0"
23
- end
@@ -1,208 +0,0 @@
1
- require "jekyll/multiple/languages/plugin/version"
2
-
3
- module Jekyll
4
- @parsedlangs = {}
5
- def self.langs
6
- @parsedlangs
7
- end
8
- def self.setlangs(l)
9
- @parsedlangs = l
10
- end
11
- class Site
12
- alias :process_org :process
13
- def process
14
- if !self.config['baseurl']
15
- self.config['baseurl'] = ""
16
- end
17
- #Variables
18
- config['baseurl_root'] = self.config['baseurl']
19
- baseurl_org = self.config['baseurl']
20
- languages = self.config['languages']
21
- exclude_org = self.exclude
22
- dest_org = self.dest
23
-
24
- #Loop
25
- self.config['lang'] = self.config['default_lang'] = languages.first
26
- puts
27
- puts "Building site for default language: \"#{self.config['lang']}\" to: #{self.dest}"
28
- process_org
29
- languages.drop(1).each do |lang|
30
-
31
- # Build site for language lang
32
- @dest = @dest + "/" + lang
33
- self.config['baseurl'] = self.config['baseurl'] + "/" + lang
34
- self.config['lang'] = lang
35
-
36
- # exclude folders or files from being copied to all the language folders
37
- exclude_from_localizations = self.config['exclude_from_localizations'] || []
38
- @exclude = @exclude + exclude_from_localizations
39
-
40
- puts "Building site for language: \"#{self.config['lang']}\" to: #{self.dest}"
41
- process_org
42
-
43
- #Reset variables for next language
44
- @dest = dest_org
45
- @exclude = exclude_org
46
-
47
- self.config['baseurl'] = baseurl_org
48
- end
49
- Jekyll.setlangs({})
50
- puts 'Build complete'
51
- end
52
-
53
- alias :read_posts_org :read_posts
54
- def read_posts(dir)
55
- translate_posts = !self.config['exclude_from_localizations'].include?("_posts")
56
- if dir == '' && translate_posts
57
- read_posts("_i18n/#{self.config['lang']}/")
58
- else
59
- read_posts_org(dir)
60
- end
61
- end
62
- end
63
-
64
- class Page
65
- def permalink
66
- return nil if data.nil? || data['permalink'].nil?
67
- if site.config['relative_permalinks']
68
- File.join(@dir, data['permalink'])
69
- else
70
- # Look if there's a permalink overwrite specified for this lang
71
- data['permalink_'+site.config['lang']] || data['permalink']
72
- end
73
- end
74
- end
75
-
76
- class LocalizeTag < Liquid::Tag
77
-
78
- def initialize(tag_name, key, tokens)
79
- super
80
- @key = key.strip
81
- end
82
-
83
- def render(context)
84
- if "#{context[@key]}" != "" #Check for page variable
85
- key = "#{context[@key]}"
86
- else
87
- key = @key
88
- end
89
- lang = context.registers[:site].config['lang']
90
- unless Jekyll.langs.has_key?(lang)
91
- puts "Loading translation from file #{context.registers[:site].source}/_i18n/#{lang}.yml"
92
- Jekyll.langs[lang] = YAML.load_file("#{context.registers[:site].source}/_i18n/#{lang}.yml")
93
- end
94
- translation = Jekyll.langs[lang].access(key) if key.is_a?(String)
95
- if translation.nil? or translation.empty?
96
- translation = Jekyll.langs[context.registers[:site].config['default_lang']].access(key)
97
- puts "Missing i18n key: #{lang}:#{key}"
98
- puts "Using translation '%s' from default language: %s" %[translation, context.registers[:site].config['default_lang']]
99
- end
100
- translation
101
- end
102
- end
103
-
104
- module Tags
105
- class LocalizeInclude < IncludeTag
106
- def render(context)
107
- if "#{context[@file]}" != "" #Check for page variable
108
- file = "#{context[@file]}"
109
- else
110
- file = @file
111
- end
112
-
113
- includes_dir = File.join(context.registers[:site].source, '_i18n/' + context.registers[:site].config['lang'])
114
-
115
- if File.symlink?(includes_dir)
116
- return "Includes directory '#{includes_dir}' cannot be a symlink"
117
- end
118
- if file !~ /^[a-zA-Z0-9_\/\.-]+$/ || file =~ /\.\// || file =~ /\/\./
119
- return "Include file '#{file}' contains invalid characters or sequences"
120
- end
121
-
122
- Dir.chdir(includes_dir) do
123
- choices = Dir['**/*'].reject { |x| File.symlink?(x) }
124
- if choices.include?(file)
125
- source = File.read(file)
126
- partial = Liquid::Template.parse(source)
127
-
128
- context.stack do
129
- context['include'] = parse_params(context) if @params
130
- contents = partial.render(context)
131
- site = context.registers[:site]
132
- ext = File.extname(file)
133
-
134
- converter = site.converters.find { |c| c.matches(ext) }
135
- contents = converter.convert(contents) unless converter.nil?
136
-
137
- contents
138
- end
139
- else
140
- "Included file '#{file}' not found in #{includes_dir} directory"
141
- end
142
- end
143
- end
144
- end
145
- end
146
-
147
- class LocalizeLink < Liquid::Tag
148
-
149
- def initialize(tag_name, key, tokens)
150
- super
151
- @key = key
152
- end
153
-
154
- def render(context)
155
- if "#{context[@key]}" != "" #Check for page variable
156
- key = "#{context[@key]}"
157
- else
158
- key = @key
159
- end
160
- key = key.split
161
- namespace = key[0]
162
- lang = key[1] || context.registers[:site].config['lang']
163
- default_lang = context.registers[:site].config['default_lang']
164
- baseurl = context.registers[:site].baseurl
165
- pages = context.registers[:site].pages
166
- url = "";
167
-
168
- if default_lang != lang
169
- baseurl = baseurl + "/" + lang
170
- end
171
-
172
- for p in pages
173
- unless p['namespace'].nil?
174
- page_namespace = p['namespace']
175
- if namespace == page_namespace
176
- permalink = p['permalink_'+lang] || p['permalink']
177
- url = baseurl + permalink
178
- end
179
- end
180
- end
181
- url
182
- end
183
- end
184
- end
185
-
186
- unless Hash.method_defined? :access
187
- class Hash
188
- def access(path)
189
- ret = self
190
- path.split('.').each do |p|
191
- if p.to_i.to_s == p
192
- ret = ret[p.to_i]
193
- else
194
- ret = ret[p.to_s] || ret[p.to_sym]
195
- end
196
- break unless ret
197
- end
198
- ret
199
- end
200
- end
201
- end
202
-
203
- Liquid::Template.register_tag('t', Jekyll::LocalizeTag)
204
- Liquid::Template.register_tag('translate', Jekyll::LocalizeTag)
205
- Liquid::Template.register_tag('tf', Jekyll::Tags::LocalizeInclude)
206
- Liquid::Template.register_tag('translate_file', Jekyll::Tags::LocalizeInclude)
207
- Liquid::Template.register_tag('tl', Jekyll::LocalizeLink)
208
- Liquid::Template.register_tag('translate_link', Jekyll::LocalizeLink)
@@ -1,9 +0,0 @@
1
- module Jekyll
2
- module Multiple
3
- module Languages
4
- module Plugin
5
- VERSION = "1.3.0"
6
- end
7
- end
8
- end
9
- end