publishr 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/document_skeleton/cover.jpg +0 -0
- data/lib/document_skeleton/covertext.txt +5 -0
- data/lib/document_skeleton/frontmatter.txt +43 -0
- data/lib/document_skeleton/metadata.yml +12 -0
- data/lib/document_skeleton/toc.txt +4 -0
- data/lib/epub_skeleton/epub.css +11 -0
- data/lib/epub_templates/kramdown.html +1 -0
- data/lib/publishr.rb +2 -0
- data/lib/publishr/epub_renderer.rb +1 -1
- data/lib/publishr/html_processor.rb +13 -1
- data/lib/publishr/kramdown_processor.rb +8 -0
- data/lib/publishr/version.rb +1 -1
- data/publishr.gemspec +4 -2
- metadata +53 -3
Binary file
|
@@ -0,0 +1,5 @@
|
|
1
|
+
{: .covertext }
|
2
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
3
|
+
|
4
|
+
{: .covertext }
|
5
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
@@ -0,0 +1,43 @@
|
|
1
|
+
{: .title }
|
2
|
+
# Book Title
|
3
|
+
|
4
|
+
{: .title }
|
5
|
+
### Subtitle
|
6
|
+
|
7
|
+
{: .title }
|
8
|
+
Subsubtitle
|
9
|
+
|
10
|
+
<br />
|
11
|
+
<br />
|
12
|
+
|
13
|
+
{: .title }
|
14
|
+
*Author*
|
15
|
+
|
16
|
+
<br />
|
17
|
+
|
18
|
+
{: .title }
|
19
|
+
Publisher
|
20
|
+
|
21
|
+
|
22
|
+
<br style='page-break-before:always;'>
|
23
|
+
|
24
|
+
|
25
|
+
{: .copyright }
|
26
|
+
Copyright © Author
|
27
|
+
http://www.example.com
|
28
|
+
|
29
|
+
{: .copyright }
|
30
|
+
1\. Edition, 2012
|
31
|
+
Publsher (Website)
|
32
|
+
ISBN XXXXXX
|
33
|
+
|
34
|
+
{: .copyright }
|
35
|
+
Copyright remark goes here. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
36
|
+
|
37
|
+
{: .copyright }
|
38
|
+
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
39
|
+
|
40
|
+
{: .copyright }
|
41
|
+
Another
|
42
|
+
Copyright
|
43
|
+
Notice
|
@@ -0,0 +1,12 @@
|
|
1
|
+
identifier: book1
|
2
|
+
title: Title
|
3
|
+
creator: Creator
|
4
|
+
publisher: Publsher
|
5
|
+
subject: Subject
|
6
|
+
description: Description
|
7
|
+
isbn: isbn
|
8
|
+
copyright: Copyright
|
9
|
+
language: en
|
10
|
+
footnote_heading: FOOTNOTES
|
11
|
+
kramdown_options:
|
12
|
+
smart_quotes: ["sbquo", "lsquo", "bdquo", "ldquo"]
|
data/lib/epub_skeleton/epub.css
CHANGED
data/lib/publishr.rb
CHANGED
@@ -19,9 +19,11 @@ require 'kramdown'
|
|
19
19
|
require 'erb'
|
20
20
|
require 'yaml'
|
21
21
|
require 'fileutils'
|
22
|
+
require 'sanitize'
|
22
23
|
|
23
24
|
require 'publishr/project'
|
24
25
|
require 'publishr/html_processor'
|
25
26
|
require 'publishr/epub_renderer'
|
26
27
|
require 'publishr/latex_processor'
|
27
28
|
require 'publishr/latex_renderer'
|
29
|
+
require 'publishr/kramdown_processor'
|
@@ -54,7 +54,7 @@ module Publishr
|
|
54
54
|
Dir[File.join(@inpath,'*.txt')].each do |infilepath|
|
55
55
|
kramdown = File.open(infilepath, 'r').read
|
56
56
|
html = Kramdown::Document.new(kramdown, kramdown_options).to_html
|
57
|
-
degraded_html = HtmlProcessor.new(html,@inpath,@metadata).degrade
|
57
|
+
degraded_html = HtmlProcessor.new(html,@inpath,@metadata,'').degrade
|
58
58
|
outfilepath = File.join(@outpath, File.basename(infilepath).gsub(/(.*).txt/, '\1.html'))
|
59
59
|
File.open(outfilepath, 'w'){ |f| f.write degraded_html }
|
60
60
|
end
|
@@ -1,11 +1,13 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
module Publishr
|
3
3
|
class HtmlProcessor
|
4
|
-
def initialize(markup,inpath,metadata)
|
4
|
+
def initialize(markup='',inpath='',metadata={},rails_resources_url='')
|
5
|
+
@markup = markup
|
5
6
|
@lines = markup.split("\n")
|
6
7
|
@line = ''
|
7
8
|
@inpath = inpath
|
8
9
|
@metadata = metadata
|
10
|
+
@rails_resources_url = rails_resources_url
|
9
11
|
|
10
12
|
@custom_fixes = File.open(File.join(@inpath,'html_postprocessing.rb'), 'r').read if File.exists?(File.join(@inpath,'html_postprocessing.rb'))
|
11
13
|
@global_fixes = File.open(File.join(@inpath,'..','html_postprocessing.rb'), 'r').read if File.exists?(File.join(@inpath,'..','html_postprocessing.rb'))
|
@@ -18,6 +20,10 @@ module Publishr
|
|
18
20
|
@footnote_reference = ''
|
19
21
|
end
|
20
22
|
|
23
|
+
def self.sanitize(html)
|
24
|
+
Sanitize.clean(html, Sanitize::Config::BASIC)
|
25
|
+
end
|
26
|
+
|
21
27
|
def degrade
|
22
28
|
processed_lines = []
|
23
29
|
@lines.each do |l|
|
@@ -40,6 +46,7 @@ module Publishr
|
|
40
46
|
improve_typography
|
41
47
|
make_uppercase
|
42
48
|
change_footnote_references
|
49
|
+
change_resources_url_for_rails unless @rails_resources_url.empty?
|
43
50
|
process_footnotes if @process_footnotes == true
|
44
51
|
add_footnote if @add_footnote == true and @line.include?('<p>')
|
45
52
|
end
|
@@ -94,5 +101,10 @@ module Publishr
|
|
94
101
|
@line.gsub! /<p>/, "<hr><p class='footnote' #{ @footnote_reference }><b>[#{ @footnote_number }]</b>: "
|
95
102
|
@add_footnote = false
|
96
103
|
end
|
104
|
+
|
105
|
+
def change_resources_url_for_rails
|
106
|
+
@line.gsub!(/href="(.*?.css)/){ "href=\"#{ @rails_resources_url }#{ $1 }" }
|
107
|
+
@line.gsub!(/src="(.*?.jpg)/){ "src=\"#{ @rails_resources_url }#{ $1 }" }
|
108
|
+
end
|
97
109
|
end
|
98
110
|
end
|
data/lib/publishr/version.rb
CHANGED
data/publishr.gemspec
CHANGED
@@ -19,6 +19,8 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
21
|
# specify any dependencies here; for example:
|
22
|
-
|
23
|
-
|
22
|
+
s.add_development_dependency "kramdown"
|
23
|
+
s.add_runtime_dependency "kramdown"
|
24
|
+
s.add_development_dependency "sanitize"
|
25
|
+
s.add_runtime_dependency "sanitize"
|
24
26
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: publishr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,52 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
13
|
-
dependencies:
|
12
|
+
date: 2012-01-06 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: kramdown
|
16
|
+
requirement: &20535880 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *20535880
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: kramdown
|
27
|
+
requirement: &20533660 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *20533660
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: sanitize
|
38
|
+
requirement: &20532720 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *20532720
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: sanitize
|
49
|
+
requirement: &20530100 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *20530100
|
14
58
|
description: Fast publishing for ebooks and paper
|
15
59
|
email:
|
16
60
|
- michael@billgastro.com
|
@@ -24,6 +68,11 @@ files:
|
|
24
68
|
- README
|
25
69
|
- Rakefile
|
26
70
|
- bin/publishr
|
71
|
+
- lib/document_skeleton/cover.jpg
|
72
|
+
- lib/document_skeleton/covertext.txt
|
73
|
+
- lib/document_skeleton/frontmatter.txt
|
74
|
+
- lib/document_skeleton/metadata.yml
|
75
|
+
- lib/document_skeleton/toc.txt
|
27
76
|
- lib/epub_skeleton/META-INF/container.xml
|
28
77
|
- lib/epub_skeleton/epub.css
|
29
78
|
- lib/epub_skeleton/mimetype
|
@@ -36,6 +85,7 @@ files:
|
|
36
85
|
- lib/publishr.rb
|
37
86
|
- lib/publishr/epub_renderer.rb
|
38
87
|
- lib/publishr/html_processor.rb
|
88
|
+
- lib/publishr/kramdown_processor.rb
|
39
89
|
- lib/publishr/latex_processor.rb
|
40
90
|
- lib/publishr/latex_renderer.rb
|
41
91
|
- lib/publishr/project.rb
|