mdpress 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/mdpress +41 -21
- data/lib/impress_css/default.css +8 -0
- data/lib/impress_css/default.html +2 -0
- data/lib/impress_renderer.rb +7 -2
- metadata +7 -6
data/bin/mdpress
CHANGED
@@ -8,30 +8,18 @@ require 'tempfile'
|
|
8
8
|
require 'launchy'
|
9
9
|
|
10
10
|
def log(x)
|
11
|
-
puts "\033[94m" + x + "\033[0m"
|
11
|
+
puts "\033[94m" + x + "\033[0m" if OPTS[:verbose]
|
12
12
|
end
|
13
13
|
|
14
14
|
def base_dir
|
15
15
|
File.dirname(__FILE__) + "/../lib/"
|
16
16
|
end
|
17
17
|
|
18
|
-
|
19
|
-
banner <<-EOS
|
20
|
-
Usage: mdpress [filename] [options]
|
21
|
-
where [options] are:
|
22
|
-
EOS
|
23
|
-
opt :automatic, "Keeps running and automatically updates the presentation to reflect changes to markdown file."
|
24
|
-
opt :stylesheet, "Specify what stylesheet to use.", :default => "default"
|
25
|
-
opt :list, "List all available stylesheets."
|
26
|
-
opt :run, "Run presentation (automatically compiles to a tmp directory and opens in a browser window)"
|
27
|
-
end
|
28
|
-
|
29
|
-
if opts[:list]
|
18
|
+
def list_available_stylesheets
|
30
19
|
log "Available stylesheets:"
|
31
20
|
Dir.glob(base_dir + "impress_css/*").each do |file|
|
32
21
|
puts File.basename(file, ".css")
|
33
22
|
end
|
34
|
-
exit
|
35
23
|
end
|
36
24
|
|
37
25
|
def render
|
@@ -60,6 +48,12 @@ def render
|
|
60
48
|
# now use those attributes and render the file
|
61
49
|
include Redcarpet
|
62
50
|
ImpressRenderer.init_with_attrs attrs
|
51
|
+
if File.exist?(STYLESHEET_HEAD)
|
52
|
+
ImpressRenderer.set_head(File.read(STYLESHEET_HEAD))
|
53
|
+
else
|
54
|
+
ImpressRenderer.set_head("")
|
55
|
+
end
|
56
|
+
|
63
57
|
m = Markdown.new(ImpressRenderer, :autolink => true)
|
64
58
|
log "rendering presentation"
|
65
59
|
f = File.open(DIRNAME + "/index.html", "w+")
|
@@ -67,15 +61,34 @@ def render
|
|
67
61
|
f.close
|
68
62
|
end
|
69
63
|
|
70
|
-
|
64
|
+
OPTS = Trollop::options do
|
65
|
+
banner <<-EOS
|
66
|
+
Usage: mdpress [filename] [options]
|
67
|
+
where [options] are:
|
68
|
+
EOS
|
69
|
+
opt :automatic, "Keeps running and automatically updates the presentation to reflect changes to markdown file."
|
70
|
+
opt :stylesheet, "Specify what stylesheet to use.", :default => "default"
|
71
|
+
opt :list, "List all available stylesheets."
|
72
|
+
opt :run, "Run presentation (automatically compiles to a tmp directory and opens in a browser window)"
|
73
|
+
opt :verbose, "Be verbose."
|
74
|
+
end
|
71
75
|
|
72
76
|
raise Trollop::HelpNeeded if ARGV.empty? # show help screen
|
77
|
+
|
78
|
+
if OPTS[:list]
|
79
|
+
list_available_stylesheets
|
80
|
+
end
|
81
|
+
|
82
|
+
|
83
|
+
STYLESHEET = base_dir + "impress_css/#{OPTS[:stylesheet]}.css"
|
84
|
+
STYLESHEET_HEAD = base_dir + "impress_css/#{OPTS[:stylesheet]}.html"
|
85
|
+
|
73
86
|
unless File.exist?(STYLESHEET)
|
74
|
-
puts
|
87
|
+
puts OPTS[:stylesheet] + " is not a valid stylesheet. See available stylesheets with `mdpress -l`."
|
75
88
|
exit
|
76
89
|
end
|
77
90
|
|
78
|
-
if
|
91
|
+
if OPTS[:run]
|
79
92
|
file = ARGV[0]
|
80
93
|
tmp = Tempfile.new("mdpress")
|
81
94
|
tmp.write(File.read(file))
|
@@ -87,8 +100,15 @@ else
|
|
87
100
|
DIRNAME = File.basename(FILENAME, File.extname(FILENAME))
|
88
101
|
end
|
89
102
|
|
90
|
-
|
91
|
-
|
103
|
+
if File.exist?(DIRNAME)
|
104
|
+
unless File.directory?(DIRNAME)
|
105
|
+
puts "please delete the file: #{DIRNAME} before continuing."
|
106
|
+
exit
|
107
|
+
end
|
108
|
+
else
|
109
|
+
log "making directory"
|
110
|
+
Dir.mkdir(DIRNAME)
|
111
|
+
end
|
92
112
|
|
93
113
|
render
|
94
114
|
|
@@ -107,10 +127,10 @@ def auto
|
|
107
127
|
end
|
108
128
|
end
|
109
129
|
|
110
|
-
if
|
130
|
+
if OPTS[:automatic]
|
111
131
|
log "waiting for updates..."
|
112
132
|
auto
|
113
|
-
elsif
|
133
|
+
elsif OPTS[:run]
|
114
134
|
log "opening in browser."
|
115
135
|
Launchy.open(DIRNAME + "/index.html", :application => :browser)
|
116
136
|
else
|
data/lib/impress_css/default.css
CHANGED
data/lib/impress_renderer.rb
CHANGED
@@ -2,12 +2,17 @@ require 'redcarpet'
|
|
2
2
|
class ImpressRenderer < Redcarpet::Render::HTML
|
3
3
|
@@attrs = []
|
4
4
|
@@current = 0
|
5
|
+
@@head = ""
|
5
6
|
|
6
7
|
def self.init_with_attrs att
|
7
8
|
@@attrs = att
|
8
9
|
@@current = 0
|
9
10
|
end
|
10
11
|
|
12
|
+
def self.set_head head
|
13
|
+
@@head = head
|
14
|
+
end
|
15
|
+
|
11
16
|
def hrule
|
12
17
|
# this is how we later inject attributes into pages. what an awful hack.
|
13
18
|
@@current += 1
|
@@ -30,10 +35,10 @@ class ImpressRenderer < Redcarpet::Render::HTML
|
|
30
35
|
<head>
|
31
36
|
<link href="css/reset.css" rel="stylesheet" />
|
32
37
|
<link href="css/style.css" rel="stylesheet" />
|
33
|
-
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300,400' rel='stylesheet' type='text/css'>
|
34
38
|
<!-- Code Prettifier: -->
|
35
39
|
<link href="css/prettify.css" type="text/css" rel="stylesheet" />
|
36
|
-
<script type="text/javascript" src="js/prettify.js"></script>
|
40
|
+
<script type="text/javascript" src="js/prettify.js"></script>
|
41
|
+
#{@@head}
|
37
42
|
</head>
|
38
43
|
|
39
44
|
<body onload="prettyPrint()">
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mdpress
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Aditya Bhargava
|
@@ -69,13 +69,14 @@ extensions: []
|
|
69
69
|
extra_rdoc_files: []
|
70
70
|
|
71
71
|
files:
|
72
|
-
- lib/impress_renderer.rb
|
73
|
-
- bin/mdpress
|
74
72
|
- lib/css/prettify.css
|
75
73
|
- lib/css/reset.css
|
74
|
+
- lib/impress_css/default.css
|
75
|
+
- lib/impress_css/default.html
|
76
|
+
- lib/impress_renderer.rb
|
76
77
|
- lib/js/impress.js
|
77
78
|
- lib/js/prettify.js
|
78
|
-
-
|
79
|
+
- bin/mdpress
|
79
80
|
has_rdoc: true
|
80
81
|
homepage: https://github.com/egonSchiele/mdpress
|
81
82
|
licenses: []
|