publishr 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 &copy; 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"]
@@ -0,0 +1,4 @@
1
+ ## Table of Contents
2
+
3
+ {: .toc }
4
+ [Table of Contents](toc.html)
@@ -88,3 +88,14 @@ h3 {
88
88
  .toc {
89
89
  text-indent: 0;
90
90
  }
91
+
92
+ .diff_correction {
93
+ color: red;
94
+ background-color: #FFEEEE;
95
+ text-decoration: line-through;
96
+ }
97
+
98
+ .diff_insertation {
99
+ color: green;
100
+ background-color: #EEFFEE;
101
+ }
@@ -4,6 +4,7 @@
4
4
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5
5
  <meta name="language" content="de">
6
6
  <link rel="stylesheet" type="text/css" href="epub.css" media="screen">
7
+ <title>PublishR Preview</title>
7
8
  </head>
8
9
  <body>
9
10
  <%= @body %>
@@ -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
@@ -0,0 +1,8 @@
1
+ module Publishr
2
+ class KramdownProcessor
3
+ def self.convert(html)
4
+ sanitized_html = HtmlProcessor.sanitize(html)
5
+ Kramdown::Document.new(sanitized_html, :input => 'html' ).to_kramdown
6
+ end
7
+ end
8
+ end
@@ -1,3 +1,3 @@
1
1
  module Publishr
2
- VERSION = "0.5.1"
2
+ VERSION = "0.5.2"
3
3
  end
@@ -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
- # s.add_development_dependency "rspec"
23
- # s.add_runtime_dependency "rest-client"
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.1
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-02 00:00:00.000000000Z
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