slippery 0.0.3 → 0.1.0
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 +8 -8
- data/Gemfile +1 -1
- data/Gemfile.lock +7 -13
- data/lib/slippery.rb +4 -0
- data/lib/slippery/assets.rb +3 -4
- data/lib/slippery/presentation.rb +4 -3
- data/lib/slippery/processors/add_highlight.rb +23 -0
- data/lib/slippery/processors/impress_js/add_impress_js.rb +1 -1
- data/lib/slippery/processors/impress_js/auto_offsets.rb +1 -1
- data/lib/slippery/rake_tasks.rb +18 -5
- data/lib/slippery/version.rb +1 -1
- data/slippery.gemspec +3 -3
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Yzk3NmU1ZGE3ZjY2MzM1OTRkOWQ3NDRlYzI0ZDkwOGEzOTYxMTgyOA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MDI2MjA1M2FjN2Y4ZmY3Y2U1MDY2YWYzMTQ2NTFmZTU0NzZmMTE2MQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZWFiMmQ4MmJmNTI0OThkNjkwMjNiMWE5NDJhNDIyNGI2ZGU0ZTlkM2I2NThl
|
10
|
+
NDUyYzM1NDNkOWMzMmRkNmU5ZmVkOWY3ZThlOWY4ZTNmNGY0ZGQyN2M3ZmZk
|
11
|
+
ZDdhNzE2MjZlZTg3ZmYyMmU3NzVjZDkwYTVjYjQ4NzJmZmYzNDQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YTYxMjg0YWEwNzFhN2ZkZTQxMDU5MmVjNzc1N2Q3MTIxZjQ4YThlMmE0NDI1
|
14
|
+
YzA5NDBiMjM5ZjJhMzQxYTJhYTU1YjI1ZTUxODM5MWU1MTVlMTgwODkzYjU1
|
15
|
+
ODZhZjlkZGRmNWY4MWRjMzIyNjcwYjRlYmIxYjMxZDkyY2E3NTE=
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -27,21 +27,12 @@ GIT
|
|
27
27
|
PATH
|
28
28
|
remote: .
|
29
29
|
specs:
|
30
|
-
slippery (0.0
|
30
|
+
slippery (0.1.0)
|
31
31
|
hexp (~> 0.0)
|
32
32
|
kramdown (~> 1.1)
|
33
|
+
rake (~> 10.1)
|
33
34
|
rb-inotify
|
34
35
|
|
35
|
-
PATH
|
36
|
-
remote: /home/arne/github/hexp
|
37
|
-
specs:
|
38
|
-
hexp (0.3.1)
|
39
|
-
equalizer (~> 0.0)
|
40
|
-
fzip (~> 0.1)
|
41
|
-
ice_nine (~> 0.9)
|
42
|
-
nokogiri (~> 1.6)
|
43
|
-
sass (~> 3.2)
|
44
|
-
|
45
36
|
GEM
|
46
37
|
remote: https://rubygems.org/
|
47
38
|
specs:
|
@@ -81,7 +72,6 @@ GEM
|
|
81
72
|
ruby_parser (~> 3.1, > 3.1.0)
|
82
73
|
sexp_processor (~> 4.0)
|
83
74
|
formatador (0.2.4)
|
84
|
-
fzip (0.2.0)
|
85
75
|
guard (1.8.1)
|
86
76
|
formatador (>= 0.2.4)
|
87
77
|
listen (>= 1.0.0)
|
@@ -101,6 +91,11 @@ GEM
|
|
101
91
|
guard-rubocop (0.2.0)
|
102
92
|
guard (~> 1.8)
|
103
93
|
rubocop (~> 0.9)
|
94
|
+
hexp (0.3.1)
|
95
|
+
equalizer (~> 0.0)
|
96
|
+
ice_nine (~> 0.9)
|
97
|
+
nokogiri (~> 1.6)
|
98
|
+
sass (~> 3.2)
|
104
99
|
ice_nine (0.9.0)
|
105
100
|
inflecto (0.0.2)
|
106
101
|
kramdown (1.1.0)
|
@@ -200,7 +195,6 @@ DEPENDENCIES
|
|
200
195
|
guard-mutant (~> 0.0.1)
|
201
196
|
guard-rspec (~> 3.0.2)
|
202
197
|
guard-rubocop (~> 0.2.0)
|
203
|
-
hexp!
|
204
198
|
jruby-openssl (~> 0.8.5)
|
205
199
|
kramdown (~> 1.1.0)
|
206
200
|
libnotify (~> 0.8.0)
|
data/lib/slippery.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
require 'kramdown'
|
2
2
|
require 'hexp'
|
3
|
+
require 'pathname'
|
3
4
|
|
4
5
|
# Slippery namespace module
|
5
6
|
module Slippery
|
7
|
+
ROOT = Pathname(__FILE__).dirname.parent
|
8
|
+
|
6
9
|
def self.convert(element)
|
7
10
|
Slippery::Converter.new.convert(element)
|
8
11
|
end
|
@@ -36,6 +39,7 @@ require 'slippery/processors/add_google_font'
|
|
36
39
|
require 'slippery/processors/graphviz_dot'
|
37
40
|
require 'slippery/processors/hr_to_sections'
|
38
41
|
require 'slippery/processors/self_contained'
|
42
|
+
require 'slippery/processors/add_highlight'
|
39
43
|
|
40
44
|
require 'slippery/processors/impress_js/add_impress_js'
|
41
45
|
require 'slippery/processors/impress_js/auto_offsets'
|
data/lib/slippery/assets.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
|
3
1
|
# Manage the assets and their URI/path
|
4
2
|
module Slippery
|
5
3
|
module Assets
|
6
|
-
ASSETS_PATH = '
|
4
|
+
ASSETS_PATH = ROOT.join('assets')
|
7
5
|
|
8
6
|
# Copies the assets locally
|
9
7
|
def self.embed_locally
|
10
|
-
|
8
|
+
raise 'damn'
|
9
|
+
FileUtils.cp_r(ASSETS_PATH, './')
|
11
10
|
end
|
12
11
|
|
13
12
|
# returns a composer returning a URI for a given relative file path
|
@@ -4,7 +4,8 @@ module Slippery
|
|
4
4
|
|
5
5
|
DEFAULT_OPTIONS = {
|
6
6
|
type: :reveal_js,
|
7
|
-
local: true
|
7
|
+
local: true,
|
8
|
+
history: true
|
8
9
|
}.freeze
|
9
10
|
|
10
11
|
def initialize(document, options = {})
|
@@ -19,8 +20,8 @@ module Slippery
|
|
19
20
|
impress_js: [
|
20
21
|
Processors::HrToSections.new(H[:div, class: 'step']),
|
21
22
|
Processors::ImpressJs::AddImpressJs.new(Assets::path_composer(@options[:local]), js_options),
|
22
|
-
Processors::ImpressJs::AutoOffsets.new,
|
23
|
-
],
|
23
|
+
(Processors::ImpressJs::AutoOffsets.new unless @options.fetch(:manual_offsets, false)),
|
24
|
+
].compact,
|
24
25
|
reveal_js: [
|
25
26
|
Processors::HrToSections.new(H[:section]),
|
26
27
|
Processors::RevealJs::AddRevealJs.new(Assets::path_composer(@options[:local]), js_options),
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Slippery
|
2
|
+
module Processors
|
3
|
+
class AddHighlight
|
4
|
+
|
5
|
+
DEFAULT_STYLE = :default
|
6
|
+
DEFAULT_VERSION = '8.0'
|
7
|
+
|
8
|
+
def initialize(style = DEFAULT_STYLE, version = DEFAULT_VERSION)
|
9
|
+
@style = style
|
10
|
+
@version = version
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(doc)
|
14
|
+
doc.rewrite 'head' do |head|
|
15
|
+
head <<= H[:link, rel: "stylesheet", href: "http://yandex.st/highlightjs/#{@version}/styles/#{@style}.min.css"]
|
16
|
+
head <<= H[:script, src: "http://yandex.st/highlightjs/#{@version}/highlight.min.js"]
|
17
|
+
head <<= H[:script, 'hljs.initHighlightingOnLoad();']
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -22,7 +22,7 @@ module Slippery
|
|
22
22
|
def call(doc)
|
23
23
|
doc.replace('body') do |body|
|
24
24
|
include_local_javascript(body, @path_composer.call('impress.js/js/impress.js'))
|
25
|
-
.
|
25
|
+
.set_attrs({id: 'impress'}.merge(data_attributes(attributes)))
|
26
26
|
.add H[:script, 'impress().init();']
|
27
27
|
end
|
28
28
|
end
|
data/lib/slippery/rake_tasks.rb
CHANGED
@@ -26,11 +26,11 @@ module Slippery
|
|
26
26
|
presentations.map {|path| [ path.basename(path.extname), path ] }
|
27
27
|
end
|
28
28
|
|
29
|
-
def markdown_to_hexp(infile)
|
29
|
+
def markdown_to_hexp(infile, options = {})
|
30
30
|
doc = Slippery::Document.new(infile.read)
|
31
|
-
doc = Slippery::Presentation.new(doc, options)
|
31
|
+
doc = Slippery::Presentation.new(doc, @options.merge(options))
|
32
32
|
|
33
|
-
doc.process(*processors)
|
33
|
+
doc.process(*processors.reject {|pr| options[:skip_self_contained] && pr == Slippery::Processors::SelfContained})
|
34
34
|
end
|
35
35
|
|
36
36
|
def processor(selector, &blk)
|
@@ -45,6 +45,16 @@ module Slippery
|
|
45
45
|
processors << Slippery::Processors::SelfContained
|
46
46
|
end
|
47
47
|
|
48
|
+
def title(title)
|
49
|
+
processor 'head' do |head|
|
50
|
+
head <<= H[:title, title]
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def add_highlighting(style = Slippery::Processors::AddHighlight::DEFAULT_STYLE, version = Slippery::Processors::AddHighlight::DEFAULT_VERSION)
|
55
|
+
processors << Slippery::Processors::AddHighlight.new(style, version)
|
56
|
+
end
|
57
|
+
|
48
58
|
def define
|
49
59
|
namespace @name do
|
50
60
|
desc "build all"
|
@@ -61,14 +71,17 @@ module Slippery
|
|
61
71
|
|
62
72
|
namespace :watch do
|
63
73
|
presentation_names.each do |name, path|
|
74
|
+
files = markdown_to_hexp(path, skip_self_contained: true).select('link,script').map {|link| link.attr('href') || link.attr('src')}.compact
|
75
|
+
files = files.select {|f| File.exist?(f)}
|
76
|
+
|
64
77
|
desc "watch #{name} for changes"
|
65
|
-
WatchTask.new(name, [path.to_s]) do
|
78
|
+
WatchTask.new(name, [path.to_s, *files]) do
|
66
79
|
dest = Tempfile.new("#{name}.html")
|
67
80
|
File.open("#{name}.html") { |src| FileUtils.copy_stream(src, dest) }
|
68
81
|
dest.close
|
69
82
|
Rake::Task["#{@name}:build:#{name}"].execute
|
70
83
|
puts "="*60
|
71
|
-
print `diff -u #{dest.path} #{name}.html` if File.exist? "#{name}.html"
|
84
|
+
print `diff -u #{dest.path} #{name}.html | cut -c1-150` if File.exist? "#{name}.html"
|
72
85
|
end
|
73
86
|
end
|
74
87
|
end
|
data/lib/slippery/version.rb
CHANGED
data/slippery.gemspec
CHANGED
@@ -17,11 +17,11 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = `git ls-files -- spec`.split($/)
|
18
18
|
gem.extra_rdoc_files = %w[README.md LICENSE]
|
19
19
|
|
20
|
-
gem.add_runtime_dependency 'hexp'
|
21
|
-
gem.add_runtime_dependency 'kramdown'
|
20
|
+
gem.add_runtime_dependency 'hexp' , '~> 0.0'
|
21
|
+
gem.add_runtime_dependency 'kramdown' , '~> 1.1'
|
22
22
|
gem.add_runtime_dependency 'rb-inotify'
|
23
|
+
gem.add_runtime_dependency 'rake' , '~> 10.1'
|
23
24
|
|
24
|
-
gem.add_development_dependency 'rake', '~> 10.1'
|
25
25
|
gem.add_development_dependency 'rspec', '~> 2.14'
|
26
26
|
gem.add_development_dependency 'rubygems-tasks'
|
27
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slippery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arne Brasseur
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
prerelease: false
|
@@ -60,7 +60,7 @@ dependencies:
|
|
60
60
|
- - ~>
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '10.1'
|
63
|
-
type: :
|
63
|
+
type: :runtime
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
@@ -182,6 +182,7 @@ files:
|
|
182
182
|
- lib/slippery/presentation.rb
|
183
183
|
- lib/slippery/processor_helpers.rb
|
184
184
|
- lib/slippery/processors/add_google_font.rb
|
185
|
+
- lib/slippery/processors/add_highlight.rb
|
185
186
|
- lib/slippery/processors/graphviz_dot.rb
|
186
187
|
- lib/slippery/processors/hr_to_sections.rb
|
187
188
|
- lib/slippery/processors/impress_js/add_impress_js.rb
|