songbookize 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,121 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title Zach's Songbook
5
+ meta charset="UTF-8"
6
+ - begin
7
+ style type="text/css"==open(URI.encode("https://fonts.googleapis.com/css?family=Bitter:400,700|Muli:300,400,i|Montserrat:400,700|Fira+Mono|Junge")).read
8
+ style type="text/css"==open("http://zachcapalbo.com/stylesheets/legacy.css?1461766679").read
9
+ style type="text/css"==open("http://zachcapalbo.com/stylesheets/all.css?1461766678").read
10
+ style type="text/css"==open("http://zachcapalbo.com/stylesheets/fonts.css?1461766677").read
11
+ - rescue SocketError
12
+ script src="abcjs_basic_2.3-min.js"
13
+ script src="abcjs_plugin_2.3-min.js"
14
+ javascript:
15
+ window.ABCJS.plugin.auto_render_threshold = 100;
16
+ window.ABCJS.plugin.hide_abc = true;
17
+ sass:
18
+ #top
19
+ max-width: 1000px
20
+ margin: auto
21
+ body
22
+ padding-top: 0px
23
+ a.song_title
24
+ color: #000
25
+ text-decoration: none
26
+ a.song_title:hover
27
+ color: #000
28
+ text-decoration: none
29
+ .navbar
30
+ margin-bottom: 60px
31
+ .lyrics
32
+ line-height: 140%
33
+ font-size: 140%
34
+
35
+ .chordlyrics
36
+ font-family: 'Fira Mono', monospace
37
+ .abcrendered
38
+ margin: auto
39
+ h2
40
+ text-align: center
41
+ .order
42
+ display: inline
43
+ line-height: 0px
44
+ float: right
45
+ font-size: 22px
46
+ font-family: 'Fira Mono', sans
47
+ .chords
48
+ font-family: 'Fira Mono', monospace
49
+ font-weight: bold
50
+ color: #08c
51
+ .chorusindicator
52
+ color: #0a5
53
+ font-weight: bold
54
+ text-align: center
55
+ .chorus
56
+ color: #083
57
+ .author, .key
58
+ font-family: 'Lora', serif
59
+ font-size: 140%
60
+ text-align: center
61
+ font-style: italic
62
+
63
+ .author
64
+ float: right
65
+ margin-right: 120px
66
+ .key
67
+ float: left
68
+ margin-left: 120px
69
+ .desc
70
+ clear: both
71
+ margin-bottom: 2em
72
+ .melody
73
+ background: none
74
+ border: none
75
+ body
76
+ .navbar.navbar-inverse
77
+ .navbar-inner
78
+ .containwe
79
+ a.brand[href="http://www.zachcapalbo.com"] Zach Capalbo
80
+ ul.nav
81
+ li
82
+ a href="https://zach-geek.gitlab.io/songbook/songbook.html"="Zach's Songbook"
83
+ li
84
+ a href="https://gitlab.com/zach-geek/songbook" Source Code
85
+ li
86
+ a href="https://zach-geek.gitlab.io/songbook/ZachsSongbook.pdf"="Zach's Songbook (PDF)"
87
+ li
88
+ a href="https://zach-geek.gitlab.io/songbook/ZachsSongbooklet.pdf"="Zach's Songbooklet (PDF)"
89
+ #top.conainer
90
+ .row
91
+ .well
92
+ .frontmatter==Kramdown::Document.new(File.read(File.join(File.dirname(__FILE__), "../Readme.md"))).to_html
93
+ br
94
+ h2 Contents
95
+ ol
96
+ - for song in book.songs
97
+ li
98
+ a href="##{song.slug}"="#{song.info.fetch("favorite", false) ? "⋆" : ""} #{song.title}"
99
+ hr
100
+ - for song in book.songs
101
+ .well
102
+ .order=song.order
103
+ a name=song.slug
104
+ a.song_title href="#{song.slug}.html"
105
+ h2=song.title
106
+ .info
107
+ .desc=song.desc
108
+ .author=song.author
109
+ .key="Key of #{song.key}"
110
+ - unless song.melody.nil? or song.melody.empty?
111
+ pre.melody=song.melody
112
+ a.midi href="midi/#{song.slug}.mid" Play MIDI
113
+ - unless song.verses.empty?
114
+ pre.melody
115
+ .lyrics==song.to_html
116
+ hr
117
+ .container
118
+ hr
119
+ footer
120
+ p align="center"
121
+ | Created by <a href="http://zachcapalbo.com">Zach Capalbo</a>. Uses <a href="https://github.com/paulrosen/abcjs" >abcjs</a>. Hosted on <a href="https://gitlab.com/zach-geek/songbook">Gitlab</a>
data/Creator/tv.slim ADDED
@@ -0,0 +1,33 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title Zach's Songbook
5
+ meta charset="UTF-8"
6
+ - begin
7
+ style type="text/css"==open(URI.encode("https://fonts.googleapis.com/css?family=Bitter:400,700|Muli:300,400,i|Montserrat:400,700|Fira+Mono|Junge")).read
8
+ style type="text/css"==open("http://zachcapalbo.com/stylesheets/fonts.css?1461766677").read
9
+ - rescue SocketError
10
+
11
+ sass:
12
+ body
13
+ max-width: 1000px
14
+ margin: auto
15
+ padding-top: 50px
16
+ font-family: 'Junge'
17
+ background-color: 'white'
18
+ h2
19
+ text-align: center
20
+ li
21
+ font-size: x-large
22
+ line-height: 350%
23
+ color: #0a5
24
+ a
25
+ text-decoration: none
26
+ color: black
27
+ padding-left: 3em
28
+ body
29
+ h2 Contents
30
+ ol
31
+ - for song in book.songs
32
+ li
33
+ a href="#{song.slug}_slideable.html"="#{song.info.fetch("favorite", false) ? "⋆" : ""} #{song.title} (Key of #{song.key})"
data/LICENSE ADDED
@@ -0,0 +1,427 @@
1
+ Attribution-ShareAlike 4.0 International
2
+
3
+ =======================================================================
4
+
5
+ Creative Commons Corporation ("Creative Commons") is not a law firm and
6
+ does not provide legal services or legal advice. Distribution of
7
+ Creative Commons public licenses does not create a lawyer-client or
8
+ other relationship. Creative Commons makes its licenses and related
9
+ information available on an "as-is" basis. Creative Commons gives no
10
+ warranties regarding its licenses, any material licensed under their
11
+ terms and conditions, or any related information. Creative Commons
12
+ disclaims all liability for damages resulting from their use to the
13
+ fullest extent possible.
14
+
15
+ Using Creative Commons Public Licenses
16
+
17
+ Creative Commons public licenses provide a standard set of terms and
18
+ conditions that creators and other rights holders may use to share
19
+ original works of authorship and other material subject to copyright
20
+ and certain other rights specified in the public license below. The
21
+ following considerations are for informational purposes only, are not
22
+ exhaustive, and do not form part of our licenses.
23
+
24
+ Considerations for licensors: Our public licenses are
25
+ intended for use by those authorized to give the public
26
+ permission to use material in ways otherwise restricted by
27
+ copyright and certain other rights. Our licenses are
28
+ irrevocable. Licensors should read and understand the terms
29
+ and conditions of the license they choose before applying it.
30
+ Licensors should also secure all rights necessary before
31
+ applying our licenses so that the public can reuse the
32
+ material as expected. Licensors should clearly mark any
33
+ material not subject to the license. This includes other CC-
34
+ licensed material, or material used under an exception or
35
+ limitation to copyright. More considerations for licensors:
36
+ wiki.creativecommons.org/Considerations_for_licensors
37
+
38
+ Considerations for the public: By using one of our public
39
+ licenses, a licensor grants the public permission to use the
40
+ licensed material under specified terms and conditions. If
41
+ the licensor's permission is not necessary for any reason--for
42
+ example, because of any applicable exception or limitation to
43
+ copyright--then that use is not regulated by the license. Our
44
+ licenses grant only permissions under copyright and certain
45
+ other rights that a licensor has authority to grant. Use of
46
+ the licensed material may still be restricted for other
47
+ reasons, including because others have copyright or other
48
+ rights in the material. A licensor may make special requests,
49
+ such as asking that all changes be marked or described.
50
+ Although not required by our licenses, you are encouraged to
51
+ respect those requests where reasonable. More_considerations
52
+ for the public:
53
+ wiki.creativecommons.org/Considerations_for_licensees
54
+
55
+ =======================================================================
56
+
57
+ Creative Commons Attribution-ShareAlike 4.0 International Public
58
+ License
59
+
60
+ By exercising the Licensed Rights (defined below), You accept and agree
61
+ to be bound by the terms and conditions of this Creative Commons
62
+ Attribution-ShareAlike 4.0 International Public License ("Public
63
+ License"). To the extent this Public License may be interpreted as a
64
+ contract, You are granted the Licensed Rights in consideration of Your
65
+ acceptance of these terms and conditions, and the Licensor grants You
66
+ such rights in consideration of benefits the Licensor receives from
67
+ making the Licensed Material available under these terms and
68
+ conditions.
69
+
70
+
71
+ Section 1 -- Definitions.
72
+
73
+ a. Adapted Material means material subject to Copyright and Similar
74
+ Rights that is derived from or based upon the Licensed Material
75
+ and in which the Licensed Material is translated, altered,
76
+ arranged, transformed, or otherwise modified in a manner requiring
77
+ permission under the Copyright and Similar Rights held by the
78
+ Licensor. For purposes of this Public License, where the Licensed
79
+ Material is a musical work, performance, or sound recording,
80
+ Adapted Material is always produced where the Licensed Material is
81
+ synched in timed relation with a moving image.
82
+
83
+ b. Adapter's License means the license You apply to Your Copyright
84
+ and Similar Rights in Your contributions to Adapted Material in
85
+ accordance with the terms and conditions of this Public License.
86
+
87
+ c. BY-SA Compatible License means a license listed at
88
+ creativecommons.org/compatiblelicenses, approved by Creative
89
+ Commons as essentially the equivalent of this Public License.
90
+
91
+ d. Copyright and Similar Rights means copyright and/or similar rights
92
+ closely related to copyright including, without limitation,
93
+ performance, broadcast, sound recording, and Sui Generis Database
94
+ Rights, without regard to how the rights are labeled or
95
+ categorized. For purposes of this Public License, the rights
96
+ specified in Section 2(b)(1)-(2) are not Copyright and Similar
97
+ Rights.
98
+
99
+ e. Effective Technological Measures means those measures that, in the
100
+ absence of proper authority, may not be circumvented under laws
101
+ fulfilling obligations under Article 11 of the WIPO Copyright
102
+ Treaty adopted on December 20, 1996, and/or similar international
103
+ agreements.
104
+
105
+ f. Exceptions and Limitations means fair use, fair dealing, and/or
106
+ any other exception or limitation to Copyright and Similar Rights
107
+ that applies to Your use of the Licensed Material.
108
+
109
+ g. License Elements means the license attributes listed in the name
110
+ of a Creative Commons Public License. The License Elements of this
111
+ Public License are Attribution and ShareAlike.
112
+
113
+ h. Licensed Material means the artistic or literary work, database,
114
+ or other material to which the Licensor applied this Public
115
+ License.
116
+
117
+ i. Licensed Rights means the rights granted to You subject to the
118
+ terms and conditions of this Public License, which are limited to
119
+ all Copyright and Similar Rights that apply to Your use of the
120
+ Licensed Material and that the Licensor has authority to license.
121
+
122
+ j. Licensor means the individual(s) or entity(ies) granting rights
123
+ under this Public License.
124
+
125
+ k. Share means to provide material to the public by any means or
126
+ process that requires permission under the Licensed Rights, such
127
+ as reproduction, public display, public performance, distribution,
128
+ dissemination, communication, or importation, and to make material
129
+ available to the public including in ways that members of the
130
+ public may access the material from a place and at a time
131
+ individually chosen by them.
132
+
133
+ l. Sui Generis Database Rights means rights other than copyright
134
+ resulting from Directive 96/9/EC of the European Parliament and of
135
+ the Council of 11 March 1996 on the legal protection of databases,
136
+ as amended and/or succeeded, as well as other essentially
137
+ equivalent rights anywhere in the world.
138
+
139
+ m. You means the individual or entity exercising the Licensed Rights
140
+ under this Public License. Your has a corresponding meaning.
141
+
142
+
143
+ Section 2 -- Scope.
144
+
145
+ a. License grant.
146
+
147
+ 1. Subject to the terms and conditions of this Public License,
148
+ the Licensor hereby grants You a worldwide, royalty-free,
149
+ non-sublicensable, non-exclusive, irrevocable license to
150
+ exercise the Licensed Rights in the Licensed Material to:
151
+
152
+ a. reproduce and Share the Licensed Material, in whole or
153
+ in part; and
154
+
155
+ b. produce, reproduce, and Share Adapted Material.
156
+
157
+ 2. Exceptions and Limitations. For the avoidance of doubt, where
158
+ Exceptions and Limitations apply to Your use, this Public
159
+ License does not apply, and You do not need to comply with
160
+ its terms and conditions.
161
+
162
+ 3. Term. The term of this Public License is specified in Section
163
+ 6(a).
164
+
165
+ 4. Media and formats; technical modifications allowed. The
166
+ Licensor authorizes You to exercise the Licensed Rights in
167
+ all media and formats whether now known or hereafter created,
168
+ and to make technical modifications necessary to do so. The
169
+ Licensor waives and/or agrees not to assert any right or
170
+ authority to forbid You from making technical modifications
171
+ necessary to exercise the Licensed Rights, including
172
+ technical modifications necessary to circumvent Effective
173
+ Technological Measures. For purposes of this Public License,
174
+ simply making modifications authorized by this Section 2(a)
175
+ (4) never produces Adapted Material.
176
+
177
+ 5. Downstream recipients.
178
+
179
+ a. Offer from the Licensor -- Licensed Material. Every
180
+ recipient of the Licensed Material automatically
181
+ receives an offer from the Licensor to exercise the
182
+ Licensed Rights under the terms and conditions of this
183
+ Public License.
184
+
185
+ b. Additional offer from the Licensor -- Adapted Material.
186
+ Every recipient of Adapted Material from You
187
+ automatically receives an offer from the Licensor to
188
+ exercise the Licensed Rights in the Adapted Material
189
+ under the conditions of the Adapter's License You apply.
190
+
191
+ c. No downstream restrictions. You may not offer or impose
192
+ any additional or different terms or conditions on, or
193
+ apply any Effective Technological Measures to, the
194
+ Licensed Material if doing so restricts exercise of the
195
+ Licensed Rights by any recipient of the Licensed
196
+ Material.
197
+
198
+ 6. No endorsement. Nothing in this Public License constitutes or
199
+ may be construed as permission to assert or imply that You
200
+ are, or that Your use of the Licensed Material is, connected
201
+ with, or sponsored, endorsed, or granted official status by,
202
+ the Licensor or others designated to receive attribution as
203
+ provided in Section 3(a)(1)(A)(i).
204
+
205
+ b. Other rights.
206
+
207
+ 1. Moral rights, such as the right of integrity, are not
208
+ licensed under this Public License, nor are publicity,
209
+ privacy, and/or other similar personality rights; however, to
210
+ the extent possible, the Licensor waives and/or agrees not to
211
+ assert any such rights held by the Licensor to the limited
212
+ extent necessary to allow You to exercise the Licensed
213
+ Rights, but not otherwise.
214
+
215
+ 2. Patent and trademark rights are not licensed under this
216
+ Public License.
217
+
218
+ 3. To the extent possible, the Licensor waives any right to
219
+ collect royalties from You for the exercise of the Licensed
220
+ Rights, whether directly or through a collecting society
221
+ under any voluntary or waivable statutory or compulsory
222
+ licensing scheme. In all other cases the Licensor expressly
223
+ reserves any right to collect such royalties.
224
+
225
+
226
+ Section 3 -- License Conditions.
227
+
228
+ Your exercise of the Licensed Rights is expressly made subject to the
229
+ following conditions.
230
+
231
+ a. Attribution.
232
+
233
+ 1. If You Share the Licensed Material (including in modified
234
+ form), You must:
235
+
236
+ a. retain the following if it is supplied by the Licensor
237
+ with the Licensed Material:
238
+
239
+ i. identification of the creator(s) of the Licensed
240
+ Material and any others designated to receive
241
+ attribution, in any reasonable manner requested by
242
+ the Licensor (including by pseudonym if
243
+ designated);
244
+
245
+ ii. a copyright notice;
246
+
247
+ iii. a notice that refers to this Public License;
248
+
249
+ iv. a notice that refers to the disclaimer of
250
+ warranties;
251
+
252
+ v. a URI or hyperlink to the Licensed Material to the
253
+ extent reasonably practicable;
254
+
255
+ b. indicate if You modified the Licensed Material and
256
+ retain an indication of any previous modifications; and
257
+
258
+ c. indicate the Licensed Material is licensed under this
259
+ Public License, and include the text of, or the URI or
260
+ hyperlink to, this Public License.
261
+
262
+ 2. You may satisfy the conditions in Section 3(a)(1) in any
263
+ reasonable manner based on the medium, means, and context in
264
+ which You Share the Licensed Material. For example, it may be
265
+ reasonable to satisfy the conditions by providing a URI or
266
+ hyperlink to a resource that includes the required
267
+ information.
268
+
269
+ 3. If requested by the Licensor, You must remove any of the
270
+ information required by Section 3(a)(1)(A) to the extent
271
+ reasonably practicable.
272
+
273
+ b. ShareAlike.
274
+
275
+ In addition to the conditions in Section 3(a), if You Share
276
+ Adapted Material You produce, the following conditions also apply.
277
+
278
+ 1. The Adapter's License You apply must be a Creative Commons
279
+ license with the same License Elements, this version or
280
+ later, or a BY-SA Compatible License.
281
+
282
+ 2. You must include the text of, or the URI or hyperlink to, the
283
+ Adapter's License You apply. You may satisfy this condition
284
+ in any reasonable manner based on the medium, means, and
285
+ context in which You Share Adapted Material.
286
+
287
+ 3. You may not offer or impose any additional or different terms
288
+ or conditions on, or apply any Effective Technological
289
+ Measures to, Adapted Material that restrict exercise of the
290
+ rights granted under the Adapter's License You apply.
291
+
292
+
293
+ Section 4 -- Sui Generis Database Rights.
294
+
295
+ Where the Licensed Rights include Sui Generis Database Rights that
296
+ apply to Your use of the Licensed Material:
297
+
298
+ a. for the avoidance of doubt, Section 2(a)(1) grants You the right
299
+ to extract, reuse, reproduce, and Share all or a substantial
300
+ portion of the contents of the database;
301
+
302
+ b. if You include all or a substantial portion of the database
303
+ contents in a database in which You have Sui Generis Database
304
+ Rights, then the database in which You have Sui Generis Database
305
+ Rights (but not its individual contents) is Adapted Material,
306
+
307
+ including for purposes of Section 3(b); and
308
+ c. You must comply with the conditions in Section 3(a) if You Share
309
+ all or a substantial portion of the contents of the database.
310
+
311
+ For the avoidance of doubt, this Section 4 supplements and does not
312
+ replace Your obligations under this Public License where the Licensed
313
+ Rights include other Copyright and Similar Rights.
314
+
315
+
316
+ Section 5 -- Disclaimer of Warranties and Limitation of Liability.
317
+
318
+ a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
319
+ EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
320
+ AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
321
+ ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
322
+ IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
323
+ WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
324
+ PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
325
+ ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
326
+ KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
327
+ ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
328
+
329
+ b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
330
+ TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
331
+ NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
332
+ INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
333
+ COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
334
+ USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
335
+ ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
336
+ DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
337
+ IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
338
+
339
+ c. The disclaimer of warranties and limitation of liability provided
340
+ above shall be interpreted in a manner that, to the extent
341
+ possible, most closely approximates an absolute disclaimer and
342
+ waiver of all liability.
343
+
344
+
345
+ Section 6 -- Term and Termination.
346
+
347
+ a. This Public License applies for the term of the Copyright and
348
+ Similar Rights licensed here. However, if You fail to comply with
349
+ this Public License, then Your rights under this Public License
350
+ terminate automatically.
351
+
352
+ b. Where Your right to use the Licensed Material has terminated under
353
+ Section 6(a), it reinstates:
354
+
355
+ 1. automatically as of the date the violation is cured, provided
356
+ it is cured within 30 days of Your discovery of the
357
+ violation; or
358
+
359
+ 2. upon express reinstatement by the Licensor.
360
+
361
+ For the avoidance of doubt, this Section 6(b) does not affect any
362
+ right the Licensor may have to seek remedies for Your violations
363
+ of this Public License.
364
+
365
+ c. For the avoidance of doubt, the Licensor may also offer the
366
+ Licensed Material under separate terms or conditions or stop
367
+ distributing the Licensed Material at any time; however, doing so
368
+ will not terminate this Public License.
369
+
370
+ d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
371
+ License.
372
+
373
+
374
+ Section 7 -- Other Terms and Conditions.
375
+
376
+ a. The Licensor shall not be bound by any additional or different
377
+ terms or conditions communicated by You unless expressly agreed.
378
+
379
+ b. Any arrangements, understandings, or agreements regarding the
380
+ Licensed Material not stated herein are separate from and
381
+ independent of the terms and conditions of this Public License.
382
+
383
+
384
+ Section 8 -- Interpretation.
385
+
386
+ a. For the avoidance of doubt, this Public License does not, and
387
+ shall not be interpreted to, reduce, limit, restrict, or impose
388
+ conditions on any use of the Licensed Material that could lawfully
389
+ be made without permission under this Public License.
390
+
391
+ b. To the extent possible, if any provision of this Public License is
392
+ deemed unenforceable, it shall be automatically reformed to the
393
+ minimum extent necessary to make it enforceable. If the provision
394
+ cannot be reformed, it shall be severed from this Public License
395
+ without affecting the enforceability of the remaining terms and
396
+ conditions.
397
+
398
+ c. No term or condition of this Public License will be waived and no
399
+ failure to comply consented to unless expressly agreed to by the
400
+ Licensor.
401
+
402
+ d. Nothing in this Public License constitutes or may be interpreted
403
+ as a limitation upon, or waiver of, any privileges and immunities
404
+ that apply to the Licensor or You, including from the legal
405
+ processes of any jurisdiction or authority.
406
+
407
+
408
+ =======================================================================
409
+
410
+ Creative Commons is not a party to its public
411
+ licenses. Notwithstanding, Creative Commons may elect to apply one of
412
+ its public licenses to material it publishes and in those instances
413
+ will be considered the “Licensor.” The text of the Creative Commons
414
+ public licenses is dedicated to the public domain under the CC0 Public
415
+ Domain Dedication. Except for the limited purpose of indicating that
416
+ material is shared under a Creative Commons public license or as
417
+ otherwise permitted by the Creative Commons policies published at
418
+ creativecommons.org/policies, Creative Commons does not authorize the
419
+ use of the trademark "Creative Commons" or any other trademark or logo
420
+ of Creative Commons without its prior written consent including,
421
+ without limitation, in connection with any unauthorized modifications
422
+ to any of its public licenses or any other arrangements,
423
+ understandings, or agreements concerning use of licensed material. For
424
+ the avoidance of doubt, this paragraph does not form part of the
425
+ public licenses.
426
+
427
+ Creative Commons may be contacted at creativecommons.org.
data/Rakefile ADDED
@@ -0,0 +1,95 @@
1
+ # encoding: UTF-8
2
+ require_relative 'Creator/parser.rb'
3
+ require_relative 'Creator/latex_formatter.rb'
4
+ require_relative 'Creator/html_formatter.rb'
5
+ require_relative 'Creator/midi_formatter.rb'
6
+
7
+ def book
8
+ unless $book
9
+ $book = SongBook.parse("Songs")
10
+ $book.preface = `tail -n+3 Readme.md | pandoc -t latex`
11
+ end
12
+ $book
13
+ end
14
+
15
+ def book_name
16
+ book.file_safe_title
17
+ end
18
+
19
+ task :parse do
20
+ book
21
+ end
22
+
23
+ task :reorder => [:parse] do
24
+ File.write("Songs/order.yml", Hash[book.songs.map{|s| [s.order, s.slug]}].to_yaml)
25
+ end
26
+
27
+ task :eps => [:parse] do
28
+ mkdir_p 'latex'
29
+ Dir.chdir("latex") do
30
+ book.songs.each {|s| s.eps!}
31
+ end
32
+ end
33
+
34
+ task :preview => [:parse, :eps, :reorder] do
35
+ Dir.chdir("latex") do
36
+ book.preview(filename:book_name)
37
+ end
38
+ end
39
+
40
+ task :build => [:parse, :eps, :reorder] do
41
+ Dir.chdir("latex") do
42
+ book.build(filename:book_name)
43
+ end
44
+ end
45
+
46
+ task :booklet => [:parse, :eps, :reorder] do
47
+ Dir.chdir("latex") do
48
+ book.build(booklet:true, filename:"#{book_name}let")
49
+ end
50
+ end
51
+
52
+ task :html => [:parse, :reorder] do
53
+ book.to_html("html")
54
+ end
55
+
56
+ task :midi => [:parse, :reorder] do
57
+ book.to_midi("html/midi")
58
+ end
59
+
60
+ task :info => [:parse] do
61
+ File.write("html/#{book_name}.json", book.json_info)
62
+ File.write("html/#{book_name}.js", book.jsonp_info)
63
+ File.write("html/songbook.json", book.json_info)
64
+ end
65
+
66
+ task :default => [:midi, :html, :info, :build, :booklet] do
67
+ end
68
+
69
+ task :songtex do
70
+ b = SongBook.parse("Songs")
71
+ Dir.chdir("latex") do
72
+ b.songs.each do |song|
73
+ File.write("#{song.title.downcase.gsub(/[^\w]/,"_")}.tex", SongBook.templatize(song.to_latex))
74
+ end
75
+ end
76
+ end
77
+
78
+ task :clean do
79
+ Dir.chdir("Songs") do
80
+ system("rm *.pdf *.ps *.eps *.mid")
81
+ end
82
+ system("rm latex/*")
83
+ end
84
+
85
+ task :toc_to_order do
86
+ toc = File.read("latex/#{book_name}let.toc")
87
+ nametonum = toc.each_line.map{|l| l.scan(/\\numberline \{(\d+)\}([^\}]+)\}/).flatten.reverse}
88
+ File.write('Songs/order.yml', nametonum.map{|name, num| [num.to_i, b.songs.find{|s| s.title == name}.slug]}.to_yaml)
89
+ end
90
+
91
+ task :publish => [:preview, :booklet, :info] do
92
+ raise StandardError.new("Uncommited changes") unless `git status -s`.empty?
93
+ system("git push")
94
+ system("scp -r latex/#{book_name}.pdf latex/#{book_name}let.pdf latex/#{book_name}.json zachcapalbo.com:/var/www/files/")
95
+ end