nydp-html 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c0c8d4046e86547b06be324cebae246e9bdda8e1
4
- data.tar.gz: 5ac6ebfc0110f70a4baa746dd27de924911b7787
3
+ metadata.gz: 99b857483d711fd8feba7b0d9e074f0661201d3c
4
+ data.tar.gz: da7407f42604da72d680079a24d1a4698bd7bf9c
5
5
  SHA512:
6
- metadata.gz: 0e08743b4f68407c88565abd23c037ada2b08ed9c632cb07906975ac8405e81f602e4d4245fc61d42cb78f625ef4686845c52e8f6da87c00d67265b16978ddcd
7
- data.tar.gz: 0e01bedfb632144d879584cecb7f4f3ed23dbbe17c430b9b80e5bc5d66c360bfa6d781a368a81883be2c141b752149414de68cdfa5b6eed5d30157c8cb3ffbaa
6
+ metadata.gz: 4c616362e5206cac57a1363cfef7f6c145bcb12da16ffcbd9eb38b296fe51a246df7fa5d0453c3b33f2e3bd9440ab7a4f8de3e3e23bb56ccf65afd04f7e4b9ce
7
+ data.tar.gz: 0e144d603a24da5ea0b7a32eaca597be15e291c4859eda624ddf9e5b1860e5f06aabcb0f264f244b9ef92c575910793c0e78ff2dee1ead4bbf1d1b7ca942116e
@@ -20,7 +20,7 @@
20
20
  (fn (piece)
21
21
  (if (isa 'string piece)
22
22
  piece
23
- (let key (j "--l--" (seq) "--r--")
23
+ (let key (j "hsf:" (seq) ":hsf")
24
24
  (hash-set hsh key `(interpolate ,piece))
25
25
  (j esc sep key sep esc)))))
26
26
 
@@ -101,27 +101,28 @@
101
101
 
102
102
  (def as-tag-attrs (attrs)
103
103
  (let hsh (or attrs (hash))
104
- (joinstr ""
105
- (map (fn (k) " ~|k|='~(joinstr " " hsh.,k)'")
106
- (hash-keys hsh)))))
104
+ (j:map (fn (k) " ~|k|='~(joinstr " " hsh.,k)'")
105
+ (hash-keys hsh))))
107
106
 
108
107
  (def html-tag/ (name attrs) "<~|name|~(as-tag-attrs attrs)/>")
109
108
  (def html-tag (name attrs . content)
110
109
  (let formatted (map default-format content)
111
- "<~|name|~(as-tag-attrs attrs)>~(apply joinstr "" formatted)</~|name|>"))
110
+ "<~|name|~(as-tag-attrs attrs)>~(j formatted)</~|name|>"))
112
111
  (def img (src) (html-tag/ "img" { src src }))
113
112
  (def link-to (txt path attrs) (html-tag "a" (hash-merge { href path } (or attrs (hash))) txt))
114
113
  (def html-tag-fn (name attrs) (fn content (apply html-tag name attrs content)))
115
114
 
116
115
  (def build-html-tag-fn (tagname attrs)
117
- `(curry html-tag ',tagname ,(if attrs `(brace-list ,@attrs))))
116
+ (if (string-match tagname ".+/$")
117
+ `(curry html-tag/ ,(string-replace "/$" "" tagname) ,(if attrs `(brace-list ,@attrs)))
118
+ `(curry html-tag ,tagname ,(if attrs `(brace-list ,@attrs)))))
118
119
 
119
120
  (def html-percent-syntax (tagname attrs)
120
121
  (if (caris 'dot-syntax tagname)
121
122
  (let dot-params (cdr tagname)
122
- (build-html-tag-fn (car dot-params)
123
+ (build-html-tag-fn (to-string:car dot-params)
123
124
  (+ `(class ,(joinstr " " (cdr dot-params))) attrs)))
124
- (build-html-tag-fn tagname attrs)))
125
+ (build-html-tag-fn (to-string tagname) attrs)))
125
126
 
126
127
  (mac percent-syntax names
127
128
  (html-percent-syntax (cadr names) nil))
@@ -129,5 +130,5 @@
129
130
  (define-prefix-list-macro "^%.+" vars expr
130
131
  ; allows (%a(href "/fr/index") "click" name)
131
132
  ; as shortcut for (html-tag "a" { href "/fr/index" } "click " name)
132
- (let tag-name (car:parse:joinstr "" (cdr:string-split vars))
133
+ (let tag-name (car:parse:j:cdr:string-split vars)
133
134
  (html-percent-syntax tag-name expr)))
@@ -43,6 +43,20 @@
43
43
  "</li>\n <li>item " (interpolate (assign counter (+ counter 1)))
44
44
  "</li>\n</ul>\n"))
45
45
 
46
+ ("compile a string with interpolations inside embedded textile to an instruction to generate haml"
47
+ (pre-compile '(render-as-haml "%h1 HEADER
48
+
49
+ :textile
50
+ * a is ~a
51
+ * b is ~b
52
+ * c is ~(c 3)
53
+ "))
54
+
55
+ (string-pieces "<h1>HEADER</h1>\n<ul>\n\t<li>a is " (interpolate a)
56
+ "</li>\n\t<li>b is " (interpolate b)
57
+ "</li>\n\t<li>c is " (interpolate (c 3))
58
+ "</li>\n</ul>\n"))
59
+
46
60
  ("compile a function invocation to render as haml"
47
61
  (pre-compile '(render-as-haml a))
48
62
  (haml-to-html a))
@@ -20,6 +20,10 @@
20
20
  (%p "hello, world")
21
21
  "<p>hello, world</p>")
22
22
 
23
+ ("generates a self-closing html tag"
24
+ (%br/)
25
+ "<br/>")
26
+
23
27
  ("generates nested html tags"
24
28
  (%p "hello " (%b "you") " over " (%i "there"))
25
29
  "<p>hello <b>you</b> over <i>there</i></p>")
@@ -38,13 +42,21 @@
38
42
 
39
43
  ("does not insert empty 'brace-list for no attributes"
40
44
  (pre-compile '(%p foo))
41
- ((curry html-tag (quote p) nil) foo)))
45
+ ((curry html-tag "p" nil) foo)))
42
46
 
43
47
  (examples-for prefix-list
44
48
  ("generates a simple html tag with attributes"
45
49
  (%a(href "/fr/index") "click here")
46
50
  "<a href='/fr/index'>click here</a>")
47
51
 
52
+ ("generates a self-closing html tag with attributes"
53
+ (%img/(src "/smile.png"))
54
+ "<img src='/smile.png'/>")
55
+
56
+ ("generates a self-closing html tag with attributes and classes"
57
+ (%img/.round(src "/smile.png"))
58
+ "<img class='round' src='/smile.png'/>")
59
+
48
60
  ("generates nested html tags with attributes"
49
61
  (%p(class 'important)
50
62
  "read this and "
@@ -4,6 +4,7 @@ require "nydp"
4
4
  require "nydp/literal"
5
5
  require "nydp/builtin"
6
6
  require "nydp/html/version"
7
+ require "haml/filters/textile"
7
8
 
8
9
  module Nydp
9
10
  module Html
@@ -1,5 +1,5 @@
1
1
  module Nydp
2
2
  module Html
3
- VERSION = "0.0.12"
3
+ VERSION = "0.0.13"
4
4
  end
5
5
  end
@@ -26,5 +26,6 @@ Gem::Specification.new do |spec|
26
26
 
27
27
  spec.add_dependency 'nydp', ['~> 0.1', '>= 0.1.13']
28
28
  spec.add_dependency 'haml', '~> 4.0'
29
+ spec.add_dependency 'haml-contrib'
29
30
  spec.add_dependency 'RedCloth'
30
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nydp-html
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Conan Dalton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-26 00:00:00.000000000 Z
11
+ date: 2016-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -100,6 +100,20 @@ dependencies:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
102
  version: '4.0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: haml-contrib
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
103
117
  - !ruby/object:Gem::Dependency
104
118
  name: RedCloth
105
119
  requirement: !ruby/object:Gem::Requirement