Commit graph

53 commits

Author SHA1 Message Date
Mitchell Hanberg
b0a7f9da11 Extract helper module for creating elements
Also removes illegal `html` macros, which allows use to only define one
clause and remove some tests.
2019-08-20 21:01:07 -04:00
AJ Harrington
f3aabf8f59 Updated html macro to put a <!DOCTYPE html> before the <html /> tag (#18)
Removed html from the list of nonvoid tags.  Implemented specifically
so the doctype declaration can be put in.  Not sure if this or adding
an if block to check the tag was a better solution.

Added tests for the html macro to the tests since it would no longer
show up in nonvoid_elements list.

mix test passes
2019-08-19 19:53:17 -04:00
Shritesh Bhattarai
43f10cd0de Add radio_button (#14) 2019-08-13 11:04:14 -04:00
Mitchell Hanberg
eb0fde6e83
Don't recursively call generated component macros (#12)
Recursively calling the macros works fine if you `import` the whole
module wherever you are using your components, but not if you `require`
the module.

This is because importing brings in the all the macros into the callers
namespace, which allows them to be called just by the macro name. When
you `require` the module, it will look for the generated 2-arity macro
in the callers namespace, which probably doesn't exist.

We get around this by not recursively calling them and avoiding the
problem all togther. A few utility functions solves the original issue
of wanting to DRY the file.
2019-08-10 01:09:24 -04:00
Mitchell Hanberg
0521aa2aad Escape content passed to single arity tags 2019-08-07 21:08:16 -04:00
Mitchell Hanberg
c91d742ba7 Explicitly import Temple instead of using __MODULE__ 2019-07-12 15:46:45 -04:00
Mitchell Hanberg
7ad4b0e941 Rename Temple.htm to Temple.temple 2019-07-08 22:29:41 -04:00
Mitchell Hanberg
d210d3bff5 Extract safe result from hidden fields within inputs_for/4
Also switches to using `with` instead of `lexical_scoping` because it is
more idiomatic.
2019-07-07 22:26:32 -04:00
Mitchell Hanberg
2929e6c7c3 Remove IO.inspect 2019-07-05 22:36:59 -04:00
Mitchell Hanberg
eabe9cdd9b Fix collision of Temple.textarea and Phoenix.HTML.Form.textarea 2019-07-04 11:21:54 -04:00
Mitchell Hanberg
8daf85fdb3 Allow defcomponent to work with runtime values for assigns
Also allows tags and defcomponents to accept maps in addition to keyword
lists
2019-07-04 00:16:29 -04:00
Mitchell Hanberg
6c8246fe89 Touching up the docs 2019-07-03 22:09:39 -04:00
Mitchell Hanberg
cf0707f8aa Fix mdn docs 2019-07-03 21:42:30 -04:00
Mitchell Hanberg
9278f7fb4e Rename to Temple 2019-07-01 22:48:51 -04:00
Mitchell Hanberg
dbf8dce765 Phoenix generators for layout and html resource 2019-07-01 22:14:32 -04:00
Mitchell Hanberg
05b11b4bf5 Open put_open_tag up to numbers and atoms as well as binaries 2019-07-01 21:58:50 -04:00
Mitchell Hanberg
dd8edc025d Add wrappe for Phoenix.Form.submit 2019-07-01 00:25:33 -04:00
Mitchell Hanberg
a372a64858 Fix block style phx_link macros 2019-07-01 00:25:13 -04:00
Mitchell Hanberg
fb5147ff97 Improve doc generation
- Downloads all the mdn documentation in parallel
- Enables the `--silent` flag for curl
- Aliases the docs mix task to run update_mdn_docs first
2019-06-30 21:59:38 -04:00
Mitchell Hanberg
b387106281 Fill in README 2019-06-30 14:40:29 -04:00
Mitchell Hanberg
52a27c3dc2 Fix phx_link, phx_button block style implementation 2019-06-30 14:28:44 -04:00
Mitchell Hanberg
883f0966ea Add .travis.yml 2019-06-29 18:33:33 -04:00
Mitchell Hanberg
ee6674f8ca Engine documentation 2019-06-29 18:14:22 -04:00
Mitchell Hanberg
1cb522d440 Wrap Phoenix.HTML.Link module 2019-06-29 18:14:05 -04:00
Mitchell Hanberg
6b55fc7665 Implement remaining from helpers 2019-06-01 00:02:49 -04:00
Mitchell Hanberg
6161d31614 Form module documentation 2019-05-11 23:11:07 -04:00
Mitchell Hanberg
f4dd5d70d7 Tags module documentation 2019-05-11 22:48:33 -04:00
Mitchell Hanberg
c80a858b48 Extra non-tags macros to Dsl module 2019-05-11 12:49:34 -04:00
Mitchell Hanberg
71e6c91c8f Extract Form module and rename Html module to Tags 2019-05-10 15:56:09 -04:00
Mitchell Hanberg
80fadb1b15 Documentation for partial/1 2019-05-10 15:28:13 -04:00
Mitchell Hanberg
02e9971ef5 Don't generate math macro 2019-05-10 15:27:59 -04:00
Mitchell Hanberg
c8eb8d48d4 Remove javascript macro
Javascript should be written like so

```
script """
console.log("hi");
"""
```
2019-05-10 15:13:57 -04:00
Mitchell Hanberg
15ac084aed text/1 docs 2019-05-10 15:13:04 -04:00
Mitchell Hanberg
06cbdd80ff form_for and text_input macros 2019-05-10 15:06:03 -04:00
Mitchell Hanberg
083ff0682e Don't create an svg macro 2019-05-10 15:04:40 -04:00
Mitchell Hanberg
f65b11362c Extra util functions to their own module 2019-05-08 22:26:19 -04:00
Mitchell Hanberg
db17577bb5 Document void and nonvoid element macros
The mix task will fetch the element documentation from MDN for each
element and include that in the documentation.

The main documentation for these macros will be in the moduledoc
2019-05-08 22:09:14 -04:00
Mitchell Hanberg
83b99d8a8a Document htm macro 2019-05-08 22:07:23 -04:00
Mitchell Hanberg
0ad883dfcb Add formatter config for locals_without_parens 2019-05-08 03:47:43 -04:00
Mitchell Hanberg
d81029c9be Enable passing content or attrs as variables
Before, the guards in the macro definitions would only work for content
or attributes that were passed in as literals.
2019-05-08 03:31:13 -04:00
Mitchell Hanberg
6c6bd8dd3b Phoenix template engine 2019-04-28 22:25:57 -04:00
Mitchell Hanberg
f62abac8c5 dont import HTML.link as it conflicts with the link tag 2019-04-28 20:50:24 -04:00
Mitchell Hanberg
72db6378c8 Fix runtime attrs for void elements 2019-04-28 20:08:26 -04:00
Mitchell Hanberg
d6ed780949 Allow passing content as first arg instead of block 2019-04-27 11:46:02 -04:00
Mitchell Hanberg
53ede43000 Compile attrs at runtime to enable interpolation 2019-04-27 11:45:20 -04:00
Mitchell Hanberg
48c5eacf25 Rename component to defcomponent 2019-04-27 11:44:08 -04:00
Mitchell Hanberg
e1c54ff09d Output htm output as raw
This should probably be moved to the phoenix engine once that is started
2019-04-27 11:24:17 -04:00
Mitchell Hanberg
cada669071 Allow Components to take props + other stuff
- Don't allow htm to take safe option
- Always escape calls to `text`
2019-04-26 16:59:43 -04:00
Mitchell Hanberg
8e1ae6cf11 Rename deftag to component 2019-04-15 18:37:13 -04:00
Mitchell Hanberg
3e3d17c1b9 add html nonvoid element 2019-04-15 18:36:36 -04:00