jekyll_lorem_ja_plugin 0.0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 934f1ae074528a81e5cc40c8437e08ee9c3acd3d
4
+ data.tar.gz: 79b7b018de450d8eba7bb7f8cc95475f1908c12a
5
+ SHA512:
6
+ metadata.gz: 8a0d0be636746454a57defcd11a25add9771f1f3601e2669ffe47ce1166b0c3e21fc0e1ed7f07a9fae2931c60733b138648dcd2a8a9b7a4edd32d5e23bc04da1
7
+ data.tar.gz: ad343f61e7b924e79e38bc2a4a5c33cdc16f940c63f7723671bc46164edb219bdb1bbcdd3cde5697936b428a05e941e2bcb5845f91e0f2bc21f4c8d7006fd284
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.0
4
+ before_install: gem install bundler -v 1.10.5
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in jekyll_lorem_ja_plugin.gemspec
4
+ gemspec
5
+
6
+ gem 'liquid'
@@ -0,0 +1,118 @@
1
+ # JekyllLoremJaPlugin
2
+
3
+ Jekyll 用の日本語 lorem タグです。
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ group :jekyll_plugins do
11
+ gem "jekyll_lorem_ja_plugin"
12
+ end
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle install
18
+
19
+ Or In your _config.yml file, add a new array with the key gems and the values of the gem names of the plugins you’d like to use. An example:
20
+
21
+ ```yml
22
+ gems: [jekyll_lorem_ja_plugin]
23
+ ```
24
+
25
+ ## Usage
26
+
27
+ 以下のタグを提供します。
28
+
29
+ + {% loremja_word %} 1語出力する
30
+ + {% loremja_words 語数 %} 引数指定した語数分の語を出力する。
31
+ + {% loremja_sentence %} 1文を出力する。
32
+ + {% loremja_sentences 文数 %} 引数指定した文数分の文を出力する。
33
+ + {% loremja_paragraph %} 1段落を出力する。
34
+ + {% loremja_paragraphs 段落数 %} 指定した段落数分の段落を出力する。
35
+ + {% loremja_date %} 任意の年月日を出力する。
36
+ + {% loremja_image 幅x高さ %} 指定した幅、高さ分(単位:ピクセル)の画像を示すURLを表示する。
37
+ + {% loremja_reload リソース名 %} 指定したリソース名の文書リソースを有効化します。組み込みのリソース名は kazehakase(坂口安吾「風博士」)とchuumon_no_ooi_ryouriten(宮沢賢治「注文の多い料理店」)があり、初期の文書リソースは kazehakase である。
38
+
39
+
40
+ ## Example
41
+
42
+ デフォルトのkazehakase(坂口安吾「風博士」)の文書リソースを利用した場合、
43
+
44
+ ``` html
45
+ <h1>{% loremja_date %}</h1>
46
+ <img src="{% loremja_image 200x200 %}"/>
47
+ <h1>{% loremja_word %}</h1>
48
+ <h2>{% loremja_words 5 %}</h2>
49
+ <p>{% loremja_sentence %}</p>
50
+ <p>{% loremja_sentences 3 %}</p>
51
+ {% loremja_paragraph %}
52
+ {% loremja_paragraphs 3 %}
53
+ ```
54
+
55
+ 以下のように出力されます。
56
+
57
+ ``` html
58
+ <h1>2009年01月09日</h1>
59
+ <img src="http://placehold.it/200x200"/>
60
+ <h1>風博士の遺書</h1>
61
+ <h2>何となれば姿が見えないではない乎</h2>
62
+ <p>ああ三度冷静なること扇風機の如き諸君よ、かの憎むべき蛸博士は何等の愛なくして余の妻を奪ったのである。</p>
63
+ <p>偉大なる博士ならびに偉大なる博士等の描く旋風に対照して、これ程ふさわしい少女は稀にしか見当らないのである。
64
+ 尚疑わんとせば諸君よ、巴里府モンマルトル三番地、Bis, Perruquier ショオブ氏に訊き給え。
65
+ 実にこれ歴史の幽玄を冒涜するも甚だしいではないか。</p>
66
+ <p>諸君、目前に露出する無毛赤色の怪物を認めた時に、余は実に万感胸にせまり、溢れ出る涙を禁じ難かったのである。
67
+ 流石に花嫁は驚くような軽率はしなかったけれど、僕は内心穏かではなかったのである。
68
+ もしも諸君が仏蘭西、西班牙両国の国境をなすピレネエ山脈をさまようならば、諸君は山中に散在する小部落バスクに逢着するのである。
69
+ 今を距ること四十八年前のことなり、二人の日本人留学生によって鬘の購われたることを記憶せざるや。</p>
70
+ <p>諸君は、東京市某町某番地なる風博士の邸宅を御存じであろう乎?
71
+ 偉大なる博士は甚だ周章て者であったのである。</p><p>余の力を以てして、彼の悪略に及ばざることすでに明白なり矣。
72
+ これ余の研究完成することなくしては、地球の怪談として深く諸氏の心胆を寒からしめたに相違ない。
73
+ もしも偉大なる博士は間違えて外の人に結婚を申し込んでいるのかも知れない。
74
+ 余の力を以てして、彼の悪略に及ばざることすでに明白なり矣。
75
+ なんとなれば、その犯行は奇想天外にして識者の常識を肯んぜしめず、むしろ余に対して誣告の誹を発せしむる憾みあるからである。</p><p>諸君、目前に露出する無毛赤色の怪物を認めた時に、余は実に万感胸にせまり、溢れ出る涙を禁じ難かったのである。
76
+ そのために、余は空気の如く彼の寝室に侵入することが出来たのである。</p>
77
+ ```
78
+
79
+ chuumon_no_ooi_ryouriten(宮沢賢治「注文の多い料理店」)の文書リソースを利用した場合、
80
+
81
+ ``` html
82
+ {% loremja_reload chuumon_no_ooi_ryouriten %}
83
+ <h1>{% loremja_date %}</h1>
84
+ <img src="{% loremja_image 200x200 %}"/>
85
+ <h1>{% loremja_word %}</h1>
86
+ <h2>{% loremja_words 5 %}</h2>
87
+ <p>{% loremja_sentence %}</p>
88
+ <p>{% loremja_sentences 3 %}</p>
89
+ {% loremja_paragraph %}
90
+ {% loremja_paragraphs 3 %}
91
+ ```
92
+
93
+ 以下のように出力されます。
94
+
95
+ ``` html
96
+ <h1>2008年10月13日</h1>
97
+ <img src="http://placehold.it/200x200"/>
98
+ <h1>山猫軒</h1>
99
+ <h2>きっとよほど偉い人たちが、たびたび来るんだ</h2>
100
+ <p>早く何か暖いものでもたべて、元気をつけて置かないと、もう途方もないことになってしまうと、二人とも思ったのでした。</p>
101
+ <p>鹿の黄いろな横っ腹なんぞに、二三発お見舞もうしたら、ずいぶん痛快だろうねえ。
102
+ なるほど、鉄砲を持ってものを食うという法はない。
103
+ 扉のすぐ横には黒塗りの立派な金庫も、ちゃんと口を開けて置いてありました。</p>
104
+ <p>二人は大歓迎というので、もう大よろこびです。
105
+ 二人はめがねをはずしたり、カフスボタンをとったり、みんな金庫のなかに入れて、ぱちんと錠をかけました。
106
+ 見たまえ、東京の大きな料理屋だって大通りにはすくないだろう
107
+ いや、わざわざご苦労です。
108
+ 早く何か暖いものでもたべて、元気をつけて置かないと、もう途方もないことになってしまうと、二人とも思ったのでした。</p>
109
+ <p>けれどももしここへあいつらがはいって来なかったら、それはぼくらの責任だぜ。
110
+ 早く何か暖いものでもたべて、元気をつけて置かないと、もう途方もないことになってしまうと、二人とも思ったのでした。
111
+ そしてそのわきに鏡がかかって、その下には長い柄のついたブラシが置いてあったのです。
112
+ 鍵穴の眼玉はたちまちなくなり、犬どもはううとうなってしばらく室の中をくるくる廻っていましたが、また一声</p><p>なるほど、鉄砲を持ってものを食うという法はない。
113
+ 親方がもうナフキンをかけて、ナイフをもって、舌なめずりして、お客さま方を待っていられます。
114
+ ここの主人はじつに用意|周到だね。
115
+ 室のなかがあんまり暖いとひびがきれるから、その予防なんだ。
116
+ 二人は鉄砲をはずし、帯皮を解いて、それを台の上に置きました。</p><p>けれどももしここへあいつらがはいって来なかったら、それはぼくらの責任だぜ。
117
+ くるくるまわって、それからどたっと倒れるだろうねえ。</p>
118
+ ```
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "jekyll_lorem_ja_plugin"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'jekyll_lorem_ja_plugin/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "jekyll_lorem_ja_plugin"
8
+ spec.version = JekyllLoremJaPlugin::VERSION
9
+ spec.authors = ["tanaken2"]
10
+
11
+ spec.summary = %q{Yet Another Japanese Lorem Ipsum generator For Jekyll}
12
+ spec.description = %q{Yet Another Japanese Lorem Ipsum generator For Jekyll}
13
+ spec.homepage = "https://github.com/tanalab2/jekyll_lorem_ja_plugin"
14
+
15
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
16
+ spec.bindir = "exe"
17
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
+ spec.require_paths = ["lib"]
19
+
20
+ spec.add_development_dependency "bundler", "~> 1.10"
21
+ spec.add_development_dependency "rake", "~> 10.0"
22
+ spec.add_development_dependency "rspec"
23
+
24
+ spec.add_runtime_dependency("ya_lorem_ja", ">= 0.0.5")
25
+ end
@@ -0,0 +1,143 @@
1
+ require "ya_lorem_ja"
2
+ require 'thread'
3
+ require 'liquid'
4
+ require "jekyll_lorem_ja_plugin/version"
5
+
6
+
7
+ module JekyllLoremJaPlugin
8
+ class LoremJaObject
9
+ #include Singleton
10
+ #attr_reader :lorem
11
+
12
+ @@singleton__instance__ = nil
13
+ @@singleton__mutex__ = Mutex.new
14
+
15
+ def self.instance(resource_name=::YaLoremJa::Lorem::DEFAULT_RESOURCE_NAME, char_count_range=::YaLoremJa::Lorem::DEFAULT_CHAR_COUNT_RANGE_IN_WORD, word_count_range=::YaLoremJa::Lorem::DEFAULT_WORD_COUNT_RANGE_IN_SENTENCE, sentence_count_range=::YaLoremJa::Lorem::DEFAULT_SENTENCE_COUNT_RANGE_IN_PARAGRAPH)
16
+ return @@singleton__instance__ if @@singleton__instance__
17
+ @@singleton__mutex__.synchronize {
18
+ return @@singleton__instance__ if @@singleton__instance__
19
+ @@singleton__instance__ = ::YaLoremJa::Lorem.new(resource_name, char_count_range, word_count_range, sentence_count_range)
20
+ }
21
+ @@singleton__instance__
22
+ end
23
+
24
+ def self.reload_resource(resource_name=::YaLoremJa::Lorem::DEFAULT_RESOURCE_NAME, char_count_range=::YaLoremJa::Lorem::DEFAULT_CHAR_COUNT_RANGE_IN_WORD, word_count_range=::YaLoremJa::Lorem::DEFAULT_WORD_COUNT_RANGE_IN_SENTENCE, sentence_count_range=::YaLoremJa::Lorem::DEFAULT_SENTENCE_COUNT_RANGE_IN_PARAGRAPH)
25
+ @@singleton__mutex__.synchronize {
26
+ if @@singleton__instance__ == nil
27
+ @@singleton__instance__ = ::YaLoremJa::Lorem.new(resource_name, char_count_range, word_count_range, sentence_count_range)
28
+ else
29
+ @@singleton__instance__.reload_resource(resource_name, char_count_range, word_count_range, sentence_count_range)
30
+ end
31
+ }
32
+ end
33
+
34
+ def self.reset_instance
35
+ @@singleton__mutex__.synchronize {
36
+ @@singleton__instance__ = nil if @@singleton__instance__
37
+ }
38
+ end
39
+ private
40
+ private_class_method :new
41
+ end
42
+
43
+ class BaseLoremJaTag < Liquid::Tag
44
+ def initialize(tag_name, count, tokens)
45
+ super
46
+ if count.empty?
47
+ @count = 1
48
+ else
49
+ @count = count.to_i
50
+ end
51
+
52
+ end
53
+ end
54
+
55
+ class LoremJaWordTag < BaseLoremJaTag
56
+ def render(context)
57
+ "#{LoremJaObject.instance.word}"
58
+ end
59
+ end
60
+
61
+
62
+ class LoremJaWordsTag < BaseLoremJaTag
63
+ def render(context)
64
+ "#{LoremJaObject.instance.words(@count)}"
65
+ end
66
+ end
67
+
68
+ class LoremJaSentenceTag < BaseLoremJaTag
69
+ def render(context)
70
+ "#{LoremJaObject.instance.sentence}"
71
+ end
72
+ end
73
+
74
+ class LoremJaSentencesTag < BaseLoremJaTag
75
+ def render(context)
76
+ "#{LoremJaObject.instance.sentences(@count)}"
77
+ end
78
+ end
79
+
80
+ class LoremJaParagraphTag < BaseLoremJaTag
81
+ def render(context)
82
+ "#{LoremJaObject.instance.paragraph({ start_sep: "<p>", end_sep: "</p>" })}"
83
+ end
84
+ end
85
+
86
+ class LoremJaParagraphsTag < BaseLoremJaTag
87
+ def render(context)
88
+ "#{LoremJaObject.instance.paragraphs(@count, { start_sep: "<p>", end_sep: "</p>" })}"
89
+ end
90
+ end
91
+
92
+ class LoremJaDateTag < BaseLoremJaTag
93
+ def initialize(tag_name, fmt, tokens)
94
+ super
95
+ @format = fmt.strip
96
+ end
97
+
98
+ def render(context)
99
+ if @format && !@format.empty?
100
+ "#{LoremJaObject.instance.date(@format)}"
101
+ else
102
+ "#{LoremJaObject.instance.date}"
103
+ end
104
+ end
105
+ end
106
+
107
+ class LoremJaImageTag < BaseLoremJaTag
108
+ def initialize(tag_name, size, tokens)
109
+ super
110
+ @size = size.strip
111
+ end
112
+
113
+ def render(context)
114
+ "#{LoremJaObject.instance.image(@size)}"
115
+ end
116
+ end
117
+
118
+ class LoremJaReloadTag < BaseLoremJaTag
119
+ def initialize(tag_name, resource_name, tokens)
120
+ super
121
+ @resource_name = resource_name.strip.to_sym
122
+ end
123
+
124
+ def render(context)
125
+ LoremJaObject.reload_resource(@resource_name)
126
+ return nil
127
+ end
128
+ end
129
+ end
130
+
131
+ Liquid::Template.register_tag('loremja_word', JekyllLoremJaPlugin::LoremJaWordTag)
132
+ Liquid::Template.register_tag('loremja_words', JekyllLoremJaPlugin::LoremJaWordsTag)
133
+
134
+ Liquid::Template.register_tag('loremja_sentence', JekyllLoremJaPlugin::LoremJaSentenceTag)
135
+ Liquid::Template.register_tag('loremja_sentences', JekyllLoremJaPlugin::LoremJaSentencesTag)
136
+
137
+ Liquid::Template.register_tag('loremja_paragraph', JekyllLoremJaPlugin::LoremJaParagraphTag)
138
+ Liquid::Template.register_tag('loremja_paragraphs', JekyllLoremJaPlugin::LoremJaParagraphsTag)
139
+
140
+ Liquid::Template.register_tag('loremja_date', JekyllLoremJaPlugin::LoremJaDateTag)
141
+ Liquid::Template.register_tag('loremja_image', JekyllLoremJaPlugin::LoremJaImageTag)
142
+
143
+ Liquid::Template.register_tag('loremja_reload', JekyllLoremJaPlugin::LoremJaReloadTag)
@@ -0,0 +1,3 @@
1
+ module JekyllLoremJaPlugin
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll_lorem_ja_plugin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - tanaken2
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2015-12-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: ya_lorem_ja
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 0.0.5
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 0.0.5
69
+ description: Yet Another Japanese Lorem Ipsum generator For Jekyll
70
+ email:
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - ".gitignore"
76
+ - ".rspec"
77
+ - ".travis.yml"
78
+ - Gemfile
79
+ - README.md
80
+ - Rakefile
81
+ - bin/console
82
+ - bin/setup
83
+ - jekyll_lorem_ja_plugin.gemspec
84
+ - lib/jekyll_lorem_ja_plugin.rb
85
+ - lib/jekyll_lorem_ja_plugin/version.rb
86
+ homepage: https://github.com/tanalab2/jekyll_lorem_ja_plugin
87
+ licenses: []
88
+ metadata: {}
89
+ post_install_message:
90
+ rdoc_options: []
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ requirements: []
104
+ rubyforge_project:
105
+ rubygems_version: 2.4.5
106
+ signing_key:
107
+ specification_version: 4
108
+ summary: Yet Another Japanese Lorem Ipsum generator For Jekyll
109
+ test_files: []
110
+ has_rdoc: