hybook 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 025a0e3edbb9f098e19a14d29ed4ebb6f1781eb2
4
+ data.tar.gz: 449d801c54f96935679c985fc85c2efb08134069
5
+ SHA512:
6
+ metadata.gz: 69439953a99d3b653817ebb0fd9d95867a089fb95ea0b0dff5b96fdc9102b1278fed945ba53f5f5672d8eb97448ca0e047409c6cf9bdfc89f59e3f191968388d
7
+ data.tar.gz: 6097c65f219ba93e8be0414d6fc9f47af5441115a3eb0efdfa50ab39fe7343c30020b2809bb46fb0e51a59e690427622c4e1c60ea934488fc6e7fa6ba1f802c1
File without changes
data/Manifest.txt CHANGED
@@ -1,11 +1,14 @@
1
- History.md
1
+ HISTORY.md
2
2
  Manifest.txt
3
3
  README.md
4
4
  Rakefile
5
5
  lib/hybook.rb
6
+ lib/hybook/builder/album.rb
7
+ lib/hybook/builder/book.rb
6
8
  lib/hybook/std/album.rb
7
9
  lib/hybook/type/album.rb
8
10
  lib/hybook/type/picture.rb
9
11
  lib/hybook/type/section.rb
10
12
  lib/hybook/version.rb
13
+ lib/hybook/writer/jekyll.rb
11
14
  templates/album.md
data/Rakefile CHANGED
@@ -15,10 +15,21 @@ Hoe.spec 'hybook' do
15
15
 
16
16
  # switch extension to .markdown for gihub formatting
17
17
  self.readme_file = 'README.md'
18
- self.history_file = 'History.md'
18
+ self.history_file = 'HISTORY.md'
19
19
 
20
20
  self.licenses = ['Public Domain']
21
21
 
22
+ self.extra_deps = [
23
+ ['props'], # settings / prop(ertie)s / env / INI
24
+ ['logutils'], # logging
25
+ ['textutils', '>= 0.9.4'], # e.g. >= 0.6 && <= 1.0 ## will include logutils, props
26
+ ['markdown'], # markdown helper (e.g. link_to etc.)
27
+
28
+ ## 3rd party
29
+ ['gli', '>= 2.9'],
30
+ ['activesupport']
31
+ ]
32
+
22
33
  self.spec_extras = {
23
34
  :required_ruby_version => '>= 1.9.2'
24
35
  }
data/lib/hybook.rb CHANGED
@@ -25,6 +25,16 @@ require 'hybook/type/section'
25
25
 
26
26
  require 'hybook/std/album'
27
27
 
28
+ ## builders
29
+
30
+ require 'hybook/builder/book'
31
+ require 'hybook/builder/album'
32
+
33
+ ## writers
34
+
35
+ require 'hybook/builder/jekyll'
36
+
37
+
28
38
 
29
39
  module HyBook
30
40
 
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+
3
+ ###
4
+ # album builder
5
+
6
+
7
+ class AlbumBuilder
8
+
9
+ ## move create_from_code from album here
10
+ # keep types "clean" e.g. only data struture
11
+
12
+ end
13
+
@@ -0,0 +1,95 @@
1
+ # encoding: utf-8
2
+
3
+ ###
4
+ # book builder
5
+ #
6
+ # - fix: build book structure in memory only (and use JekyllWriter to write/render to disk!!!)
7
+ # -- independent of jekyll (e.g. static site compiler)
8
+
9
+ #
10
+ #
11
+ # -- fix: use our own Page model or better Part / Section / etc. !!!!
12
+ # -- do NOT use TextUtils::Page --> use in writer/render when content gets mapped!!!
13
+
14
+ #
15
+ #
16
+ # fix: remove jekyll specific stuff
17
+ # -- move to jekyll writer
18
+
19
+ class BookBuilder
20
+
21
+ def inline?() @inline; end
22
+ def title() @title; end
23
+ def layout() @layout; end
24
+ def pages_dir() @pages_dir; end
25
+
26
+
27
+ def initialize( user_pages_dir, opts={} )
28
+
29
+ #
30
+ #
31
+ # fix: move user_pages_dir to opts ?? or remove
32
+ # only use for writer/renderer later
33
+
34
+ @pages_dir = user_pages_dir # add user_ to avoid conflict w/ attrib
35
+
36
+ @inline = opts[:inline ] == true ? true : false # all-in-one page version or multi-page?
37
+
38
+ @title = opts[:title] || 'Book Title Here'
39
+ @layout = opts[:layout] || 'book'
40
+
41
+
42
+ ## if @inline create all-in-one book(.html) page
43
+ if inline?
44
+ path = "#{pages_dir}/book.md"
45
+ puts "[book] create all-in-one book page (#{path})"
46
+
47
+ ## add frontmatter
48
+
49
+ page_opts = { frontmatter: {
50
+ layout: layout,
51
+ title: title,
52
+ permalink: '/book.html' } }
53
+
54
+ TextUtils::Page.create( path, page_opts ) do |page|
55
+ ## do nothing for now
56
+ end
57
+ end
58
+ end
59
+
60
+
61
+ ### fix: change to part/chapter/section/etc. ??
62
+
63
+ def page( name, opts={} )
64
+
65
+ # add fallbacks/defaults
66
+ opts[:title] ||= 'Page Title Here'
67
+ opts[:id] ||= TextUtils.slugify( @title ) ## add page/section counter to generated fallback id/anchor
68
+
69
+ if inline?
70
+ path = "#{pages_dir}/book.md"
71
+ puts "[book] update all-in-one book page -- #{name} (#{path})"
72
+
73
+ page_opts = {}.merge( opts ) ## for now pass along all opts; no built-in/auto-added opts -- in the future add page/section counter or similar, for example?
74
+ TextUtils::Page.update( path, page_opts ) do |page|
75
+ yield( page )
76
+ end
77
+ else
78
+ path = "#{pages_dir}/#{name}.md"
79
+ puts "[book] create page #{name} (#{path})"
80
+
81
+ page_opts = { frontmatter: {
82
+ layout: layout, # e.g. 'book'
83
+ title: opts[:title], # e.g. 'The Free Beer Book'
84
+ permalink: "/#{opts[:id]}.html" # e.g. '/index.html'
85
+ }}
86
+ page_opts = page_opts.merge( opts ) ## pass along all opts
87
+
88
+ TextUtils::Page.create( path, page_opts ) do |page|
89
+ yield( page )
90
+ end
91
+ end
92
+ end
93
+
94
+ end # class BookBuilder
95
+
@@ -12,6 +12,11 @@ class Album
12
12
  @sections = [] # sections (for pictures)
13
13
  end
14
14
 
15
+
16
+ ###
17
+ ## fix: move to album builder
18
+
19
+
15
20
  def self.create_from_folder( root, opts={} )
16
21
  dirs = Dir[ "#{root}/**/" ] ## get all folders n subfolder
17
22
  ## pp dirs
@@ -1,6 +1,4 @@
1
1
 
2
2
  module HyBook
3
- VERSION = '0.0.4'
3
+ VERSION = '0.1.0'
4
4
  end
5
-
6
-
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+
3
+ ###
4
+ # Jekyll book writer / renderer
5
+
6
+ class JekyllWriter
7
+
8
+ ## to be done
9
+ ## see BookBuilder - split code
10
+ ##
11
+
12
+ end # class JekyllWriter
13
+
metadata CHANGED
@@ -1,62 +1,155 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hybook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Gerald Bauer
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-02-21 00:00:00.000000000 Z
11
+ date: 2014-03-31 00:00:00.000000000 Z
13
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: props
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: logutils
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: textutils
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 0.9.4
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.9.4
55
+ - !ruby/object:Gem::Dependency
56
+ name: markdown
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: gli
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '2.9'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '2.9'
83
+ - !ruby/object:Gem::Dependency
84
+ name: activesupport
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
14
97
  - !ruby/object:Gem::Dependency
15
98
  name: rdoc
16
- requirement: &20929368 !ruby/object:Gem::Requirement
17
- none: false
99
+ requirement: !ruby/object:Gem::Requirement
18
100
  requirements:
19
101
  - - ~>
20
102
  - !ruby/object:Gem::Version
21
103
  version: '4.0'
22
104
  type: :development
23
105
  prerelease: false
24
- version_requirements: *20929368
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '4.0'
25
111
  - !ruby/object:Gem::Dependency
26
112
  name: hoe
27
- requirement: &20928900 !ruby/object:Gem::Requirement
28
- none: false
113
+ requirement: !ruby/object:Gem::Requirement
29
114
  requirements:
30
115
  - - ~>
31
116
  - !ruby/object:Gem::Version
32
- version: '3.7'
117
+ version: '3.6'
33
118
  type: :development
34
119
  prerelease: false
35
- version_requirements: *20928900
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '3.6'
36
125
  description: hybook - hypertext book generator
37
126
  email: webslideshow@googlegroups.com
38
127
  executables: []
39
128
  extensions: []
40
129
  extra_rdoc_files:
41
- - History.md
130
+ - HISTORY.md
42
131
  - Manifest.txt
43
132
  - README.md
44
133
  - templates/album.md
45
134
  files:
46
- - History.md
135
+ - HISTORY.md
47
136
  - Manifest.txt
48
137
  - README.md
49
138
  - Rakefile
50
139
  - lib/hybook.rb
140
+ - lib/hybook/builder/album.rb
141
+ - lib/hybook/builder/book.rb
51
142
  - lib/hybook/std/album.rb
52
143
  - lib/hybook/type/album.rb
53
144
  - lib/hybook/type/picture.rb
54
145
  - lib/hybook/type/section.rb
55
146
  - lib/hybook/version.rb
147
+ - lib/hybook/writer/jekyll.rb
56
148
  - templates/album.md
57
149
  homepage: https://github.com/hybook/hybook
58
150
  licenses:
59
151
  - Public Domain
152
+ metadata: {}
60
153
  post_install_message:
61
154
  rdoc_options:
62
155
  - --main
@@ -64,21 +157,19 @@ rdoc_options:
64
157
  require_paths:
65
158
  - lib
66
159
  required_ruby_version: !ruby/object:Gem::Requirement
67
- none: false
68
160
  requirements:
69
161
  - - ! '>='
70
162
  - !ruby/object:Gem::Version
71
163
  version: 1.9.2
72
164
  required_rubygems_version: !ruby/object:Gem::Requirement
73
- none: false
74
165
  requirements:
75
166
  - - ! '>='
76
167
  - !ruby/object:Gem::Version
77
168
  version: '0'
78
169
  requirements: []
79
170
  rubyforge_project: hybook
80
- rubygems_version: 1.8.16
171
+ rubygems_version: 2.1.10
81
172
  signing_key:
82
- specification_version: 3
173
+ specification_version: 4
83
174
  summary: hybook - hypertext book generator
84
175
  test_files: []