theme_bandit 0.0.6 → 0.0.7
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/README.md +26 -29
- data/lib/theme_bandit/parser/html.rb +9 -2
- data/lib/theme_bandit/util/version.rb +1 -1
- data/test/fixtures/index.html +42 -40
- data/test/test_document_writer.rb +4 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c1feaabd974b8c53b878efa185272e62cd157d4
|
4
|
+
data.tar.gz: fdf1c431def302ee0ccafba20e617de569254a5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a96154643d9addc33d62ddb79686713478552784f2c0e37047176492cd15e48683711e07631539b3ca7b2641e3ed207f4760541f1df3bda025173d8daac82b17
|
7
|
+
data.tar.gz: 7591c424dc88e71b98f53a5a0d71466ad52b6c8831dc491fca558ee606c51894555ea9af461ad0273239f0f9282bdbe48afb4eedd1f1437731c701f85b5019d7
|
data/README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
#
|
1
|
+
# theme_bandit
|
2
2
|
|
3
3
|
Enjoy rapid prototyping with theme bandit :heart:
|
4
4
|
|
5
5
|
Wordpress themes are beautiful - now you can easily convert your favorite themes to a small ruby app
|
6
6
|
|
7
|
-
This gem converts any site template (Wordpress, Joomla, HTML) into
|
8
|
-
simple sinatra rack application
|
7
|
+
This gem converts any site template (Wordpress, Joomla, HTML) into a
|
8
|
+
simple [sinatra](http://www.sinatrarb.com/) rack application.
|
9
9
|
|
10
10
|
Usage from the command line: `bandit`
|
11
11
|
|
@@ -15,11 +15,29 @@ Usage from the command line: `bandit`
|
|
15
15
|
|
16
16
|
You wouldn't download a website ... would you?!
|
17
17
|
|
18
|
-
##
|
18
|
+
## CLI usage
|
19
|
+
`bandit` -> Builds a rack application in a `theme` directory of
|
20
|
+
your current working directory.
|
21
|
+
|
22
|
+
## TODO / Coming Soon
|
23
|
+
- Support for binaries (images + fonts + embeds)
|
24
|
+
- Fetch asynchronous resources
|
25
|
+
- Support for multiple pages
|
26
|
+
|
27
|
+
## template issues
|
28
|
+
Not all templating engines play nicely with html. If you run into
|
29
|
+
templating issues, `erb` will be your safest bet because it renders as
|
30
|
+
pure html.
|
31
|
+
|
32
|
+
Example: The gem converts html for page A to slim, erb, or haml.
|
33
|
+
If the html for page A is messy, it will produce bad slim
|
34
|
+
and cause the application to blow up until adjusted.
|
35
|
+
|
36
|
+
## installation
|
19
37
|
|
20
38
|
Add this line to your application's Gemfile:
|
21
39
|
|
22
|
-
gem 'theme_bandit', '~> 0.0.
|
40
|
+
gem 'theme_bandit', '~> 0.0.7'
|
23
41
|
|
24
42
|
And then execute:
|
25
43
|
|
@@ -29,34 +47,13 @@ Or install it yourself as:
|
|
29
47
|
|
30
48
|
$ gem install theme_bandit
|
31
49
|
|
32
|
-
## Usage
|
33
|
-
`bandit` -> Builds a rack application in the `theme` directory of
|
34
|
-
your project root.
|
35
|
-
|
36
|
-
## Caveats
|
37
|
-
Not all templating engines play nicely with html. If you run into
|
38
|
-
templating issues, `erb` will be your safest bet because it renders as
|
39
|
-
pure html.
|
40
|
-
|
41
|
-
Example: The gem converts html for page A to slim, erb, or haml.
|
42
|
-
Sometimes the html for page A is messy and in turn produces bad slim,
|
43
|
-
which can cause the application to blow up until corrected.
|
44
|
-
|
45
|
-
## TODO / Coming Soon
|
46
|
-
- _Replace & fetch @import declarations in CSS_ added in v0.0.5
|
47
|
-
- Support for binaries (images + fonts + embeds)
|
48
|
-
- Fetch ajax resources
|
49
|
-
- HTML Sanitization
|
50
|
-
- Support for multiple pages
|
51
|
-
- HTML Formatting
|
52
|
-
- Verfiy inline tags
|
53
50
|
|
54
|
-
##
|
51
|
+
## tests
|
55
52
|
|
56
53
|
```
|
57
|
-
rake test
|
54
|
+
bundle exec rake test
|
58
55
|
```
|
59
|
-
##
|
56
|
+
## contributing
|
60
57
|
|
61
58
|
1. Fork it
|
62
59
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'pry'
|
1
2
|
module ThemeBandit
|
2
3
|
module HTMLParser
|
3
4
|
def revise_head_tags
|
@@ -13,11 +14,17 @@ module ThemeBandit
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def remove_link_tags
|
16
|
-
document.search('link').
|
17
|
+
document.search('link').each do |node|
|
18
|
+
if node[:rel] == 'stylesheet'
|
19
|
+
node.remove
|
20
|
+
end
|
21
|
+
end
|
17
22
|
end
|
18
23
|
|
19
24
|
def remove_script_tags
|
20
|
-
document.search('script').
|
25
|
+
document.search('script').each do |node|
|
26
|
+
node.remove if node[:src]
|
27
|
+
end
|
21
28
|
end
|
22
29
|
|
23
30
|
def local_link_names
|
data/test/fixtures/index.html
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
<basefont size=4>
|
7
7
|
<link rel='stylesheet' href='/css/style.css'></link>
|
8
8
|
<link rel='stylesheet' href='/css/style_with_import.css'></link>
|
9
|
+
<link rel='foo' href='bar'></link>
|
9
10
|
<script type='text/javascripts' src='/js/script.js'></script>
|
10
11
|
<script type='text/javascripts' src='/js/script_2.js'></script>
|
11
12
|
</head>
|
@@ -41,44 +42,45 @@
|
|
41
42
|
<h2>How about a nice ordered list!</h2>
|
42
43
|
<ol>
|
43
44
|
<li>This little piggy went to market
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
45
|
+
<li>This little piggy went to SB228 class
|
46
|
+
<li>This little piggy went to an expensive restaurant in Downtown Palo Alto
|
47
|
+
<li>This little piggy ate too much at Indian Buffet.
|
48
|
+
<li>This little piggy got lost
|
49
|
+
</ol>
|
50
|
+
|
51
|
+
<h2>Unordered list</h2>
|
52
|
+
<ul>
|
53
|
+
<li>First element
|
54
|
+
<li>Second element
|
55
|
+
<li>Third element
|
56
|
+
</ul>
|
57
|
+
|
58
|
+
<hr>
|
59
|
+
|
60
|
+
<h2>Nested Lists!</h2>
|
61
|
+
<ul>
|
62
|
+
<li>Things to to today:
|
63
|
+
<ol>
|
64
|
+
<li>Walk the dog
|
65
|
+
<li>Feed the cat
|
66
|
+
<li>Mow the lawn
|
67
|
+
</ol>
|
68
|
+
<li>Things to do tomorrow:
|
69
|
+
<ol>
|
70
|
+
<li>Lunch with mom
|
71
|
+
<li>Feed the hamster
|
72
|
+
<li>Clean kitchen
|
73
|
+
</ol>
|
74
|
+
</ul>
|
75
|
+
|
76
|
+
<p>And finally, how about some <a href=http://www.yahoo.com/>Links?</a></p>
|
77
|
+
|
78
|
+
<p>Or let's just link to <a href=../../index.html>another page on this server</a></p>
|
79
|
+
|
80
|
+
<p>Remember, you can view the HTMl code from this or any other page by using the "View Page Source" command of your browser.</p>
|
81
|
+
|
82
|
+
<script>var foo = 'bar';</script>
|
83
|
+
</body>
|
84
|
+
|
85
|
+
</html>
|
84
86
|
|
@@ -34,7 +34,6 @@ describe ThemeBandit::DocumentWriter do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'writes styles' do
|
37
|
-
|
38
37
|
assert File.file?("#{Dir.pwd}/theme/public/css/0_style.css")
|
39
38
|
end
|
40
39
|
|
@@ -48,6 +47,10 @@ describe ThemeBandit::DocumentWriter do
|
|
48
47
|
end
|
49
48
|
end
|
50
49
|
|
50
|
+
it 'preserves inline scripts' do
|
51
|
+
assert @subject.document.search('script')[2]
|
52
|
+
end
|
53
|
+
|
51
54
|
describe 'import output' do
|
52
55
|
it 'merges css files' do
|
53
56
|
contents = File.read(File.open("#{Dir.pwd}/theme/public/css/0_style_with_import.css", 'r'))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: theme_bandit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luke Fender
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|