29. Why is this frank?
-build a lot of websites
-a framework isn’t always the best solution
30. Why is this frank?
-build a lot of websites
-a framework isn’t always the best solution
-no routing
31. Why is this frank?
-build a lot of websites
-a framework isn’t always the best solution
-no routing
-websites are html/js/css
32. Why is this frank?
-build a lot of websites
-a framework isn’t always the best solution
-no routing
-websites are html/js/css
-there are good solutions for creating html/js/css
44. frameworks are too much...
-when you don’t have a complicated app
-when you want to keep it simple
45. frameworks are too much...
-when you don’t have a complicated app
-when you want to keep it simple
-when you need to quickly prototype
46. frameworks are too much...
-when you don’t have a complicated app
-when you want to keep it simple
-when you need to quickly prototype
-when you don’t need a framework
48. so what do we usually do...
use a framework anyway
49. so what do we usually do...
use a framework anyway
well...
50. so what do we usually do...
use a framework anyway
well...
NO MORE!!!
51. frank is a non-framework
with some framework like
features
52. frank is a non-framework
with some framework like
features
-templating languages
53. frank is a non-framework
with some framework like
features
-templating languages
-named layout support
54. frank is a non-framework
with some framework like
features
-templating languages
-named layout support
-partials/includes
55. frank is a non-framework
with some framework like
features
-templating languages
-named layout support
-partials/includes
-custom helper methods
56. frank is a non-framework
with some framework like
features
-templating languages
-named layout support
-partials/includes
-custom helper methods
-lorem text helpers
57. frank is a non-framework
with some framework like
features
-templating languages
-named layout support
-partials/includes
-custom helper methods
-lorem text helpers
-lorem image helpers
69. Getting started
$ frank projectx
-----------------------
Frank:
- Creating 'projectx'
- Copying Frank template
Congratulations, 'projectx' is ready to go.
70. Getting started
$ frank projectx
-----------------------
Frank:
- Creating 'projectx'
- Copying Frank template
Congratulations, 'projectx' is ready to go.
$ ls projectx
71. Getting started
$ frank projectx
-----------------------
Frank:
- Creating 'projectx'
- Copying Frank template
Congratulations, 'projectx' is ready to go.
$ ls projectx
. .. dynamic/ helpers.rb settings.yml static/
73. dynamic folder
contains templates and layouts that will
dynamically be compiled to html/js/css
erb, haml, sass, less, builder, liquid,
mustache, markdown, textile, and
coffeescript
74. static folder
contains static assets that will be
rendered before the dynamic layer is hit
75. static folder
contains static assets that will be
rendered before the dynamic layer is hit
html, css, js, images, swf, files, etc
76. helpers.rb
your custom ruby helpers that are
available for use in dynamic templates
77. helpers.rb
your custom ruby helpers that are
available for use in dynamic templates
def this_helper(str)
“returns this string”
end
79. settings.yml
contains settings for rack, folder names,
and layouts
# Templates:
#
# 'layouts' is a list of layouts to use, where
# 'name' is the filename (without extension).
# You can also use multiple layouts, and limit
# their scopes like so:
# - name: blog_layout
# only: [blog]
# - name: normal
# not: [blog, ajax]