octopress-multilingual 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +46 -7
- data/lib/octopress-multilingual.rb +1 -0
- data/lib/octopress-multilingual/posts_by-tag.rb +45 -0
- data/lib/octopress-multilingual/version.rb +1 -1
- metadata +17 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9c4b68e16a7376bd630c41a53223971b9cb8b31
|
4
|
+
data.tar.gz: 914ea8e09eb53c783f427614ef4f596ebe58ac94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e55ab6dd6dcc3c5fd251d47671c432541297ca7bbd6052100a0eeaa56d53195d13e079e6d6400b1ab3a04ec92ad712b003657e7097458cde9c9b94381e97fc67
|
7
|
+
data.tar.gz: 182bcf88b786ab2ca309ce7725c7cab7231bd4908fa74677fa391bfab3d989398e5cf76d0de93bc683cabce4003964c3769a9868c2ff8d06507b2b3a376b8df8
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -116,23 +116,62 @@ If you don't want language to appear in your URLs, you must configure your own p
|
|
116
116
|
## Post Indexes and RSS Feeds
|
117
117
|
|
118
118
|
This plugin modifies your site's post list. The `site.posts` array **will not contain every post**, but only posts defined with your site's main language or with no language defined.
|
119
|
-
You may access secondary languages with `site.posts_by_language`.
|
120
119
|
|
121
|
-
|
120
|
+
Using the `post_lang` liquid block, set the language for posts in your post loop. Here's how to use it:
|
122
121
|
|
123
122
|
```
|
124
|
-
|
123
|
+
# Standard post loop (loops through main language)
|
124
|
+
{% for post in site.posts %}...{% endfor %}
|
125
|
+
|
126
|
+
# Loop through german posts (and crossposts)
|
127
|
+
{% post_lang de %}
|
128
|
+
{% for post in site.posts %}...{% endfor %}
|
129
|
+
{% endpost_lang %}
|
130
|
+
```
|
131
|
+
|
132
|
+
If your default post index is at `/index.html` you should create additional indexes for each secondary language. If you're also writing in German, create a posts index at `/de/index.html`.
|
133
|
+
|
134
|
+
DRY up your templates by putting post loops in an include.
|
135
|
+
|
136
|
+
<!-- title:"From /index.html" -->
|
137
|
+
```
|
138
|
+
# Render main language post index
|
139
|
+
{% include post-index.html %}
|
140
|
+
```
|
141
|
+
|
142
|
+
<!-- title:"From /de/index.html" -->
|
143
|
+
```
|
144
|
+
# Render German post index
|
145
|
+
{% include post-index.html lang='de' %}
|
125
146
|
```
|
126
147
|
|
127
|
-
|
148
|
+
The post loop in your `_includes/post-index.html` file would look
|
149
|
+
like this:
|
128
150
|
|
151
|
+
<!-- title:"From _includes/post-index.html" -->
|
129
152
|
```
|
130
|
-
{%
|
153
|
+
{% post_lang include.lang %}
|
154
|
+
{% for post in site.posts %}...{% endfor %}
|
155
|
+
{% endpost_lang %}
|
131
156
|
```
|
132
157
|
|
133
|
-
|
158
|
+
This approach should work for RSS feeds and anything that works with the post loop.
|
134
159
|
|
135
|
-
|
160
|
+
## Reference posts by language
|
161
|
+
|
162
|
+
You may also access secondary languages directly with `site.posts_by_language`.
|
163
|
+
|
164
|
+
For example, to loop through the posts written in your main language (or those with no defined language) you would do this:
|
165
|
+
|
166
|
+
```
|
167
|
+
{% for post in site.posts %}
|
168
|
+
```
|
169
|
+
|
170
|
+
If you want to loop through the posts from a secondary language — in this case, German — you would want to do this:
|
171
|
+
|
172
|
+
```
|
173
|
+
{% for post in site.posts_by_language.de %}
|
174
|
+
```
|
136
175
|
|
137
176
|
## Contributing
|
138
177
|
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'liquid'
|
2
|
+
|
3
|
+
module Octopress
|
4
|
+
module Multilingual
|
5
|
+
class PostsByTag < Liquid::Block
|
6
|
+
def initialize(tag_name, markup, tokens)
|
7
|
+
super
|
8
|
+
@lang = markup.strip
|
9
|
+
end
|
10
|
+
|
11
|
+
def render(context)
|
12
|
+
@context = context
|
13
|
+
@languages = context['site.languages']
|
14
|
+
lang_posts = context['site.posts_by_language']
|
15
|
+
|
16
|
+
# Was a language passed in?
|
17
|
+
if lang
|
18
|
+
# Set posts loop, to language
|
19
|
+
context.environments.first['site']['posts'] = lang_posts[lang]
|
20
|
+
|
21
|
+
# Render with new posts context
|
22
|
+
rendered = super(context)
|
23
|
+
|
24
|
+
# Restore posts to context
|
25
|
+
context.environments.first['site']['posts'] = lang_posts[context['site.main_language']]
|
26
|
+
|
27
|
+
rendered
|
28
|
+
else
|
29
|
+
super(context)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def lang
|
34
|
+
# If lang is a local variable, read it from the context
|
35
|
+
lang = [@lang, @context[@lang]].select{|l| @languages.include?(l)}.first
|
36
|
+
if !lang.nil?
|
37
|
+
lang.downcase
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
Liquid::Template.register_tag('post_lang', Octopress::Multilingual::PostsByTag)
|
45
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octopress-multilingual
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Mathis
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: octopress
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: clash
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,9 +115,11 @@ executables: []
|
|
101
115
|
extensions: []
|
102
116
|
extra_rdoc_files: []
|
103
117
|
files:
|
118
|
+
- CHANGELOG.md
|
104
119
|
- LICENSE.txt
|
105
120
|
- README.md
|
106
121
|
- lib/octopress-multilingual.rb
|
122
|
+
- lib/octopress-multilingual/posts_by-tag.rb
|
107
123
|
- lib/octopress-multilingual/version.rb
|
108
124
|
homepage: https://github.com/octopress/multilingual
|
109
125
|
licenses:
|