k4slide 0.0.1
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 +7 -0
- data/.gitignore +19 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +21 -0
- data/assets/k4slide.css +1 -0
- data/assets/k4slide.js +23509 -0
- data/assets-src/javascripts/k4slide.js +20 -0
- data/assets-src/javascripts/lib/cheesepie/closure/goog/events/ready.js +120 -0
- data/assets-src/javascripts/lib/cheesepie/closure/goog/events/ready_test.html +31 -0
- data/assets-src/javascripts/lib/k4/logger.js +101 -0
- data/assets-src/javascripts/lib/k4/slide/base.js +89 -0
- data/assets-src/javascripts/lib/k4/slide/config.js +75 -0
- data/assets-src/javascripts/lib/k4/slide/controller.js +255 -0
- data/assets-src/javascripts/lib/k4/slide/slide.js +161 -0
- data/assets-src/stylesheets/k4slide.scss +11 -0
- data/assets-src/stylesheets/themes/_config.scss +4 -0
- data/assets-src/stylesheets/themes/_mixin.scss +6 -0
- data/assets-src/stylesheets/themes/base.scss +68 -0
- data/example/example.html +43 -0
- data/example/example.md +19 -0
- data/k4slide.gemspec +28 -0
- data/lib/k4slide/erb/layout.html.erb +13 -0
- data/lib/k4slide/expand_compiler_options.rb +50 -0
- data/lib/k4slide/markdown_compiler.rb +27 -0
- data/lib/k4slide/markdown_renderer.rb +30 -0
- data/lib/k4slide/tasks.rb +158 -0
- data/lib/k4slide/version.rb +3 -0
- data/lib/k4slide.rb +10 -0
- metadata +157 -0
@@ -0,0 +1,161 @@
|
|
1
|
+
goog.provide('k4.slide.Slide');
|
2
|
+
|
3
|
+
goog.require('goog.dom.classes');
|
4
|
+
goog.require('goog.style');
|
5
|
+
goog.require('goog.math.Size');
|
6
|
+
goog.require('goog.math.Coordinate');
|
7
|
+
goog.require('goog.ui.Component');
|
8
|
+
goog.require('logger');
|
9
|
+
|
10
|
+
|
11
|
+
/**
|
12
|
+
* @constructor
|
13
|
+
* @extends {goog.ui.Component}
|
14
|
+
* @param {Element} element Slide element
|
15
|
+
* @param {k4.slide.Config} config Config object
|
16
|
+
* @param {*} opt_domHelper Dom helper
|
17
|
+
*/
|
18
|
+
k4.slide.Slide = function(element, config, opt_domHelper) {
|
19
|
+
goog.base(this, opt_domHelper);
|
20
|
+
|
21
|
+
/**
|
22
|
+
* @type {k4.slide.Config}
|
23
|
+
*/
|
24
|
+
this.config_ = config;
|
25
|
+
|
26
|
+
// set internal element (this.element_ = element)
|
27
|
+
this.setElementInternal(element);
|
28
|
+
this.init_();
|
29
|
+
}
|
30
|
+
goog.inherits(k4.slide.Slide, goog.ui.Component);
|
31
|
+
|
32
|
+
/**
|
33
|
+
* show my slide
|
34
|
+
*/
|
35
|
+
k4.slide.Slide.prototype.init_ = function() {
|
36
|
+
var c = this.config_;
|
37
|
+
var el = this.getElement();
|
38
|
+
// size
|
39
|
+
this.setSizeByConfig();
|
40
|
+
// position
|
41
|
+
this.setPositionByConfig();
|
42
|
+
// hide
|
43
|
+
goog.style.showElement(el, false);
|
44
|
+
};
|
45
|
+
|
46
|
+
/**
|
47
|
+
* slide size
|
48
|
+
* @param {goog.math.Size|number} w width
|
49
|
+
* @param {number|null|undefined} opt_h height
|
50
|
+
*
|
51
|
+
*/
|
52
|
+
k4.slide.Slide.prototype.setSize = function(w, opt_h) {
|
53
|
+
goog.style.setSize(this.getElement(), w, opt_h);
|
54
|
+
};
|
55
|
+
|
56
|
+
k4.slide.Slide.prototype.setSizeByConfig = function() {
|
57
|
+
var c = this.config_;
|
58
|
+
var slideWidth = c.get('slide.width');
|
59
|
+
var slideHeight = c.get('slide.height');
|
60
|
+
var size = new goog.math.Size(slideWidth, slideHeight);
|
61
|
+
this.setSize(size);
|
62
|
+
};
|
63
|
+
|
64
|
+
/**
|
65
|
+
* slide position
|
66
|
+
* @param {goog.math.Cordinate|number} left left position
|
67
|
+
* @param {number|null|undefined} opt_top top position
|
68
|
+
*
|
69
|
+
*/
|
70
|
+
k4.slide.Slide.prototype.setPosition = function(left, opt_top) {
|
71
|
+
goog.style.setPosition(this.getElement(), left, opt_top);
|
72
|
+
};
|
73
|
+
|
74
|
+
k4.slide.Slide.prototype.setPositionByConfig = function() {
|
75
|
+
var c = this.config_;
|
76
|
+
var slideTop = c.get('slide.top');
|
77
|
+
var slideLeft = c.get('slide.left');
|
78
|
+
var pos = new goog.math.Coordinate(slideLeft, slideTop);
|
79
|
+
this.setPosition(pos);
|
80
|
+
};
|
81
|
+
|
82
|
+
|
83
|
+
/**
|
84
|
+
* show my slide
|
85
|
+
*/
|
86
|
+
k4.slide.Slide.prototype.show = function() {
|
87
|
+
var el = this.getElement();
|
88
|
+
goog.style.showElement(el, true);
|
89
|
+
};
|
90
|
+
|
91
|
+
/**
|
92
|
+
* show my slide
|
93
|
+
*/
|
94
|
+
k4.slide.Slide.prototype.hide = function() {
|
95
|
+
var el = this.getElement();
|
96
|
+
goog.style.showElement(el, false);
|
97
|
+
};
|
98
|
+
|
99
|
+
/**
|
100
|
+
* to previous
|
101
|
+
*/
|
102
|
+
k4.slide.Slide.prototype.toPrev = function() {
|
103
|
+
var c = this.getConfig();
|
104
|
+
this.applyClasses(
|
105
|
+
[c.get('slide.class.prev')],
|
106
|
+
[c.get('slide.class.current', c.get('slide.class.next'))]
|
107
|
+
);
|
108
|
+
this.hide();
|
109
|
+
};
|
110
|
+
|
111
|
+
/**
|
112
|
+
* to next
|
113
|
+
*/
|
114
|
+
k4.slide.Slide.prototype.toNext = function() {
|
115
|
+
var c = this.getConfig();
|
116
|
+
this.applyClasses(
|
117
|
+
[c.get('slide.class.next')],
|
118
|
+
[c.get('slide.class.current'), c.get('slide.class.prev')]
|
119
|
+
);
|
120
|
+
this.hide();
|
121
|
+
};
|
122
|
+
|
123
|
+
/**
|
124
|
+
* to current
|
125
|
+
*/
|
126
|
+
k4.slide.Slide.prototype.toCurrent = function() {
|
127
|
+
var c = this.getConfig();
|
128
|
+
this.applyClasses(
|
129
|
+
[c.get('slide.class.current')],
|
130
|
+
[c.get('slide.class.next'), c.get('slide.class.prev')]
|
131
|
+
);
|
132
|
+
this.show();
|
133
|
+
};
|
134
|
+
|
135
|
+
/**
|
136
|
+
* remove and add class
|
137
|
+
* @param {array} addClasses Adding css classes
|
138
|
+
* @param {array|undefined|null} opt_removeClasses Removing css classes
|
139
|
+
*/
|
140
|
+
k4.slide.Slide.prototype.applyClasses = function(addClasses, opt_removeClasses) {
|
141
|
+
var el = this.getElement();
|
142
|
+
|
143
|
+
if (goog.isArrayLike(addClasses)) {
|
144
|
+
goog.array.forEach(addClasses, function(cls, i, arr) {
|
145
|
+
goog.dom.classes.add(el, cls);
|
146
|
+
}, this);
|
147
|
+
}
|
148
|
+
|
149
|
+
if (goog.isArrayLike(opt_removeClasses)) {
|
150
|
+
goog.array.forEach(opt_removeClasses, function(cls, i, arr) {
|
151
|
+
goog.dom.classes.remove(el, cls);
|
152
|
+
}, this);
|
153
|
+
}
|
154
|
+
};
|
155
|
+
|
156
|
+
/**
|
157
|
+
* return config instance.
|
158
|
+
*/
|
159
|
+
k4.slide.Slide.prototype.getConfig = function() {
|
160
|
+
return this.config_;
|
161
|
+
};
|
@@ -0,0 +1,68 @@
|
|
1
|
+
//
|
2
|
+
|
3
|
+
@import "_mixin.scss";
|
4
|
+
@import "_config.scss";
|
5
|
+
|
6
|
+
|
7
|
+
body {
|
8
|
+
background-color: #000000;
|
9
|
+
color: #FFFFFF;
|
10
|
+
* {
|
11
|
+
font-size: 18pt;
|
12
|
+
color: $font-color;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
div[role="slide"] {
|
17
|
+
padding: 2%;
|
18
|
+
box-sizing: border-box;
|
19
|
+
background-color: #FFFFFF;
|
20
|
+
|
21
|
+
$radius: 1%;
|
22
|
+
border-radius: $radius;
|
23
|
+
-webkit-border-radius: $radius;
|
24
|
+
-moz-border-radius: $radius;
|
25
|
+
|
26
|
+
> h1, h2, h3, h4, h5, ul, ol, li {
|
27
|
+
margin: 0px;
|
28
|
+
padding: 0px;
|
29
|
+
}
|
30
|
+
|
31
|
+
&[slide-level="1"], &[slide-level="2"] {
|
32
|
+
> h1, h2 {
|
33
|
+
@include horizonal-centerize;
|
34
|
+
margin-top: 40% * 3 / 4;
|
35
|
+
margin-bottom: 5% * 3 / 4;
|
36
|
+
padding-left: 1%;
|
37
|
+
font-size: 140%;
|
38
|
+
}
|
39
|
+
> h1 {
|
40
|
+
border-bottom: 1px solid $border-color;
|
41
|
+
border-left: 10px solid $border-color;
|
42
|
+
}
|
43
|
+
> h2 {
|
44
|
+
border-left: 10px solid $border-color;
|
45
|
+
}
|
46
|
+
> ul, ol {
|
47
|
+
text-align: right;
|
48
|
+
list-style-type: none;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
&[slide-level="3"] {
|
53
|
+
> h3 {
|
54
|
+
border-bottom: 1px solid $border-color;
|
55
|
+
font-size: 120%;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
&:last-child {
|
60
|
+
> h3 {
|
61
|
+
display: none;
|
62
|
+
}
|
63
|
+
> p {
|
64
|
+
@include horizonal-centerize;
|
65
|
+
text-align: center;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
4
|
+
<title>example</title>
|
5
|
+
<link rel="stylesheet" type="text/css" href="../assets/k4slide.css">
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
|
9
|
+
<div role="slide" page="1" slide-level="1">
|
10
|
+
<h1>Markdown 2 Slide</h1>
|
11
|
+
|
12
|
+
<ul>
|
13
|
+
<li>Shinichirow KAMITO</li>
|
14
|
+
</ul>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div role="slide" page="2" slide-level="2">
|
18
|
+
<h2>What?</h2>
|
19
|
+
|
20
|
+
<p>What is this?</p>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
<div role="slide" page="3" slide-level="3">
|
24
|
+
<h3>What is Markdown?</h3>
|
25
|
+
|
26
|
+
<p>Markdown is a lightweight markup language.</p>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<div role="slide" page="4" slide-level="2">
|
30
|
+
<h2>Why?</h2>
|
31
|
+
|
32
|
+
<p>Why</p>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div role="slide" page="5" slide-level="3">
|
36
|
+
<h3>Thank you for listen.</h3>
|
37
|
+
|
38
|
+
<p>Thank you for listen.</p>
|
39
|
+
|
40
|
+
|
41
|
+
<script type="text/javascript" src="../assets/k4slide.js"></script>
|
42
|
+
</body>
|
43
|
+
</html>
|
data/example/example.md
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# Markdown 2 Slide #
|
2
|
+
|
3
|
+
* Shinichirow KAMITO
|
4
|
+
|
5
|
+
## What? ##
|
6
|
+
|
7
|
+
What is this?
|
8
|
+
|
9
|
+
### What is Markdown? ###
|
10
|
+
|
11
|
+
Markdown is a lightweight markup language.
|
12
|
+
|
13
|
+
## Why? ##
|
14
|
+
|
15
|
+
Why
|
16
|
+
|
17
|
+
### Thank you for listen. ###
|
18
|
+
|
19
|
+
Thank you for listen.
|
data/k4slide.gemspec
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'k4slide/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "k4slide"
|
8
|
+
spec.version = K4slide::VERSION
|
9
|
+
spec.authors = ["Shinichirow Kamito"]
|
10
|
+
spec.email = ["kamito@i3-systems.com"]
|
11
|
+
spec.description = "k4 slide"
|
12
|
+
spec.summary = "k4 slide"
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "k4compiler", "= 0.0.1"
|
22
|
+
spec.add_dependency "rake"
|
23
|
+
spec.add_dependency "activesupport", "~> 3.2"
|
24
|
+
|
25
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
26
|
+
spec.add_development_dependency "rspec"
|
27
|
+
spec.add_development_dependency "guard-rspec"
|
28
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
4
|
+
<title><%= @title %></title>
|
5
|
+
<link rel="stylesheet" type="text/css" href="../assets/k4slide.css">
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
|
9
|
+
<%= @body %>
|
10
|
+
|
11
|
+
<script type="text/javascript" src="../assets/k4slide.js"></script>
|
12
|
+
</body>
|
13
|
+
</html>
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'active_support/core_ext/hash'
|
2
|
+
|
3
|
+
module K4compiler
|
4
|
+
|
5
|
+
class Closure
|
6
|
+
class << self
|
7
|
+
def expand_options
|
8
|
+
opt = {
|
9
|
+
:target_dir => nil,
|
10
|
+
:compiled_dir => nil,
|
11
|
+
:with_closure => true,
|
12
|
+
:namespace_suffix => 'App',
|
13
|
+
}
|
14
|
+
return original_options.update(opt).with_indifferent_access()
|
15
|
+
end
|
16
|
+
alias :original_options :options
|
17
|
+
alias :options :expand_options
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class Scss
|
22
|
+
class << self
|
23
|
+
def expand_options
|
24
|
+
opt = {
|
25
|
+
:target_dir => nil,
|
26
|
+
:compiled_dir => nil,
|
27
|
+
:ext => 'scss',
|
28
|
+
}
|
29
|
+
return original_options.update(opt).with_indifferent_access()
|
30
|
+
end
|
31
|
+
alias :original_options :options
|
32
|
+
alias :options :expand_options
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class Markdown
|
37
|
+
class << self
|
38
|
+
def expand_options
|
39
|
+
opt = {
|
40
|
+
:target_dir => nil,
|
41
|
+
:compiled_dir => nil,
|
42
|
+
:renderer => ::K4slide::MarkdownRenderer,
|
43
|
+
}
|
44
|
+
return original_options.update(opt).with_indifferent_access()
|
45
|
+
end
|
46
|
+
alias :original_options :options
|
47
|
+
alias :options :expand_options
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'erb'
|
2
|
+
|
3
|
+
module K4slide
|
4
|
+
class MarkdownCompiler
|
5
|
+
|
6
|
+
def initialize(compiler)
|
7
|
+
@compiler = compiler
|
8
|
+
end
|
9
|
+
|
10
|
+
def to_slide(md_src)
|
11
|
+
@body = @compiler.markdown.compile(md_src)
|
12
|
+
@title = 'example'
|
13
|
+
|
14
|
+
layout_src = read_layout_template()
|
15
|
+
erb = ERB.new(layout_src)
|
16
|
+
source = erb.result(binding)
|
17
|
+
return source
|
18
|
+
end
|
19
|
+
|
20
|
+
def read_layout_template
|
21
|
+
layout_dir = File.expand_path(File.join(File.dirname(__FILE__), 'erb'))
|
22
|
+
layout_template = File.join(layout_dir, 'layout.html.erb')
|
23
|
+
src = File.read(layout_template)
|
24
|
+
return src
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module K4slide
|
2
|
+
class MarkdownRenderer < ::K4compiler::MarkdownRenderer
|
3
|
+
|
4
|
+
attr_accessor :config
|
5
|
+
|
6
|
+
def initialize(*args)
|
7
|
+
super(*args)
|
8
|
+
@started_ = false
|
9
|
+
@level_ = 0
|
10
|
+
@page_ = 0
|
11
|
+
@current_ = nil
|
12
|
+
end
|
13
|
+
|
14
|
+
def header(text, header_level)
|
15
|
+
@page_ += 1
|
16
|
+
@level_ = header_level
|
17
|
+
|
18
|
+
html = ""
|
19
|
+
html << "</div>\n\n" if @started_
|
20
|
+
html << <<__HEAD__
|
21
|
+
<div role="slide" page="#{@page_}" slide-level="#{header_level}">
|
22
|
+
<h#{header_level}>#{text}</h#{header_level}>
|
23
|
+
__HEAD__
|
24
|
+
@current_ = html
|
25
|
+
@started_ = true
|
26
|
+
return html
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,158 @@
|
|
1
|
+
|
2
|
+
require 'rake/clean'
|
3
|
+
require 'k4compiler'
|
4
|
+
require 'k4slide/expand_compiler_options'
|
5
|
+
|
6
|
+
module K4slide
|
7
|
+
|
8
|
+
module Tasks
|
9
|
+
def self.install(&block)
|
10
|
+
instance = K4slideTasks.new
|
11
|
+
instance.install(&block)
|
12
|
+
end
|
13
|
+
|
14
|
+
class K4slideTasks
|
15
|
+
include Rake::DSL
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
@compiler = nil
|
19
|
+
end
|
20
|
+
|
21
|
+
def install(&block)
|
22
|
+
@compiler = ::K4compiler.setup(&block)
|
23
|
+
@config = @compiler.config
|
24
|
+
|
25
|
+
namespace :k4s do
|
26
|
+
namespace :compile do
|
27
|
+
desc 'Compile JavaScript source with Closure Library.'
|
28
|
+
task :closure => get_closure_sources()
|
29
|
+
|
30
|
+
desc 'Compile SASS sources'
|
31
|
+
task :sass => get_sass_source()
|
32
|
+
|
33
|
+
desc 'Compile Markdown sources'
|
34
|
+
task :markdown do
|
35
|
+
puts "Compile Markdown"
|
36
|
+
end
|
37
|
+
|
38
|
+
desc 'Compile sources.'
|
39
|
+
task :all => ['k4s:compile:closure', 'k4s:compile:sass', 'k4s:compile:markdown']
|
40
|
+
end
|
41
|
+
|
42
|
+
namespace :example do
|
43
|
+
task :md2s => (['k4s:example:compile'] + example_markdown_targets())
|
44
|
+
task :compile => ['k4s:compile:all']
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# @return [FileList]
|
50
|
+
def get_closure_sources
|
51
|
+
target_files = []
|
52
|
+
source_dir = @config.closure.target_dir
|
53
|
+
compiled_dir = @config.closure.compiled_dir
|
54
|
+
|
55
|
+
depends_files = []
|
56
|
+
@config.closure.load_paths << source_dir
|
57
|
+
@config.closure.load_paths.each do |load_path|
|
58
|
+
depends_files += FileList[File.join(load_path, '**/*.js')].flatten if load_path
|
59
|
+
end
|
60
|
+
|
61
|
+
ns_suffix = @config.closure.namespace_suffix || 'App'
|
62
|
+
|
63
|
+
filelist = FileList[File.join(source_dir, '*.js')]
|
64
|
+
filelist.each do |source_path|
|
65
|
+
source_basename = File.basename(source_path)
|
66
|
+
target_path = File.join(compiled_dir, source_basename)
|
67
|
+
same_name_dir = source_path.gsub(/\.js$/, '')
|
68
|
+
depends = depends_files.dup
|
69
|
+
depends.unshift(FileList[File.join(same_name_dir, '**/*.js')].flatten)
|
70
|
+
depends.unshift(source_path)
|
71
|
+
depends = depends.flatten
|
72
|
+
|
73
|
+
file(target_path => depends) do |t, args|
|
74
|
+
basename = File.basename(t.name).gsub(/\.js$/, '')
|
75
|
+
namespace = "#{basename}.#{ns_suffix}"
|
76
|
+
js_source = @compiler.closure.compile(namespace)
|
77
|
+
File.open(target_path, 'w') do |io|
|
78
|
+
io.write(js_source)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
target_files << target_path
|
83
|
+
end
|
84
|
+
|
85
|
+
return target_files
|
86
|
+
end
|
87
|
+
|
88
|
+
# @return [FileList]
|
89
|
+
def get_sass_source()
|
90
|
+
target_files = []
|
91
|
+
source_dir = @config.scss.target_dir
|
92
|
+
compiled_dir = @config.scss.compiled_dir
|
93
|
+
ext = @config.scss.ext || 'scss'
|
94
|
+
|
95
|
+
@config.scss.load_paths << source_dir
|
96
|
+
|
97
|
+
depends_files = []
|
98
|
+
@config.scss.load_paths.each do |load_path|
|
99
|
+
depends_files += FileList[File.join(load_path, "**/*.#{ext}")].flatten if load_path
|
100
|
+
end
|
101
|
+
|
102
|
+
filelist = FileList[File.join(source_dir, "*.#{ext}")]
|
103
|
+
filelist.each do |source_path|
|
104
|
+
source_basename = File.basename(source_path)
|
105
|
+
next if source_basename =~ /^_/
|
106
|
+
|
107
|
+
source_basename = source_basename.gsub(/#{ext}$/, 'css')
|
108
|
+
target_path = File.join(compiled_dir, source_basename)
|
109
|
+
depends = depends_files.dup
|
110
|
+
depends.unshift(source_path)
|
111
|
+
|
112
|
+
file(target_path => depends) do |t, args|
|
113
|
+
puts t.name
|
114
|
+
src = File.read(source_path)
|
115
|
+
css_source = @compiler.scss.compile(src)
|
116
|
+
File.open(target_path, 'w') do |io|
|
117
|
+
io.write(css_source)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
target_files << target_path
|
122
|
+
end
|
123
|
+
|
124
|
+
return target_files
|
125
|
+
end
|
126
|
+
|
127
|
+
# Compiling example markdown file
|
128
|
+
def example_markdown_targets()
|
129
|
+
target_files = []
|
130
|
+
|
131
|
+
example_dir = File.join(K4_ROOT, 'example')
|
132
|
+
ext = 'md'
|
133
|
+
filelist = FileList[File.join(example_dir, "*.#{ext}")]
|
134
|
+
puts filelist
|
135
|
+
|
136
|
+
filelist.each do |source_path|
|
137
|
+
source_basename = File.basename(source_path)
|
138
|
+
next if source_basename =~ /^_/
|
139
|
+
|
140
|
+
source_basename = source_basename.gsub(/#{ext}$/, 'html')
|
141
|
+
target_path = File.join(example_dir, source_basename)
|
142
|
+
|
143
|
+
file(target_path) do |t, args|
|
144
|
+
puts t.name
|
145
|
+
src = File.read(source_path)
|
146
|
+
compiler_ = MarkdownCompiler.new(@compiler)
|
147
|
+
html_source = compiler_.to_slide(src)
|
148
|
+
File.open(target_path, 'w') do |io|
|
149
|
+
io.write(html_source)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
target_files << target_path
|
153
|
+
end
|
154
|
+
return target_files
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|