edge_framework 2.1.0 → 2.1.1

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTQ5MDVlZmU1M2FhODJhYTMwMzg5ZjE0ZmM4MzFlMGY3Y2Y4MDhmYQ==
4
+ ODI5ODlhZTk1ZjgxZTgyYzE3Y2RkZDZiM2U5MGQ1MmE5OTJlYTRlNw==
5
5
  data.tar.gz: !binary |-
6
- Yzg4M2M2MTJmOTFjMWJjOTlkMjYxM2Y5NmQyYzllM2NmYmFiODQ2Mw==
6
+ Mjg1NDk5MTljYzRhZDZmMWI5OTNjNjZjMmYxN2RjMGJmZTRhZTE2OQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YzEyNTVlNDYzNTZmMTU3NjZlMjQzYTVkYmMxMDM0YWViNTc2NGRhOTRiMDVm
10
- ODYxMmIwYzhjNzg1ZmE4NTlhZjc3ZDk3ODYxODM0NDU2NDY4MWM0YjhkZTBj
11
- Y2JiMTkyMTllN2NlZGQzZjQ4MmYzMTdkM2NmMDk2MGZjMDYzY2Q=
9
+ YTk1ZGI5YThmZTA2MDk3OGRlY2MxNjgzODU1MGI2YTgyMDQ2YjdlNTk1NmIw
10
+ OTQ5MmY2YzZmMGNiMTE0YjgyNGQ4Yjk2Mzc4NzlhYWQwMzU4MWQ5OTc1OTgy
11
+ OGUwMGQ2N2NiMTVlMjQ1ZDM4NTEzYWNhZjA4YzllZDZhYTc3MDk=
12
12
  data.tar.gz: !binary |-
13
- NWJlNDBiMWYwMDEzZmQ1NGNiMzNhN2M3ZDY3NTQzZDk5YjAyYzY4ZDU4NzRj
14
- ODcxOGIwZTZmMzRlYjYyOGNkZTkyYjQ3MjE0ZDA2Y2E3YzgzYWQ3NDdhZGY3
15
- NjUzNjcxNDYwNjljNWUzNmY5N2Q1NjQ3YjYxZjk1OGY2MTJlZDA=
13
+ NDFiMmUyMmMwZjA3NGYzNjFiNzAwNDk2MTBhNDVmZjAzYWMwODQ2YmFmYWY5
14
+ NjliYmE0N2EyNTBlYzZmNjM5OGM4ZmM2NTgxOWQ2N2E2Y2M3YmNkY2Q3ZTk1
15
+ MzNmOTVmZTc0MzRkNTYwZDYwYmJhOTY2YjA0NmRlZmViMjZiMWQ=
data/README.md CHANGED
@@ -180,29 +180,37 @@ WORDPRESS
180
180
 
181
181
  ![Edge Wordpress](http://cdn.setyono.net/edge/wp-edge.jpg)
182
182
 
183
- Our WordPress template requires [Timber](http://upstatement.com/timber/). It is a template engine that separates PHP and HTML into their own file.
183
+ Our WordPress template requires [Timber](https://wordpress.org/plugins/timber-library/). It is a template engine that separates PHP and HTML into their own file, reducing the amount of "spaghetti" code.
184
184
 
185
- So, download and include [its plugin](https://wordpress.org/plugins/timber-library/) into your WordPress installation.
186
-
187
- Custom Post Type
185
+ CPT - Custom Post Type
188
186
  --------------------
189
187
 
190
188
  ![Wordpress Custom Type](http://cdn.setyono.net/edge/wp-post-type.jpg)
191
189
 
192
- add_post_type( $name, <$icon>, <$taxonomy> )
190
+ add_post_type( $name, <$args_array> )
193
191
 
194
- Inside `functions.php`, add these codes:
192
+ **Note**: The `$name` must be one-word, singular, and titleized case. Example:
195
193
 
196
- add_post_type("Product", "cart", "Brand");
197
- add_post_type("Event", "calendar");
194
+ add_post_type( "Product" );
195
+ add_post_type( "Event" );
198
196
 
199
- The icon name is taken from [melchoyce.github.io/dashicons/](http://melchoyce.github.io/dashicons/).
197
+ Optional arguments list:
200
198
 
201
- **Note**:
199
+ `icon` - Icon names are listed here [melchoyce.github.io/dashicons/](http://melchoyce.github.io/dashicons/). Exclude the "dashicons-".
200
+
201
+ `taxonomy` - The custom category term. The naming convention is the same as CPT's name.
202
+
203
+ `columns` - Array of columns shown in admin panel. Possible values are: `title`, `author`, `date`, `thumbnail`, and any custom field.
204
+
205
+ Example:
202
206
 
203
- - If you want pagination to work, the `$name` cannot be the same as any page's slug.
207
+ add_post_type( "Product" , array(
208
+ "icon" => "cart",
209
+ "taxonomy" => "Brand",
210
+ "columns" => array("thumbnail", "title^", "price^", "date")
211
+ ) );
204
212
 
205
- - All type's name and taxonomy's name must be **singular** and no special character except space.
213
+ Notice the `^` at the end of column's name? That indicates that the column is sortable.
206
214
 
207
215
  COMPASS
208
216
  =================
@@ -1,7 +1,7 @@
1
1
  /* --------------------
2
2
  - EDGE Framework
3
3
  - edge.thesyne.com
4
- - v2.1.0 (Gondar)
4
+ - v2.1.1 (Gondar)
5
5
  --------------------- */
6
6
 
7
7
  @import "edge/base";
@@ -8,7 +8,8 @@
8
8
  button,
9
9
  .button,
10
10
  input[type="submit"],
11
- input[type="reset"] {
11
+ input[type="reset"],
12
+ input[type="button"] {
12
13
  @content;
13
14
  }
14
15
 
@@ -66,9 +66,13 @@ code {
66
66
 
67
67
  white-space: pre;
68
68
  word-spacing: normal;
69
+
70
+ -moz-tab-size: 2;
71
+ tab-size: 2;
69
72
 
70
- @include css3(tab-size, 2, $webkit:false, $moz:true, $ms:false, $o:true);
71
- @include css3(hyphens, none, $webkit:true, $moz:true, $ms:true, $o:false);
73
+ -webkit-hyphens: none;
74
+ -moz-hyphens: none;
75
+ hyphens: none;
72
76
  }
73
77
 
74
78
  pre {
@@ -167,6 +167,7 @@ textarea {
167
167
  table {
168
168
  border-collapse: collapse;
169
169
  border-spacing: 0;
170
+ width: 100%;
170
171
  }
171
172
 
172
173
  /* Miscellaneous useful HTML classes */
@@ -1,4 +1,4 @@
1
1
  module Edge
2
- VERSION = "2.1.0"
2
+ VERSION = "2.1.1"
3
3
  CODENAME = "Gondar"
4
4
  end
@@ -1,82 +1,212 @@
1
1
  <?php
2
- /*
3
- Create Custom Post Type
4
- */
5
2
 
6
- function add_post_type($name, $icon = "admin-post", $tax_name = null) {
7
- $plural = Inflector::pluralize($name);
8
- $singular = $name;
9
-
10
- $labels = array(
11
- "name" => $plural,
12
- "singular_name" => $singular,
13
- "all_items" => "All " . $plural,
14
- "add_new_item" => "Add New " . $singular,
15
- "edit_item" => "Edit " . $singular,
16
- "new_item" => "New " . $singular,
17
- "view_item" => "View " . $singular,
18
- "search_items" => "Search " . $plural,
19
- "not_found" => "No " . strtolower($plural) . " found",
20
- "not_found_in_trash" => "No " . strtolower($plural) . " found in Trash",
21
- "parent_item_colon" => "Parent " . $singular . ":",
22
- );
23
-
24
- $post_args = array(
25
- "public" => true,
26
- "menu_icon" => "dashicons-".$icon,
27
- "labels" => $labels,
28
- "capability_type" => "post",
29
- "supports" => array(
30
- "title",
31
- "editor",
32
- "custom-fields",
33
- "revisions",
34
- "thumbnail",
35
- ),
36
- );
37
-
38
- // If taxonomy is given
39
- if($tax_name) {
40
- add_taxonomy($tax_name, $name);
3
+ function add_post_type($name, $args) {
4
+ $cpt = new CPT($name, $args);
5
+ $cpt->init();
6
+ }
7
+
8
+ // CUSTOM Post Type
9
+ class CPT {
10
+ private $name;
11
+ private $args;
12
+
13
+ public function __construct($name, $args) {
14
+ $this->name = $name;
15
+ $this->args = $args;
41
16
  }
42
17
 
43
- register_post_type(strtolower($name), $post_args);
44
- }
18
+ // Add the post type and all of it's perk based on the args
19
+ public function init() {
20
+ $post_args = $this->buildArgs($this->name, $this->args);
45
21
 
46
- /*
47
- Create Custom Taxonomy
48
- */
22
+ // If taxonomy is given
23
+ if($this->args["taxonomy"]) {
24
+ $this->add_taxonomy($this->args["taxonomy"], $this->name);
25
+ }
26
+
27
+ register_post_type(strtolower($this->name), $post_args);
28
+
29
+ // if column ordering is given
30
+ if($this->args["columns"]) {
31
+ $this->add_column($this->name, $this->args["columns"]);
32
+ }
33
+ }
34
+
35
+ // Build the necessary arguments for CPT
36
+ private function buildArgs($name, $args) {
37
+ $plural = Inflector::pluralize($name);
38
+ $singular = $name;
39
+
40
+ $labels = array(
41
+ "name" => $plural,
42
+ "singular_name" => $singular,
43
+ "all_items" => "All " . $plural,
44
+ "add_new_item" => "Add New " . $singular,
45
+ "edit_item" => "Edit " . $singular,
46
+ "new_item" => "New " . $singular,
47
+ "view_item" => "View " . $singular,
48
+ "search_items" => "Search " . $plural,
49
+ "not_found" => "No " . strtolower($plural) . " found",
50
+ "not_found_in_trash" => "No " . strtolower($plural) . " found in Trash",
51
+ "parent_item_colon" => "Parent " . $singular . ":",
52
+ );
53
+
54
+ // Build the post arguments
55
+ $post_args = array(
56
+ "public" => true,
57
+ "labels" => $labels,
58
+ "capability_type" => "post",
59
+ "supports" => array(
60
+ "title",
61
+ "editor",
62
+ "custom-fields",
63
+ "revisions",
64
+ "thumbnail",
65
+ ),
66
+ "rewrite" => array(
67
+ "with_front" => false
68
+ ),
69
+ );
70
+
71
+ if($args["icon"]) {
72
+ $post_args["menu_icon"] = "dashicons-".$args["icon"];
73
+ }
74
+
75
+ return $post_args;
76
+ }
77
+
78
+ // Create taxonomy and it's filter
79
+ private function add_taxonomy($tax_name, $post_type) {
80
+ $plural = Inflector::pluralize($tax_name);
81
+ $singular = $tax_name;
82
+
83
+ $labels = array(
84
+ "name" => $plural,
85
+ "singular_name" => $singular,
86
+ "all_items" => "All " . $plural,
87
+ "edit_item" => "Edit " . $singular,
88
+ "view_item" => "View " . $singular,
89
+ "update_item" => "Update " . $singular,
90
+ "add_new_item" => "Add New " . $singular,
91
+ "parent_item" => "Parent " . $singular,
92
+ "search_items" => "Search " . $plural,
93
+ "popular_items" => "Popular " . $plural,
94
+ "add_or_remove_items" => "Add or remove " . strtolower($plural),
95
+ "choose_from_most_used" => "Choose from the most used " . strtolower($plural),
96
+ "not_found" => "No " . strtolower($plural) . " found"
97
+ );
49
98
 
50
- function add_taxonomy($name, $post_type) {
51
- $plural = Inflector::pluralize($name);
52
- $singular = $name;
53
-
54
- $labels = array(
55
- "name" => $plural,
56
- "singular_name" => $singular,
57
- "all_items" => "All " . $plural,
58
- "edit_item" => "Edit " . $singular,
59
- "view_item" => "View " . $singular,
60
- "update_item" => "Update " . $singular,
61
- "add_new_item" => "Add New " . $singular,
62
- "parent_item" => "Parent " . $singular,
63
- "search_items" => "Search " . $plural,
64
- "popular_items" => "Popular " . $plural,
65
- "add_or_remove_items" => "Add or remove " . strtolower($plural),
66
- "choose_from_most_used" => "Choose from the most used " . strtolower($plural),
67
- "not_found" => "No " . strtolower($plural) . " found"
68
- );
69
-
70
- $tax_args = array(
71
- "labels" => $labels,
72
- "show_ui" => true,
73
- "query_var" => true,
74
- "show_admin_column" => false,
75
- "hierarchical" => true,
76
- );
77
- register_taxonomy(strtolower($name), strtolower($post_type), $tax_args);
78
-
79
- new CPT_Filter(array(strtolower($post_type) => array(strtolower($singular) ) ) );
99
+ $tax_args = array(
100
+ "labels" => $labels,
101
+ "show_ui" => true,
102
+ "query_var" => true,
103
+ "show_admin_column" => false,
104
+ "hierarchical" => true,
105
+ );
106
+ register_taxonomy(strtolower($tax_name), strtolower($post_type), $tax_args);
107
+
108
+ new CPT_Filter(array(strtolower($post_type) => array(strtolower($singular) ) ) );
109
+ }
110
+
111
+ // Add visible column in admin panel
112
+ private function add_column($name, $raw_columns) {
113
+ // create the WP filter name
114
+ $name_slug = strtolower($name);
115
+ $name_create = "manage_".$name_slug."_posts_columns"; // create column
116
+ $name_fill = "manage_".$name_slug."_posts_custom_column"; // fill column
117
+ $name_sortable = "manage_edit-".$name_slug."_sortable_columns"; // enable sorting
118
+
119
+ // cleanup and build the dataset
120
+ $columns = $this->clean_columns($raw_columns);
121
+ $sortable_columns = $this->get_sortable_columns($raw_columns);
122
+
123
+ // create the filter function
124
+ $filter_create = function($defaults) use ($columns) {
125
+ $cols = array();
126
+ foreach($columns as $c) {
127
+ $cols[$c] = ucwords( str_replace("_", " ", $c) );
128
+ }
129
+ $cols = array("cb" => $defaults["cb"]) + $cols;
130
+ return $cols;
131
+ };
132
+
133
+ $filter_fill = function($column_name, $post_id) {
134
+ switch($column_name) {
135
+ case "cb":
136
+ case "title":
137
+ case "author":
138
+ case "date":
139
+ // do nothing, those are automatically filled
140
+ break;
141
+ case "thumbnail":
142
+ $thumb = get_the_post_thumbnail($post_id, array(75, 75) );
143
+ echo $thumb;
144
+
145
+ // if custom field
146
+ default:
147
+ global $post;
148
+
149
+ $meta = get_post_meta($post_id, $column_name, true);
150
+ $terms = get_the_terms($post_id, $column_name);
151
+
152
+ // if the column is a custom field
153
+ if($meta) {
154
+ echo $meta;
155
+ }
156
+ // if the column is a term
157
+ elseif (!empty($terms) ) {
158
+ $out = array();
159
+
160
+ // loop through each term, linking to the 'edit posts' page for the specific term
161
+ foreach ($terms as $term) {
162
+ $out[] = sprintf("<a href='%s'>%s</a>",
163
+ esc_url( add_query_arg(
164
+ array("post_type" => $post->post_type, "type" => $term->slug), "edit.php")
165
+ ),
166
+ esc_html( sanitize_term_field(
167
+ "name", $term->name, $term->term_id, "type", "display")
168
+ )
169
+ );
170
+ }
171
+
172
+ // join the terms, separating with comma
173
+ echo join(", ", $out);
174
+ }
175
+ break;
176
+ }
177
+ };
178
+
179
+ $filter_sortable = function($defaults) use ($sortable_columns) {
180
+ foreach($sortable_columns as $sc) {
181
+ $defaults[$sc] = $sc;
182
+ }
183
+ return $defaults;
184
+ };
185
+
186
+ add_filter($name_create, $filter_create);
187
+ add_action($name_fill, $filter_fill, 10, 2);
188
+ add_filter($name_sortable, $filter_sortable);
189
+ }
190
+
191
+ // Cleanup the column args from annotation
192
+ private function clean_columns($raw) {
193
+ $columns = array_map(function($c) {
194
+ return trim($c, "^");
195
+ }, $raw);
196
+
197
+ return $columns;
198
+ }
199
+
200
+ // Look for sortable column, annotated with ^
201
+ private function get_sortable_columns($raw) {
202
+ $columns = array_map(function($c) {
203
+ if(strpos($c, "^") ) {
204
+ return trim($c, "^");
205
+ }
206
+ }, $raw);
207
+
208
+ return array_filter($columns);
209
+ }
80
210
  }
81
211
 
82
212
  /*
@@ -137,4 +267,4 @@ class CPT_Filter {
137
267
  $this->generate_taxonomy_options($tax_slug, $term->term_id, $level + 1, $selected);
138
268
  }
139
269
  }
140
- }//end class
270
+ }
@@ -19,7 +19,7 @@ class TimberEdge extends TimberSite {
19
19
  $context["menu"] = new TimberMenu();
20
20
  $context["site"] = $this;
21
21
 
22
- $context["home"] = home_url();
22
+ $context["home"] = home_url()."/";
23
23
  $context["root"] = get_template_directory_uri();
24
24
  $context["img"] = $context["root"]."/assets/img";
25
25
  $context["css"] = $context["root"]."/assets/css";
@@ -37,25 +37,27 @@ class TimberEdge extends TimberSite {
37
37
  new TimberEdge();
38
38
 
39
39
  /* REMOVE MENU ITEMS */
40
- function h_remove_menu() {
40
+ add_action("admin_menu", function() {
41
41
  $items = get_removed_list();
42
42
  global $menu;
43
43
  end($menu);
44
- while(prev($menu) ) {
45
- $item = explode(" ", $menu[key($menu)][0]);
46
- $item_first = $item[0] != NULL ? $item[0] : "";
47
- if(in_array($item_first, $items) ) {
48
- unset($menu[key($menu)]);
44
+
45
+ // var_dump($menu);
46
+ foreach($menu as $key => $m) {
47
+ if($m[0]) {
48
+ $i = explode(" <", $m[0]);
49
+
50
+ if(in_array($i[0], $items) ) {
51
+ unset($menu[$key]);
52
+ }
49
53
  }
50
54
  }
51
- }
52
- add_action("admin_menu", "h_remove_menu");
55
+ });
53
56
 
54
57
  /* REMOVE IMAGE RESIZER */
55
- function h_remove_resizer($sizes) {
58
+ add_filter("intermediate_image_sizes_advanced", function($sizes) {
56
59
  unset( $sizes["medium"]);
57
60
  unset( $sizes["large"]);
58
61
 
59
62
  return $sizes;
60
- }
61
- add_filter("intermediate_image_sizes_advanced", "h_remove_resizer");
63
+ });
@@ -9,8 +9,8 @@ add_theme_support("post-thumbnails");
9
9
  add_theme_support("menus");
10
10
 
11
11
  // CUSTOM POST TYPE
12
- // FORMAT : type-name, <icon>, <taxonomy-name>
13
- // EXAMPLE : add_post_type("Product", "cart", "Brand");
12
+ // FORMAT : add_post_type(name, <args>)
13
+ // check edge.thesyne.com/wordpress for detail
14
14
 
15
15
  // THUMBNAIL SIZE
16
16
  // FORMAT : add_image_size("thumbnail", <width>, <height>, <crop or not>);
@@ -1,7 +1,30 @@
1
1
  <!DOCTYPE html>
2
2
  <html {{ site.language_attributes }}>
3
3
 
4
- {% include "partials/_head.twig" %}
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+
8
+ <!-- WEBSITE DETAIL -->
9
+ <title>
10
+ {{ site.name }}
11
+ {% if wp_title %} | {{ wp_title }} {% endif %}
12
+ </title>
13
+ <meta name="description" content="{{ site.description }}">
14
+
15
+ <!-- FAVICON -->
16
+ <link rel="icon" href="{{ img }}/favicon.png">
17
+ <link rel="apple-touch-icon-precomposed" href="{{ img }}/favicon-big.png">
18
+
19
+ <!-- JAVASCRIPT that must load first -->
20
+ <script src="{{ js }}/vendor/custom.modernizr.js"></script>
21
+
22
+ <!-- STYLESHEET -->
23
+ <link rel="stylesheet" href="{{ css }}/framework.css">
24
+ <link rel="stylesheet" href="{{ css }}/app.css">
25
+
26
+ {{ wp_head }}
27
+ </head>
5
28
 
6
29
  <body class="{{ body_class }}">
7
30
 
@@ -10,7 +33,7 @@
10
33
  <!-- Main Navigation Menu -->
11
34
  <nav class="main-menu">
12
35
  {% for item in menu.get_items %}
13
- <div class="item">
36
+ <div class="item {% if item.get_children %} has-child {% endif %}">
14
37
 
15
38
  <a href="{{ item.get_link }}"
16
39
  {% if "current-menu-item" in item.classes %}
@@ -21,7 +44,7 @@
21
44
  </a>
22
45
 
23
46
  {% if item.get_children %}
24
- <div class="dropdown">
47
+ <div class="child-menu">
25
48
  {% for child in item.get_children %}
26
49
  <a href="{{ child.get_link }}">{{ child.title }}</a>
27
50
  {% endfor %}
@@ -48,7 +71,19 @@
48
71
  {{ site.name }} &copy; {{ "now" | date("Y") }}
49
72
  </footer>
50
73
 
51
- {% include "partials/_foot.twig" %}
74
+ <!-- JAVASCRIPT LIBRARY -->
75
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
76
+ <script>
77
+ // Fallback if Google's one doesn't load
78
+ if (!window.jQuery) {
79
+ document.write("<script src='{{ js }}/vendor/jquery.min.js'><\/script>");
80
+ }
81
+ </script>
82
+ <script src="{{ js }}/vendor/fastclick.min.js"></script>
83
+ <script src="{{ js }}/vendor/edge.js"></script>
84
+ <script src="{{ js }}/app.js"></script>
85
+
86
+ {{ wp_footer }}
52
87
 
53
88
  </body>
54
89
  </html>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: edge_framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henner Setyono
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-30 00:00:00.000000000 Z
11
+ date: 2015-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass
@@ -216,8 +216,6 @@ files:
216
216
  - template/wordpress/views/index.twig
217
217
  - template/wordpress/views/layout.twig
218
218
  - template/wordpress/views/page.twig
219
- - template/wordpress/views/partials/_foot.twig
220
- - template/wordpress/views/partials/_head.twig
221
219
  - template/wordpress/views/partials/_pagination.twig
222
220
  - template/wordpress/views/partials/_posts.twig
223
221
  - template/wordpress/views/search.twig
@@ -1,13 +0,0 @@
1
- <!-- JAVASCRIPT LIBRARY -->
2
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
3
- <script>
4
- // Fallback if Google's one doesn't load
5
- if (!window.jQuery) {
6
- document.write("<script src='{{ js }}/vendor/jquery.min.js'><\/script>");
7
- }
8
- </script>
9
- <script src="{{ js }}/vendor/fastclick.min.js"></script>
10
- <script src="{{ js }}/vendor/edge.js"></script>
11
- <script src="{{ js }}/app.js"></script>
12
-
13
- {{ wp_footer }}
@@ -1,24 +0,0 @@
1
- <head>
2
- <meta charset="UTF-8">
3
- <meta name="viewport" content="width=device-width, initial-scale=1">
4
-
5
- <!-- WEBSITE DETAIL -->
6
- <title>
7
- {{ site.name }}
8
- {% if wp_title %} | {{ wp_title }} {% endif %}
9
- </title>
10
- <meta name="description" content="{{ site.description }}">
11
-
12
- <!-- FAVICON -->
13
- <link rel="icon" href="{{ img }}/favicon.png">
14
- <link rel="apple-touch-icon-precomposed" href="{{ img }}/favicon-big.png">
15
-
16
- <!-- JAVASCRIPT that must load first -->
17
- <script src="{{ js }}/vendor/custom.modernizr.js"></script>
18
-
19
- <!-- STYLESHEET -->
20
- <link rel="stylesheet" href="{{ css }}/framework.css">
21
- <link rel="stylesheet" href="{{ css }}/app.css">
22
-
23
- {{ wp_head }}
24
- </head>