k_builder 0.0.69 → 0.0.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/a.txt +0 -0
- data/hooks/pre-commit +2 -2
- data/hooks/update-version +1 -1
- data/k_builder.gemspec +2 -2
- data/lib/k_builder/base_builder.rb +47 -5
- data/lib/k_builder/configuration_extension.rb +43 -0
- data/lib/k_builder/version.rb +1 -1
- data/lib/k_builder.rb +3 -2
- metadata +19 -9
- data/lib/k_builder/assets/a.html +0 -235
- data/lib/k_builder/assets/b.html +0 -109
- data/lib/k_builder/assets/highlight.min.js +0 -1120
- data/lib/k_builder/assets/highlight_css +0 -1
- data/lib/k_builder/assets/ruby.min.js +0 -7
- data/lib/k_builder/base_configuration.rb +0 -64
- data/lib/k_builder/configuration.rb +0 -72
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba7eb819303b0c16a00de3d75a74276acbe7813d205a8b380395156b375977ed
|
4
|
+
data.tar.gz: 37fdae6f2e90fbe8f26f368a0565a8916f6911e2fa5696a4d7973f662397a27a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4dbb5a5c8322b7d79331fc542f39d01ed6ac6540937468b59b89e95d34a3104b452bac4578f4862435e1e727081c53df5e031e9a0429ac34c13d178c5c43ead2
|
7
|
+
data.tar.gz: 8f86d00742b9d61bc3938a135535317688e098edc0f362e837dd2a958cfa8ae6c546d92c8d0ad5a94f499f6352e96cefe28f6d0215b07f13e13a0c9339a0e8fa
|
data/a.txt
ADDED
File without changes
|
data/hooks/pre-commit
CHANGED
@@ -8,8 +8,8 @@ require 'English'
|
|
8
8
|
|
9
9
|
exit 0 if ARGV.include?('--no-verify')
|
10
10
|
|
11
|
-
warning_keywords = %w[
|
12
|
-
keywords = %w[binding.pry console.dir byebug
|
11
|
+
warning_keywords = %w[]
|
12
|
+
keywords = %w[binding.pry console.dir byebug]
|
13
13
|
files_changed = `git diff-index --name-only HEAD --`.split
|
14
14
|
|
15
15
|
# puts '----------------------------------------------------------------------'
|
data/hooks/update-version
CHANGED
data/k_builder.gemspec
CHANGED
@@ -38,11 +38,11 @@ Gem::Specification.new do |spec|
|
|
38
38
|
spec.require_paths = ['lib']
|
39
39
|
# spec.extensions = ['ext/k_builder/extconf.rb']
|
40
40
|
spec.add_dependency 'handlebars-helpers', '~> 0'
|
41
|
+
spec.add_dependency 'k_config', '~> 0'
|
41
42
|
spec.add_dependency 'k_log', '~> 0'
|
42
43
|
spec.add_dependency 'k_type', '~> 0'
|
43
44
|
spec.add_dependency 'k_util', '~> 0'
|
44
45
|
spec.add_dependency 'rubocop', '~> 1.8'
|
45
46
|
|
46
|
-
|
47
|
-
# spec.add_dependency "config" , ">= 3.0.0"
|
47
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
48
48
|
end
|
@@ -54,7 +54,7 @@ module KBuilder
|
|
54
54
|
|
55
55
|
# assigns a builder hash and defines builder methods
|
56
56
|
def initialize(configuration = nil)
|
57
|
-
configuration =
|
57
|
+
configuration = KConfig.configuration if configuration.nil?
|
58
58
|
|
59
59
|
@configuration = configuration
|
60
60
|
|
@@ -130,7 +130,7 @@ module KBuilder
|
|
130
130
|
}
|
131
131
|
end
|
132
132
|
|
133
|
-
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
133
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
134
134
|
def add_file(file, **opts)
|
135
135
|
# move to command
|
136
136
|
full_file = target_file(file, **opts) # opts.key?(:folder_key) || opts.key?(:folder) ? target_file(file, folder: opts[:folder], folder_key: opts[:folder_key]) : target_file(file)
|
@@ -146,6 +146,8 @@ module KBuilder
|
|
146
146
|
run_prettier file if opts.key?(:pretty)
|
147
147
|
# TODO: Add test
|
148
148
|
run_cop(full_file, fix_safe: true) if opts.key?(:cop) || opts.key?(:ruby_cop)
|
149
|
+
# TODO: Add test
|
150
|
+
run_command(file) if opts.key?(:run)
|
149
151
|
|
150
152
|
# Need support for rubocop -a
|
151
153
|
open_file(last_output_file) if opts.key?(:open)
|
@@ -155,7 +157,7 @@ module KBuilder
|
|
155
157
|
|
156
158
|
self
|
157
159
|
end
|
158
|
-
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
160
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
159
161
|
|
160
162
|
def play_actions(actions)
|
161
163
|
actions.reject { |action| action[:played] }.each do |action|
|
@@ -164,6 +166,13 @@ module KBuilder
|
|
164
166
|
end
|
165
167
|
|
166
168
|
def play_action(action)
|
169
|
+
run_action(action)
|
170
|
+
action[:played] = true
|
171
|
+
end
|
172
|
+
|
173
|
+
# certain actions (e.g. set_current_folder) will run independently to play
|
174
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
175
|
+
def run_action(action)
|
167
176
|
case action[:action]
|
168
177
|
when :add_file
|
169
178
|
add_file(action[:file], action[:opts])
|
@@ -177,12 +186,13 @@ module KBuilder
|
|
177
186
|
set_current_folder(action[:folder_key])
|
178
187
|
when :run_command
|
179
188
|
run_command(action[:command])
|
189
|
+
when :run_script
|
190
|
+
run_script(action[:script])
|
180
191
|
else
|
181
192
|
log.error "Unknown action: #{action[:action]}"
|
182
193
|
end
|
183
|
-
|
184
|
-
action[:played] = true
|
185
194
|
end
|
195
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
186
196
|
|
187
197
|
alias touch add_file # it is expected that you would not supply any options, just a file name
|
188
198
|
|
@@ -529,6 +539,10 @@ module KBuilder
|
|
529
539
|
# need to support the fork process options as I was not able to run
|
530
540
|
# k_builder_watch -n because it hid all the following output
|
531
541
|
system(build_command)
|
542
|
+
|
543
|
+
# FROM k_dsl
|
544
|
+
# system "/usr/local/bin/zsh #{output_file}" if execution_context == :system
|
545
|
+
# fork { exec("/usr/local/bin/zsh #{output_file}") } if execution_context == :fork
|
532
546
|
end
|
533
547
|
alias rc run_command
|
534
548
|
|
@@ -540,6 +554,34 @@ module KBuilder
|
|
540
554
|
}
|
541
555
|
end
|
542
556
|
|
557
|
+
# NOT TESTED, and not working with opts, this code needs rewrite
|
558
|
+
def run_script(script)
|
559
|
+
# Deep path create if needed
|
560
|
+
tf = target_folder
|
561
|
+
|
562
|
+
mkdir_p(tf)
|
563
|
+
|
564
|
+
Dir.chdir(tf) do
|
565
|
+
output, status = Open3.capture2(script) # , **opts)
|
566
|
+
|
567
|
+
unless status.success?
|
568
|
+
log.error('Script failed')
|
569
|
+
puts script
|
570
|
+
return nil
|
571
|
+
end
|
572
|
+
|
573
|
+
return output
|
574
|
+
end
|
575
|
+
end
|
576
|
+
|
577
|
+
def run_script_action(script)
|
578
|
+
{
|
579
|
+
action: :run_script,
|
580
|
+
played: false,
|
581
|
+
script: script
|
582
|
+
}
|
583
|
+
end
|
584
|
+
|
543
585
|
def file_write(file, content, on_exist: :skip)
|
544
586
|
self.last_output_file = file # if file not found, we still want to record this as the last_output_file
|
545
587
|
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Attach configuration to the KBuilder module
|
4
|
+
module KBuilder
|
5
|
+
module ConfigurationExtension
|
6
|
+
# Target folders provide a set of named folders that can be written to
|
7
|
+
def target_folders=(value)
|
8
|
+
@target_folders = value
|
9
|
+
end
|
10
|
+
|
11
|
+
def target_folders
|
12
|
+
@target_folders ||= KType::NamedFolders.new
|
13
|
+
end
|
14
|
+
|
15
|
+
# Template folders provides layered folders that templates can exist within
|
16
|
+
def template_folders=(value)
|
17
|
+
@template_folders = value
|
18
|
+
end
|
19
|
+
|
20
|
+
def template_folders
|
21
|
+
@template_folders ||= KType::LayeredFolders.new
|
22
|
+
end
|
23
|
+
|
24
|
+
# Custom debug method for k_builder
|
25
|
+
#
|
26
|
+
# usage:
|
27
|
+
# config.debug(:k_builder_debug)
|
28
|
+
def k_builder_debug
|
29
|
+
target_folders.debug(title: 'target_folders')
|
30
|
+
|
31
|
+
template_folders.debug(title: 'template folders (search order)')
|
32
|
+
''
|
33
|
+
end
|
34
|
+
|
35
|
+
# Custom initialize_copy method for k_builder, this is called during clone
|
36
|
+
def k_builder_initialize_copy(orig)
|
37
|
+
@target_folders = orig.target_folders.clone
|
38
|
+
@template_folders = orig.template_folders.clone
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
KConfig::Configuration.register(:k_builder, KBuilder::ConfigurationExtension)
|
data/lib/k_builder/version.rb
CHANGED
data/lib/k_builder.rb
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rubocop'
|
4
|
+
require 'open3'
|
4
5
|
|
6
|
+
require 'k_config'
|
5
7
|
require 'k_log'
|
6
8
|
require 'k_util'
|
7
9
|
require 'k_type'
|
8
10
|
require 'k_builder/version'
|
9
11
|
require 'k_builder/base_builder'
|
10
|
-
require 'k_builder/
|
11
|
-
require 'k_builder/configuration'
|
12
|
+
require 'k_builder/configuration_extension'
|
12
13
|
require 'k_builder/file_segments'
|
13
14
|
|
14
15
|
# should commands be in their own gem?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: k_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.74
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: handlebars-helpers
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: k_config
|
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'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: k_log
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -103,6 +117,7 @@ files:
|
|
103
117
|
- Sample.drawio
|
104
118
|
- Sample.xml
|
105
119
|
- USAGE.md
|
120
|
+
- a.txt
|
106
121
|
- bin/console
|
107
122
|
- bin/k
|
108
123
|
- bin/kgitsync
|
@@ -112,17 +127,11 @@ files:
|
|
112
127
|
- hooks/update-version
|
113
128
|
- k_builder.gemspec
|
114
129
|
- lib/k_builder.rb
|
115
|
-
- lib/k_builder/assets/a.html
|
116
|
-
- lib/k_builder/assets/b.html
|
117
|
-
- lib/k_builder/assets/highlight.min.js
|
118
|
-
- lib/k_builder/assets/highlight_css
|
119
|
-
- lib/k_builder/assets/ruby.min.js
|
120
130
|
- lib/k_builder/base_builder.rb
|
121
|
-
- lib/k_builder/base_configuration.rb
|
122
131
|
- lib/k_builder/commands/base_command.rb
|
123
132
|
- lib/k_builder/commands/code_syntax_highlighter_command.rb
|
124
133
|
- lib/k_builder/commands/rubo_cop_command.rb
|
125
|
-
- lib/k_builder/
|
134
|
+
- lib/k_builder/configuration_extension.rb
|
126
135
|
- lib/k_builder/file_segments.rb
|
127
136
|
- lib/k_builder/version.rb
|
128
137
|
- usage/_out1.png
|
@@ -139,6 +148,7 @@ metadata:
|
|
139
148
|
homepage_uri: http://appydave.com
|
140
149
|
source_code_uri: https://github.com/klueless-io/k_builder
|
141
150
|
changelog_uri: https://github.com/klueless-io/k_builder/commits/master
|
151
|
+
rubygems_mfa_required: 'true'
|
142
152
|
post_install_message:
|
143
153
|
rdoc_options: []
|
144
154
|
require_paths:
|
data/lib/k_builder/assets/a.html
DELETED
@@ -1,235 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="UTF-8">
|
5
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7
|
-
<title>David</title>
|
8
|
-
<script src="highlight.min.js"></script>
|
9
|
-
<!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.0.1/styles/default.min.css"> -->
|
10
|
-
<script src="https://cdn.jsdelivr.net/npm/html2canvas@1.0.0-rc.5/dist/html2canvas.min.js"></script>
|
11
|
-
<script src="//cdn.jsdelivr.net/gh/TRSasasusu/highlightjs-highlight-lines.js@1.1.6/highlightjs-highlight-lines.min.js"></script>
|
12
|
-
<script src="//cdn.jsdelivr.net/npm/highlightjs-line-numbers.js@2.8.0/dist/highlightjs-line-numbers.min.js"></script>
|
13
|
-
|
14
|
-
<link rel="stylesheet" href="highlight_css/a11y-light.css">
|
15
|
-
|
16
|
-
<style>
|
17
|
-
pre > code {
|
18
|
-
font-family: "Sans Mono", "Consolas", "Courier", monospace;
|
19
|
-
}
|
20
|
-
|
21
|
-
|
22
|
-
/*
|
23
|
-
color: white; */
|
24
|
-
|
25
|
-
.animated-box {
|
26
|
-
font-family: 'Lato';
|
27
|
-
color: #ffffff;
|
28
|
-
padding: 30px;
|
29
|
-
text-align: center;
|
30
|
-
border-radius: 4px;
|
31
|
-
}
|
32
|
-
|
33
|
-
.animated-box {
|
34
|
-
position: relative;
|
35
|
-
}
|
36
|
-
|
37
|
-
.animated-box:after {
|
38
|
-
content: '';
|
39
|
-
position: absolute;
|
40
|
-
top: 0;
|
41
|
-
left: 0;
|
42
|
-
right: 0;
|
43
|
-
bottom: 0;
|
44
|
-
border-radius: 4px;
|
45
|
-
background: linear-gradient(120deg, #00F260, #0575E6, #00F260);
|
46
|
-
background-size: 300% 300%;
|
47
|
-
clip-path: polygon(0% 100%, 3px 100%, 3px 3px, calc(100% - 3px) 3px, calc(100% - 3px) calc(100% - 3px), 3px calc(100% - 3px), 3px 100%, 100% 100%, 100% 0%, 0% 0%);
|
48
|
-
}
|
49
|
-
|
50
|
-
.animated-box.in:after {
|
51
|
-
animation: frame-enter 1s forwards ease-in-out reverse, gradient-animation 4s ease-in-out infinite;
|
52
|
-
}
|
53
|
-
|
54
|
-
#box {
|
55
|
-
position: absolute;
|
56
|
-
top: 170px;
|
57
|
-
left: 70px;
|
58
|
-
width: 600px;
|
59
|
-
height: 465px;
|
60
|
-
display: flex;
|
61
|
-
align-items: center;
|
62
|
-
justify-content: center;
|
63
|
-
color: white;
|
64
|
-
font-family: 'Raleway';
|
65
|
-
font-size: 2.5rem;
|
66
|
-
/* background-color: rgba(255,255,225,0); */
|
67
|
-
}
|
68
|
-
|
69
|
-
.with-linear-gradient {
|
70
|
-
--borderWidth: 13px;
|
71
|
-
background: transparent;
|
72
|
-
position: relative;
|
73
|
-
border-radius: var(--borderWidth);
|
74
|
-
}
|
75
|
-
.with-linear-gradient:after {
|
76
|
-
content: '';
|
77
|
-
position: absolute;
|
78
|
-
top: calc(-1 * var(--borderWidth));
|
79
|
-
left: calc(-1 * var(--borderWidth));
|
80
|
-
height: calc(100% + var(--borderWidth) * 2);
|
81
|
-
width: calc(100% + var(--borderWidth) * 2);
|
82
|
-
border-radius: calc(2 * var(--borderWidth));
|
83
|
-
background: linear-gradient(60deg, #f79533, #f37055, #ef4e7b, #a166ab, #5073b8);
|
84
|
-
z-index: -1;
|
85
|
-
animation: animatedgradient 3s ease alternate infinite;
|
86
|
-
background-size: 300% 300%;
|
87
|
-
}
|
88
|
-
.animated-box {
|
89
|
-
position: relative;
|
90
|
-
}
|
91
|
-
|
92
|
-
.animated-box:after {
|
93
|
-
content: '';
|
94
|
-
position: absolute;
|
95
|
-
top: 0;
|
96
|
-
left: 0;
|
97
|
-
right: 0;
|
98
|
-
bottom: 0;
|
99
|
-
border-radius: 4px;
|
100
|
-
background: linear-gradient(120deg, #00F260, #0575E6, #00F260);
|
101
|
-
background-size: 300% 300%;
|
102
|
-
clip-path: polygon(0% 100%, 3px 100%, 3px 3px, calc(100% - 3px) 3px, calc(100% - 3px) calc(100% - 3px), 3px calc(100% - 3px), 3px 100%, 100% 100%, 100% 0%, 0% 0%);
|
103
|
-
}
|
104
|
-
|
105
|
-
.animated-box.in:after {
|
106
|
-
animation: frame-enter 1s forwards ease-in-out reverse, gradient-animation 4s ease-in-out infinite;
|
107
|
-
}
|
108
|
-
|
109
|
-
|
110
|
-
@keyframes animatedgradient {
|
111
|
-
0% {
|
112
|
-
background-position: 0% 50%;
|
113
|
-
}
|
114
|
-
50% {
|
115
|
-
background-position: 100% 50%;
|
116
|
-
}
|
117
|
-
100% {
|
118
|
-
background-position: 0% 50%;
|
119
|
-
}
|
120
|
-
}
|
121
|
-
|
122
|
-
*/
|
123
|
-
/* for block of numbers */
|
124
|
-
.hljs-ln-numbers {
|
125
|
-
-webkit-touch-callout: none;
|
126
|
-
-webkit-user-select: none;
|
127
|
-
-khtml-user-select: none;
|
128
|
-
-moz-user-select: none;
|
129
|
-
-ms-user-select: none;
|
130
|
-
user-select: none;
|
131
|
-
|
132
|
-
text-align: center;
|
133
|
-
color: #ccc;
|
134
|
-
border-right: 1px solid #CCC;
|
135
|
-
vertical-align: top;
|
136
|
-
padding-right: 5px;
|
137
|
-
|
138
|
-
/* your custom style here */
|
139
|
-
}
|
140
|
-
|
141
|
-
/* for block of code */
|
142
|
-
.hljs-ln-code {
|
143
|
-
padding-left: 100px;
|
144
|
-
}
|
145
|
-
|
146
|
-
.borderexample {
|
147
|
-
border-style:solid;
|
148
|
-
border-color:#287EC7;
|
149
|
-
}
|
150
|
-
</style>
|
151
|
-
</head>
|
152
|
-
<body>
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
<div id="myBlock">
|
157
|
-
<pre><code class="ruby">
|
158
|
-
# frozen_string_literal: true
|
159
|
-
|
160
|
-
module KBuilder
|
161
|
-
module Commands
|
162
|
-
# Base command for single responsibility actions that can be fired
|
163
|
-
# from methods in the builder.
|
164
|
-
#
|
165
|
-
# Uses the command pattern
|
166
|
-
class BaseCommand
|
167
|
-
include KLog::Logging
|
168
|
-
|
169
|
-
attr_accessor :builder
|
170
|
-
attr_accessor :valid
|
171
|
-
|
172
|
-
def initialize(**opts)
|
173
|
-
@builder = opts[:builder]
|
174
|
-
@valid = true
|
175
|
-
end
|
176
|
-
|
177
|
-
def guard(message)
|
178
|
-
# THIS SHOULD ONLY LOG IF DEBUGGING IS TURNED ON
|
179
|
-
log.error(message)
|
180
|
-
@valid = false
|
181
|
-
end
|
182
|
-
|
183
|
-
def valid?
|
184
|
-
@valid
|
185
|
-
end
|
186
|
-
|
187
|
-
def debug(title: nil)
|
188
|
-
log.section_heading(title) if title
|
189
|
-
debug_values if respond_to?(:debug_values)
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|
193
|
-
end
|
194
|
-
</code></pre>
|
195
|
-
are go
|
196
|
-
<a id='x' href="" download="name.jpg"></a>
|
197
|
-
|
198
|
-
<div id='box' class='animated-box in' xclass="with-linear-gradient">
|
199
|
-
|
200
|
-
</div>
|
201
|
-
</body>
|
202
|
-
<script>hljs.highlightAll();</script>
|
203
|
-
|
204
|
-
<button onclick="takeshot()">
|
205
|
-
Take Screenshot
|
206
|
-
</button>
|
207
|
-
|
208
|
-
<div id="output"></div>
|
209
|
-
|
210
|
-
<script>
|
211
|
-
|
212
|
-
const screenshotTarget = document.getElementById('myBlock');
|
213
|
-
|
214
|
-
let div = document.getElementById('myBlock');
|
215
|
-
|
216
|
-
setTimeout(function(){
|
217
|
-
|
218
|
-
html2canvas(div).then(
|
219
|
-
function (canvas) {
|
220
|
-
document
|
221
|
-
.getElementById('output')
|
222
|
-
.appendChild(canvas);
|
223
|
-
});
|
224
|
-
|
225
|
-
}, 1000);
|
226
|
-
|
227
|
-
hljs.initHighlightingOnLoad();
|
228
|
-
hljs.initLineNumbersOnLoad();
|
229
|
-
hljs.initHighlightLinesOnLoad([
|
230
|
-
[{start: 1, end: 3, color: '#555'}, {start: 6, end: 6, color: 'yellow'},], // Highlight some lines in the first code block.
|
231
|
-
[{start: 2, end: 3, color: 'rgba(255, 255, 255, 0.2)'},], // Highlight some lines in the second code block.
|
232
|
-
]);
|
233
|
-
|
234
|
-
</script>
|
235
|
-
</html>
|
data/lib/k_builder/assets/b.html
DELETED
@@ -1,109 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>
|
5
|
-
How to take screenshot of
|
6
|
-
a div using JavaScript?
|
7
|
-
</title>
|
8
|
-
<script src="highlight.min.js"></script>
|
9
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.0.1/styles/default.min.css">
|
10
|
-
<script src="https://cdn.jsdelivr.net/npm/html2canvas@1.0.0-rc.5/dist/html2canvas.min.js"></script>
|
11
|
-
|
12
|
-
<!-- Include from the CDN -->
|
13
|
-
<script src=
|
14
|
-
"https://cdn.jsdelivr.net/npm/html2canvas@1.0.0-rc.5/dist/html2canvas.min.js">
|
15
|
-
</script>
|
16
|
-
|
17
|
-
<!-- Include locally otherwise -->
|
18
|
-
<!-- <script src='html2canvas.js'></script> -->
|
19
|
-
|
20
|
-
<style>
|
21
|
-
#photo {
|
22
|
-
border: 4px solid green;
|
23
|
-
padding: 4px;
|
24
|
-
}
|
25
|
-
</style>
|
26
|
-
</head>
|
27
|
-
|
28
|
-
<body>
|
29
|
-
<div id="photo">
|
30
|
-
<h1>GeeksforGeeks</h1>
|
31
|
-
Hello everyone! This is a
|
32
|
-
trial page for taking a
|
33
|
-
screenshot.
|
34
|
-
<br><br>
|
35
|
-
This is a dummy button!
|
36
|
-
<button> Dummy</button>
|
37
|
-
<br><br>
|
38
|
-
Click the button below to
|
39
|
-
take a screenshot of the div.
|
40
|
-
<br><br>
|
41
|
-
|
42
|
-
<!-- Define the button
|
43
|
-
that will be used to
|
44
|
-
take the screenshot -->
|
45
|
-
<button onclick="takeshot()">
|
46
|
-
Take Screenshot
|
47
|
-
</button>
|
48
|
-
</div>
|
49
|
-
<h1>Screenshot:</h1>
|
50
|
-
<div id="myBlock">
|
51
|
-
<pre><code class="ruby">
|
52
|
-
# frozen_string_literal: true
|
53
|
-
|
54
|
-
module KBuilder
|
55
|
-
module Commands
|
56
|
-
# Base command for single responsibility actions that can be fired
|
57
|
-
# from methods in the builder.
|
58
|
-
#
|
59
|
-
# Uses the command pattern
|
60
|
-
class BaseCommand
|
61
|
-
include KLog::Logging
|
62
|
-
|
63
|
-
attr_accessor :builder
|
64
|
-
attr_accessor :valid
|
65
|
-
|
66
|
-
def initialize(**opts)
|
67
|
-
@builder = opts[:builder]
|
68
|
-
@valid = true
|
69
|
-
end
|
70
|
-
|
71
|
-
def guard(message)
|
72
|
-
# THIS SHOULD ONLY LOG IF DEBUGGING IS TURNED ON
|
73
|
-
log.error(message)
|
74
|
-
@valid = false
|
75
|
-
end
|
76
|
-
|
77
|
-
def valid?
|
78
|
-
@valid
|
79
|
-
end
|
80
|
-
|
81
|
-
def debug(title: nil)
|
82
|
-
log.section_heading(title) if title
|
83
|
-
debug_values if respond_to?(:debug_values)
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
</code></pre>
|
89
|
-
|
90
|
-
<div id="output"></div>
|
91
|
-
|
92
|
-
<script type="text/javascript">
|
93
|
-
|
94
|
-
// Define the function
|
95
|
-
// to screenshot the div
|
96
|
-
function takeshot() {
|
97
|
-
let div = document.getElementById('myBlock');
|
98
|
-
html2canvas(div).then(
|
99
|
-
function (canvas) {
|
100
|
-
document
|
101
|
-
.getElementById('output')
|
102
|
-
.appendChild(canvas);
|
103
|
-
})
|
104
|
-
}
|
105
|
-
</script>
|
106
|
-
</body>
|
107
|
-
<script>hljs.highlightAll();</script>
|
108
|
-
|
109
|
-
</html>
|