hpm118dwx4 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data/lib/hpm118dwx4.rb +156 -0
- data.tar.gz.sig +0 -0
- metadata +111 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5ac5cb256952e6b8a135b09fe1bcb62cf04aebf1a70208241ba12f75aafa32e5
|
4
|
+
data.tar.gz: abf11bea7925eec3ca9f66ce68b5d01e0f4ee71a9828cf9d38af8e55c572df91
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 761d286669d59b560fdda3ed4de62f5cda67a9950aa3408814a76bfd60758a20a1672391668dba939c9dd43db4fbaadb1a0babf760ce6fa73fa7f973a78c938b
|
7
|
+
data.tar.gz: 3434030a9134a151ea5d08745e22369511070ad5a7f8e98fd0893500e38c3c515c395d3e35bc9b1a64ef88261365ea7efdfb0d1d8bf9d179c63be504f1739997
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data/lib/hpm118dwx4.rb
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# file: hpm118dwx4.rb
|
4
|
+
|
5
|
+
require 'rexle'
|
6
|
+
require 'rexle-builder'
|
7
|
+
require 'kramdown'
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
class HpM118dwx4
|
12
|
+
|
13
|
+
attr_reader :to_html
|
14
|
+
attr_accessor :pages
|
15
|
+
|
16
|
+
|
17
|
+
def initialize(filename='page.html', pages: 8, debug: false)
|
18
|
+
|
19
|
+
@filename, @pages, @debug = filename, [' ']*pages, debug
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def build()
|
24
|
+
@to_html = build_html @pages
|
25
|
+
@doc = Rexle.new(@to_html)
|
26
|
+
end
|
27
|
+
|
28
|
+
def save(filename=@filename)
|
29
|
+
File.write filename, @doc.xml(pretty: true)
|
30
|
+
File.write filename.sub(/\.html$/, '.css'), css()
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
|
36
|
+
def build_html(pages)
|
37
|
+
|
38
|
+
n = 1
|
39
|
+
xml = RexleBuilder.new
|
40
|
+
a = xml.body do
|
41
|
+
|
42
|
+
collate(pages.length).each_slice(4).each do |x|
|
43
|
+
|
44
|
+
puts 'x: ' + x.inspect if @debug
|
45
|
+
|
46
|
+
x.each.with_index do |y,i|
|
47
|
+
|
48
|
+
xml.div({class: 'page ' + (97+i).chr}) do
|
49
|
+
xml.article Kramdown::Document.new(pages[y-1]).to_html
|
50
|
+
xml.footer do
|
51
|
+
xml.p({class: 'n'+ (y.odd? ? 'odd' : 'even')}, 'pg ' + (y).to_s)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
n+=1
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
html=<<EOF
|
62
|
+
<!DOCTYPE html>
|
63
|
+
<html lang="en">
|
64
|
+
<head>
|
65
|
+
<title>Untitled Book</title>
|
66
|
+
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
67
|
+
<link rel="stylesheet" type="text/css" href="page.css" media="screen, projection, tv, print" />
|
68
|
+
</head>
|
69
|
+
#{Rexle.new(a).xml(declaration: false)}
|
70
|
+
</html>
|
71
|
+
EOF
|
72
|
+
|
73
|
+
Rexle.new(html).xml pretty: true
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
def css()
|
78
|
+
<<CSS
|
79
|
+
html,
|
80
|
+
body {
|
81
|
+
height: 100%;
|
82
|
+
margin: 0;
|
83
|
+
padding: 0;
|
84
|
+
}
|
85
|
+
|
86
|
+
.page {
|
87
|
+
display: flex;
|
88
|
+
flex-direction: column;
|
89
|
+
min-height: 100%;
|
90
|
+
}
|
91
|
+
|
92
|
+
article {
|
93
|
+
flex: 1;
|
94
|
+
}
|
95
|
+
body {
|
96
|
+
font-size: 1.96em; margin: 0; padding: 0;
|
97
|
+
|
98
|
+
}
|
99
|
+
/*h1 {margin: 0; padding: 0}
|
100
|
+
h4 {margin: 0; padding: 0}
|
101
|
+
h5 {margin: 0; padding: 0}*/
|
102
|
+
/*p {margin: 0; padding: 0}*/
|
103
|
+
@media print {
|
104
|
+
.page {page-break-after: always;}
|
105
|
+
}
|
106
|
+
|
107
|
+
.page {
|
108
|
+
|
109
|
+
margin: 0; padding: 0;
|
110
|
+
border: 1px solid black;
|
111
|
+
/* height: 98vh; */
|
112
|
+
|
113
|
+
display: -webkit-box;
|
114
|
+
display: -ms-flexbox;
|
115
|
+
display: flex;
|
116
|
+
-webkit-box-orient: vertical;
|
117
|
+
-webkit-box-direction: normal;
|
118
|
+
-ms-flex-direction: column;
|
119
|
+
flex-direction: column;
|
120
|
+
min-height: 88%;
|
121
|
+
}
|
122
|
+
article {
|
123
|
+
-webkit-box-flex: 1;
|
124
|
+
-ms-flex: 1;
|
125
|
+
flex: 1;
|
126
|
+
}
|
127
|
+
|
128
|
+
.a {background-color: #fe2;}
|
129
|
+
.b {background-color: #ae2;}
|
130
|
+
.c {background-color: #8d2;}
|
131
|
+
.d {background-color: #aa2;}
|
132
|
+
.c, .d {
|
133
|
+
background-color: #a42; margin-top: 3.6em; padding-top: 0em;
|
134
|
+
/*height: 88vh;*/
|
135
|
+
min-height: 88%;
|
136
|
+
}
|
137
|
+
.b, .d {background-color: #aa2; margin-left: 2.3em;}
|
138
|
+
.a, .c {background-color: #aa2; margin-right: 2.1em;}
|
139
|
+
|
140
|
+
footer p.nodd {text-align: right;}
|
141
|
+
CSS
|
142
|
+
end
|
143
|
+
|
144
|
+
def collate(n)
|
145
|
+
|
146
|
+
r = -2
|
147
|
+
a = n.times.each_slice(8).flat_map do |x|
|
148
|
+
x.map.with_index do |y,i|
|
149
|
+
puts 'r: ' + r.inspect
|
150
|
+
r+= [3, 3, 1, 3, -5, -1, 5, -1][i]
|
151
|
+
r
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
data.tar.gz.sig
ADDED
Binary file
|
metadata
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hpm118dwx4
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- James Robertson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkxMTE0MDAyMzM3WhcN
|
15
|
+
MjAxMTEzMDAyMzM3WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDlJJKe
|
17
|
+
C3wZAB5bSVQfJUSsGTNsqKsGKn4q5dKv7gZwky23+bx+TnMi/MTXUWoIuztEeUYh
|
18
|
+
Ivn4YnytW5cG16+7awfoXJX10O+Bvz3+ioPDVUng409RF9JQZR0NaV3S9FRFlaZA
|
19
|
+
aJF1BORvoDUfY/lLXLS3LRIcQi9+hJq9gFtoeN1S5pNeORnamqyYHoQUmlgpRscs
|
20
|
+
SpTr80qXoEVqZ0XIsJ5ngA/G/75NH9z0l+Vp4eVVjTvt81HJlWuCXPoOHyosgGZ2
|
21
|
+
IUuOGhbrtVZskUhcv0KhsEB1MYDzW1skt/1xFajk1MFT51ugu7xI0egxaNL2UqH6
|
22
|
+
8i5zVNPj4Gsa2BdLw+xDphpFX/zCTXaEqszJp8egaCLd5p+pZRh1Dd5MsMinxMXM
|
23
|
+
Yh9GcCHGAzAof2Vd9UaoWxWXD8WfZe93GGqhGnWNxZ4zI1lmOqw0suwKRJ18kjZv
|
24
|
+
mDQ2NYfG/goPD47bQeq4qYFYqzB8UxGP++c2DSPm3u1gHtLKL9ByIkW+bNECAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU8EA6YRPh
|
26
|
+
jxeG6tLwBi69X9OfdwkwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAixJX6xYtjM9jtM402ZJTWa0D5j2v2aK24VC/Fh0z
|
29
|
+
PGmEzzpmzp5Ut7PJvh3dmiYzsQt7JbXeg2v6+a4lsQJ07x0R19Kx34/wgtEl5lBw
|
30
|
+
hWJhSUvvnxDOjRSlA5Awxz5NvDkUzSxQb2DvKh9OW6eK/Pc9cgKT1bhcRXgFQRig
|
31
|
+
WvxD0JNZ6T362HX2aw4oFC+cZLEzxft4Okln0rYjyDx88u/s0HAyYkqHzyDhhHpf
|
32
|
+
Pz0vks1MaBxAB/9u6qvcNTicWX9WvCQbRYCxWpdVrjBF+15GaeWrZ0jk9OuMtiyh
|
33
|
+
R7XmOCsnYuXO9QAOi+S/yrfLFcVVUMS5JEZprLCh8nINyxwuEnetI3QesHtjs+xl
|
34
|
+
Wwl7xz0HMYJ/tpCoH55XtgMVvPuaXonauUY3S5I6/TnTF/ZOUpPTkXFqct5odzKD
|
35
|
+
sNqMAscBKy6c1o1geOEoyzhNmvqOpnTx3Cq60JPxKVQVJ/t1Chk+hBsX7uWgYyx7
|
36
|
+
TQh7cRnUlJpo8YCfgLLW8CZa
|
37
|
+
-----END CERTIFICATE-----
|
38
|
+
date: 2019-11-14 00:00:00.000000000 Z
|
39
|
+
dependencies:
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: rexle
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '1.5'
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 1.5.3
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '1.5'
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 1.5.3
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: kramdown
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 2.1.0
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '2.1'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 2.1.0
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '2.1'
|
80
|
+
description:
|
81
|
+
email: james@jamesrobertson.eu
|
82
|
+
executables: []
|
83
|
+
extensions: []
|
84
|
+
extra_rdoc_files: []
|
85
|
+
files:
|
86
|
+
- lib/hpm118dwx4.rb
|
87
|
+
homepage: https://github.com/jrobertson/hpm118dwx4
|
88
|
+
licenses:
|
89
|
+
- MIT
|
90
|
+
metadata: {}
|
91
|
+
post_install_message:
|
92
|
+
rdoc_options: []
|
93
|
+
require_paths:
|
94
|
+
- lib
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
requirements: []
|
106
|
+
rubygems_version: 3.0.3
|
107
|
+
signing_key:
|
108
|
+
specification_version: 4
|
109
|
+
summary: Experimental gem to produce an HTML printed booklet in A6 size using an HP
|
110
|
+
Laserjet Pro M118dw printer.
|
111
|
+
test_files: []
|
metadata.gz.sig
ADDED
Binary file
|