flammarion 0.1.5 → 0.1.6
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.
- data/Readme.md +1 -1
- data/electron/flammarion-window.sh +2 -0
- data/electron/main.coffee +8 -4
- data/electron/main.js +11 -6
- data/electron/package.json +9 -1
- data/electron/preload.coffee +12 -0
- data/electron/preload.js +16 -0
- data/lib/flammarion/revelator.rb +1 -1
- data/lib/flammarion/version.rb +1 -1
- data/lib/flammarion/writeable.rb +18 -7
- data/lib/html/build/javascripts/actions.js +10 -1
- data/lib/html/build/javascripts/all.js +10 -1
- data/lib/html/build/javascripts/input.js +10 -1
- data/lib/html/build/javascripts/map.js +10 -1
- data/lib/html/build/javascripts/websocket.js +10 -1
- data/lib/html/build/stylesheets/all.css +1 -0
- data/lib/html/build/stylesheets/engraving.css +1 -0
- data/lib/html/source/javascripts/websocket.coffee +10 -1
- data/lib/html/source/stylesheets/engraving.styl +1 -0
- metadata +3 -2
data/Readme.md
CHANGED
@@ -78,7 +78,7 @@ f.button("Click Here!!!") {f.puts "You clicked the button!"}
|
|
78
78
|
f.input("Placeholder > ") {|msg| f.puts "You wrote: #{msg['text'].light_magenta}"}
|
79
79
|
```
|
80
80
|
|
81
|
-
The [api
|
81
|
+
The [api documentation](http://zach-capalbo.github.io/flammarion/doc/Flammarion.html)
|
82
82
|
is available at <http://zach-capalbo.github.io/flammarion/doc/Flammarion.html>.
|
83
83
|
|
84
84
|
## Screenshots / Samples
|
data/electron/main.coffee
CHANGED
@@ -1,14 +1,18 @@
|
|
1
1
|
app = require 'app'
|
2
2
|
BrowserWindow = require('browser-window')
|
3
|
-
require('crash-reporter').start()
|
4
3
|
path = require('path')
|
4
|
+
shell = require('electron').shell
|
5
5
|
|
6
6
|
app.on 'ready', ->
|
7
7
|
preload = path.resolve(path.join(__dirname, 'preload.js'))
|
8
8
|
main_window = new BrowserWindow
|
9
|
-
width:800
|
10
|
-
height: 600
|
9
|
+
width: parseInt(process.argv[3]) || 800
|
10
|
+
height: parseInt(process.argv[4]) || 600
|
11
11
|
"node-integration": false
|
12
12
|
"web-security":false
|
13
|
+
icon:"icon.png"
|
13
14
|
preload:preload
|
14
|
-
main_window.
|
15
|
+
main_window.loadURL(process.argv[2])
|
16
|
+
main_window.webContents.on 'new-window', (event, url) ->
|
17
|
+
event.preventDefault()
|
18
|
+
shell.openExternal(url)
|
data/electron/main.js
CHANGED
@@ -1,26 +1,31 @@
|
|
1
1
|
// Generated by CoffeeScript 1.9.0
|
2
2
|
(function() {
|
3
|
-
var BrowserWindow, app, path;
|
3
|
+
var BrowserWindow, app, path, shell;
|
4
4
|
|
5
5
|
app = require('app');
|
6
6
|
|
7
7
|
BrowserWindow = require('browser-window');
|
8
8
|
|
9
|
-
require('crash-reporter').start();
|
10
|
-
|
11
9
|
path = require('path');
|
12
10
|
|
11
|
+
shell = require('electron').shell;
|
12
|
+
|
13
13
|
app.on('ready', function() {
|
14
14
|
var main_window, preload;
|
15
15
|
preload = path.resolve(path.join(__dirname, 'preload.js'));
|
16
16
|
main_window = new BrowserWindow({
|
17
|
-
width: 800,
|
18
|
-
height: 600,
|
17
|
+
width: parseInt(process.argv[3]) || 800,
|
18
|
+
height: parseInt(process.argv[4]) || 600,
|
19
19
|
"node-integration": false,
|
20
20
|
"web-security": false,
|
21
|
+
icon: "icon.png",
|
21
22
|
preload: preload
|
22
23
|
});
|
23
|
-
|
24
|
+
main_window.loadURL(process.argv[2]);
|
25
|
+
return main_window.webContents.on('new-window', function(event, url) {
|
26
|
+
event.preventDefault();
|
27
|
+
return shell.openExternal(url);
|
28
|
+
});
|
24
29
|
});
|
25
30
|
|
26
31
|
}).call(this);
|
data/electron/package.json
CHANGED
data/electron/preload.coffee
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
window.$remote = require('remote')
|
2
2
|
|
3
|
+
webFrame = require('web-frame')
|
4
|
+
|
5
|
+
try
|
6
|
+
spellcheck = require('spellchecker')
|
7
|
+
|
8
|
+
webFrame.setSpellCheckProvider("en-US", true, {
|
9
|
+
spellCheck: (text) ->
|
10
|
+
return !spellcheck.isMisspelled(text)
|
11
|
+
})
|
12
|
+
catch error
|
13
|
+
console.log("Could not load spellchecker: #{error}")
|
14
|
+
|
3
15
|
window.onkeyup = (e) ->
|
4
16
|
if e.ctrlKey and e.keyCode is 70
|
5
17
|
window.show_search_bar()
|
data/electron/preload.js
CHANGED
@@ -1,7 +1,23 @@
|
|
1
1
|
// Generated by CoffeeScript 1.9.0
|
2
2
|
(function() {
|
3
|
+
var error, spellcheck, webFrame;
|
4
|
+
|
3
5
|
window.$remote = require('remote');
|
4
6
|
|
7
|
+
webFrame = require('web-frame');
|
8
|
+
|
9
|
+
try {
|
10
|
+
spellcheck = require('spellchecker');
|
11
|
+
webFrame.setSpellCheckProvider("en-US", true, {
|
12
|
+
spellCheck: function(text) {
|
13
|
+
return !spellcheck.isMisspelled(text);
|
14
|
+
}
|
15
|
+
});
|
16
|
+
} catch (_error) {
|
17
|
+
error = _error;
|
18
|
+
console.log("Could not load spellchecker: " + error);
|
19
|
+
}
|
20
|
+
|
5
21
|
window.onkeyup = function(e) {
|
6
22
|
if (e.ctrlKey && e.keyCode === 70) {
|
7
23
|
return window.show_search_bar();
|
data/lib/flammarion/revelator.rb
CHANGED
@@ -72,7 +72,7 @@ module Flammarion
|
|
72
72
|
|
73
73
|
browser :electron do |options|
|
74
74
|
if which('electron') then
|
75
|
-
Process.detach(spawn("electron #{File.dirname(File.absolute_path(__FILE__))}/../../electron '#{options[:url]}'"))
|
75
|
+
Process.detach(spawn("electron #{File.dirname(File.absolute_path(__FILE__))}/../../electron '#{options[:url]}' #{options[:width]} #{options[:height]}"))
|
76
76
|
return true
|
77
77
|
end
|
78
78
|
false
|
data/lib/flammarion/version.rb
CHANGED
data/lib/flammarion/writeable.rb
CHANGED
@@ -311,13 +311,24 @@ module Flammarion
|
|
311
311
|
send_json({action:'script', data:data}.merge(options))
|
312
312
|
end
|
313
313
|
|
314
|
-
# Sets
|
315
|
-
# @
|
316
|
-
#
|
317
|
-
#
|
318
|
-
#
|
319
|
-
|
320
|
-
|
314
|
+
# Sets CSS styles attributes on the current pane.
|
315
|
+
# @overload style(attribute, value)
|
316
|
+
# @param attribute [String] The css attribute to set. Currently does not
|
317
|
+
# support selectors or anything.
|
318
|
+
# @param value [#to_s] The value to set the attribute to. (Don't forget
|
319
|
+
# units!)
|
320
|
+
# @overload style(attributes)
|
321
|
+
# @param attributes [Hash] Table of css attribute to value mapping to set.
|
322
|
+
def style(*args)
|
323
|
+
case args.length
|
324
|
+
when 1
|
325
|
+
# @todo Pass this as a whole hash, rather than individually.
|
326
|
+
args[0].each{|a,v| send_json({action: 'style', attribute: a, value: v})}
|
327
|
+
when 2
|
328
|
+
send_json({action: 'style', attribute: args[0], value: args[1]})
|
329
|
+
else
|
330
|
+
raise ArgumentError.new("Invalid number of arguments (Expected 1 or 2)")
|
331
|
+
end
|
321
332
|
end
|
322
333
|
|
323
334
|
# Will render the given Slim template into the Writeable area. This is
|
@@ -152,6 +152,12 @@ void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?voi
|
|
152
152
|
return results;
|
153
153
|
};
|
154
154
|
|
155
|
+
WSClient.prototype.relink = function(text) {
|
156
|
+
return text.replace(/\<a href=['"](https?:\/\/[^\s]+)["']>/gm, function(str, l) {
|
157
|
+
return "<a href=\"" + l + "\" target='_blank'>";
|
158
|
+
});
|
159
|
+
};
|
160
|
+
|
155
161
|
WSClient.prototype.escape = function(text, input_options) {
|
156
162
|
var options;
|
157
163
|
options = {
|
@@ -178,11 +184,14 @@ void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?voi
|
|
178
184
|
return "<i class='fa fa-" + match.slice(1, -1) + "'></i>";
|
179
185
|
});
|
180
186
|
}
|
181
|
-
|
187
|
+
text = $("<div>" + text + "</div>");
|
188
|
+
text.find("a[href^='http']").attr('target', '_blank');
|
189
|
+
return text.html();
|
182
190
|
};
|
183
191
|
|
184
192
|
WSClient.prototype.add = function(object, target, data) {
|
185
193
|
var key, ref, val;
|
194
|
+
object.find("a[href^='http']").attr('target', '_blank');
|
186
195
|
if (data.style) {
|
187
196
|
ref = data.style;
|
188
197
|
for (key in ref) {
|
@@ -6773,6 +6773,12 @@ if (typeof module !== 'undefined') {
|
|
6773
6773
|
return results;
|
6774
6774
|
};
|
6775
6775
|
|
6776
|
+
WSClient.prototype.relink = function(text) {
|
6777
|
+
return text.replace(/\<a href=['"](https?:\/\/[^\s]+)["']>/gm, function(str, l) {
|
6778
|
+
return "<a href=\"" + l + "\" target='_blank'>";
|
6779
|
+
});
|
6780
|
+
};
|
6781
|
+
|
6776
6782
|
WSClient.prototype.escape = function(text, input_options) {
|
6777
6783
|
var options;
|
6778
6784
|
options = {
|
@@ -6799,11 +6805,14 @@ if (typeof module !== 'undefined') {
|
|
6799
6805
|
return "<i class='fa fa-" + match.slice(1, -1) + "'></i>";
|
6800
6806
|
});
|
6801
6807
|
}
|
6802
|
-
|
6808
|
+
text = $("<div>" + text + "</div>");
|
6809
|
+
text.find("a[href^='http']").attr('target', '_blank');
|
6810
|
+
return text.html();
|
6803
6811
|
};
|
6804
6812
|
|
6805
6813
|
WSClient.prototype.add = function(object, target, data) {
|
6806
6814
|
var key, ref, val;
|
6815
|
+
object.find("a[href^='http']").attr('target', '_blank');
|
6807
6816
|
if (data.style) {
|
6808
6817
|
ref = data.style;
|
6809
6818
|
for (key in ref) {
|
@@ -152,6 +152,12 @@ void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?voi
|
|
152
152
|
return results;
|
153
153
|
};
|
154
154
|
|
155
|
+
WSClient.prototype.relink = function(text) {
|
156
|
+
return text.replace(/\<a href=['"](https?:\/\/[^\s]+)["']>/gm, function(str, l) {
|
157
|
+
return "<a href=\"" + l + "\" target='_blank'>";
|
158
|
+
});
|
159
|
+
};
|
160
|
+
|
155
161
|
WSClient.prototype.escape = function(text, input_options) {
|
156
162
|
var options;
|
157
163
|
options = {
|
@@ -178,11 +184,14 @@ void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?voi
|
|
178
184
|
return "<i class='fa fa-" + match.slice(1, -1) + "'></i>";
|
179
185
|
});
|
180
186
|
}
|
181
|
-
|
187
|
+
text = $("<div>" + text + "</div>");
|
188
|
+
text.find("a[href^='http']").attr('target', '_blank');
|
189
|
+
return text.html();
|
182
190
|
};
|
183
191
|
|
184
192
|
WSClient.prototype.add = function(object, target, data) {
|
185
193
|
var key, ref, val;
|
194
|
+
object.find("a[href^='http']").attr('target', '_blank');
|
186
195
|
if (data.style) {
|
187
196
|
ref = data.style;
|
188
197
|
for (key in ref) {
|
@@ -152,6 +152,12 @@ void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?voi
|
|
152
152
|
return results;
|
153
153
|
};
|
154
154
|
|
155
|
+
WSClient.prototype.relink = function(text) {
|
156
|
+
return text.replace(/\<a href=['"](https?:\/\/[^\s]+)["']>/gm, function(str, l) {
|
157
|
+
return "<a href=\"" + l + "\" target='_blank'>";
|
158
|
+
});
|
159
|
+
};
|
160
|
+
|
155
161
|
WSClient.prototype.escape = function(text, input_options) {
|
156
162
|
var options;
|
157
163
|
options = {
|
@@ -178,11 +184,14 @@ void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?voi
|
|
178
184
|
return "<i class='fa fa-" + match.slice(1, -1) + "'></i>";
|
179
185
|
});
|
180
186
|
}
|
181
|
-
|
187
|
+
text = $("<div>" + text + "</div>");
|
188
|
+
text.find("a[href^='http']").attr('target', '_blank');
|
189
|
+
return text.html();
|
182
190
|
};
|
183
191
|
|
184
192
|
WSClient.prototype.add = function(object, target, data) {
|
185
193
|
var key, ref, val;
|
194
|
+
object.find("a[href^='http']").attr('target', '_blank');
|
186
195
|
if (data.style) {
|
187
196
|
ref = data.style;
|
188
197
|
for (key in ref) {
|
@@ -152,6 +152,12 @@ void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?voi
|
|
152
152
|
return results;
|
153
153
|
};
|
154
154
|
|
155
|
+
WSClient.prototype.relink = function(text) {
|
156
|
+
return text.replace(/\<a href=['"](https?:\/\/[^\s]+)["']>/gm, function(str, l) {
|
157
|
+
return "<a href=\"" + l + "\" target='_blank'>";
|
158
|
+
});
|
159
|
+
};
|
160
|
+
|
155
161
|
WSClient.prototype.escape = function(text, input_options) {
|
156
162
|
var options;
|
157
163
|
options = {
|
@@ -178,11 +184,14 @@ void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?voi
|
|
178
184
|
return "<i class='fa fa-" + match.slice(1, -1) + "'></i>";
|
179
185
|
});
|
180
186
|
}
|
181
|
-
|
187
|
+
text = $("<div>" + text + "</div>");
|
188
|
+
text.find("a[href^='http']").attr('target', '_blank');
|
189
|
+
return text.html();
|
182
190
|
};
|
183
191
|
|
184
192
|
WSClient.prototype.add = function(object, target, data) {
|
185
193
|
var key, ref, val;
|
194
|
+
object.find("a[href^='http']").attr('target', '_blank');
|
186
195
|
if (data.style) {
|
187
196
|
ref = data.style;
|
188
197
|
for (key in ref) {
|
@@ -59,6 +59,11 @@ class WSClient
|
|
59
59
|
$(pane).css "height", p_height(pane)
|
60
60
|
$(pane).css "width", '100%'
|
61
61
|
|
62
|
+
relink: (text) ->
|
63
|
+
text.replace(/\<a href=['"](https?:\/\/[^\s]+)["']>/gm, (str, l) ->
|
64
|
+
"<a href=\"#{l}\" target='_blank'>"
|
65
|
+
)
|
66
|
+
|
62
67
|
escape: (text, input_options) ->
|
63
68
|
options =
|
64
69
|
raw: false
|
@@ -70,11 +75,15 @@ class WSClient
|
|
70
75
|
text = "#{text}"
|
71
76
|
text = ansi_up.escape_for_html(text) if options.escape_html
|
72
77
|
text = ansi_up.ansi_to_html(text, {use_classes:true}) if options.colorize
|
78
|
+
# text = @relink(text)
|
73
79
|
text = text.replace(/:[\w-]+:/g, (match) ->
|
74
80
|
"<i class='fa fa-#{match[1..-2]}'></i>") if options.escape_icons
|
75
|
-
|
81
|
+
text = $("<div>#{text}</div>")
|
82
|
+
text.find("a[href^='http']").attr('target','_blank')
|
83
|
+
return text.html()
|
76
84
|
|
77
85
|
add: (object, target, data) ->
|
86
|
+
object.find("a[href^='http']").attr('target','_blank')
|
78
87
|
if data.style
|
79
88
|
object.css(key, val) for own key, val of data.style
|
80
89
|
if data.replace
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flammarion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-04-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rubame
|
@@ -366,6 +366,7 @@ files:
|
|
366
366
|
- LICENSE
|
367
367
|
- Readme.md
|
368
368
|
- electron/package.json
|
369
|
+
- electron/flammarion-window.sh
|
369
370
|
- electron/main.js
|
370
371
|
- electron/icon.png
|
371
372
|
- electron/preload.coffee
|