├── Rakefile
├── README.md
├── source
├── _footer.erb
├── assets
│ ├── img
│ │ ├── cate-01.jpg
│ │ ├── cate-02.jpg
│ │ ├── cate-03.jpg
│ │ ├── curate-01.jpg
│ │ ├── curate-02.jpg
│ │ ├── curate-03.jpg
│ │ ├── curate-04.jpg
│ │ ├── curate-web-01.jpg
│ │ ├── curate-web-02.jpg
│ │ ├── curate-web-03.jpg
│ │ ├── curate-web-04.jpg
│ │ ├── curate-web-05.jpg
│ │ ├── curate-web-06.jpg
│ │ ├── curate-web-07.jpg
│ │ ├── fraction-matter.jpg
│ │ ├── curate-idea-one-01.jpg
│ │ ├── curate-idea-one-02.jpg
│ │ ├── curate-idea-one-03.jpg
│ │ ├── curate-idea-one-04.jpg
│ │ ├── curate-idea-one-05.jpg
│ │ ├── curate-idea-one-06.jpg
│ │ ├── curate-idea-two-01.jpg
│ │ ├── curate-idea-two-02.jpg
│ │ ├── curate-idea-two-03.jpg
│ │ ├── curate-idea-two-04.jpg
│ │ ├── curate-idea-two-05.jpg
│ │ ├── curate-idea-two-06.jpg
│ │ ├── curate-idea-two-07.jpg
│ │ ├── curate-idea-two-08.jpg
│ │ ├── curate-idea-two-09.jpg
│ │ ├── curate-idea-two-10.jpg
│ │ ├── curate-idea-two-11.jpg
│ │ ├── curate-idea-three-01.jpg
│ │ ├── curate-idea-three-02.jpg
│ │ ├── curate-idea-three-04.jpg
│ │ ├── curate-idea-three-05.jpg
│ │ ├── curate-idea-three-06.jpg
│ │ ├── curate-idea-three-07.jpg
│ │ └── curate-idea-three-08.jpg
│ └── css
│ │ ├── cate.css
│ │ └── vendor
│ │ └── normalize.css
├── layouts
│ ├── article_layout.erb
│ ├── admin.erb
│ └── layout.erb
├── blog
│ └── my-article.html.markdown
├── _header.erb
├── admin
│ └── login.html.erb
├── about.html.haml
└── index.html.haml
├── Gemfile
├── cate.sublime-project
├── LICENSE
├── config.rb
├── Gemfile.lock
└── cate.sublime-workspace
/Rakefile:
--------------------------------------------------------------------------------
1 | require 'middleman-gh-pages'
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | cate.is-v1.2
2 | ============
3 |
4 | Personal Website
5 |
--------------------------------------------------------------------------------
/source/_footer.erb:
--------------------------------------------------------------------------------
1 |
2 | © 2014 Cate Meng Zhang. Made at Alamo Square in the fog.
3 |
--------------------------------------------------------------------------------
/source/assets/img/cate-01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/cate-01.jpg
--------------------------------------------------------------------------------
/source/assets/img/cate-02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/cate-02.jpg
--------------------------------------------------------------------------------
/source/assets/img/cate-03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/cate-03.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-01.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-02.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-03.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-04.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-04.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-web-01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-web-01.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-web-02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-web-02.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-web-03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-web-03.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-web-04.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-web-04.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-web-05.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-web-05.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-web-06.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-web-06.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-web-07.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-web-07.jpg
--------------------------------------------------------------------------------
/source/assets/img/fraction-matter.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/fraction-matter.jpg
--------------------------------------------------------------------------------
/source/layouts/article_layout.erb:
--------------------------------------------------------------------------------
1 | <% wrap_layout :layout do %>
2 |
3 | <%= yield %>
4 |
5 | <% end %>
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-one-01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-one-01.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-one-02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-one-02.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-one-03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-one-03.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-one-04.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-one-04.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-one-05.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-one-05.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-one-06.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-one-06.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-two-01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-two-01.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-two-02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-two-02.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-two-03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-two-03.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-two-04.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-two-04.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-two-05.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-two-05.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-two-06.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-two-06.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-two-07.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-two-07.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-two-08.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-two-08.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-two-09.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-two-09.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-two-10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-two-10.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-two-11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-two-11.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-three-01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-three-01.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-three-02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-three-02.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-three-04.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-three-04.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-three-05.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-three-05.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-three-06.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-three-06.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-three-07.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-three-07.jpg
--------------------------------------------------------------------------------
/source/assets/img/curate-idea-three-08.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/house/cate.is-v1.2/master/source/assets/img/curate-idea-three-08.jpg
--------------------------------------------------------------------------------
/source/blog/my-article.html.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: article_layout
3 | ---
4 |
5 | Hello. This is a test of blog layout, wrapped in article tag.
--------------------------------------------------------------------------------
/source/_header.erb:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/source/layouts/admin.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 | Admin Area
4 |
5 |
6 | <%= partial "header" %>
7 | <%= yield %>
8 | <%= partial "footer" %>
9 |
10 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | # If you have OpenSSL installed, we recommend updating
2 | # the following line to use "https"
3 | source 'http://rubygems.org'
4 |
5 | gem "middleman", "~>3.3.3"
6 | gem "middleman-livereload", "~> 3.1.0"
7 | gem 'middleman-gh-pages'
8 | gem 'redcarpet'
--------------------------------------------------------------------------------
/cate.sublime-project:
--------------------------------------------------------------------------------
1 | {
2 | "folders":
3 | [
4 | {
5 | "path": "/Users/zhangc/Projects/cate.is-v1.2"
6 | },
7 | {
8 | "path": "/Users/zhangc/Projects/jina.me"
9 | },
10 | {
11 | "path": "/Users/zhangc/Projects/martin"
12 | },
13 | {
14 | "path": "/Users/zhangc/Projects/smacss"
15 | }
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/source/admin/login.html.erb:
--------------------------------------------------------------------------------
1 | ---
2 | layout: "admin"
3 | my_list:
4 | - one
5 | - two
6 | - three
7 | ---
8 |
9 | List
10 |
11 | <% current_page.data.my_list.each do |f| %>
12 | <%= f %>
13 | <% end %>
14 |
15 |
16 | This is Admin Login
17 |
22 |
23 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Cate Meng Zhang
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/source/layouts/layout.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | <%= current_page.data.title || "The Middleman" %>
8 | <%= stylesheet_link_tag "vendor/normalize" %>
9 | <%= stylesheet_link_tag "cate" %>
10 | <%= stylesheet_link_tag '//cloud.typography.com/7664092/623264/css/fonts.css' %>
11 |
21 |
22 |
23 |
24 |
25 | <%= partial "header" %>
26 | <%= yield %>
27 | <%= partial "footer" %>
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/source/about.html.haml:
--------------------------------------------------------------------------------
1 | ---
2 | title: About — Cate Meng Zhang
3 | ---
4 |
5 |
6 | :markdown
7 |
8 |
9 |
10 |
11 |
12 |
13 | H ello there. I’m a designer living in San Francisco. I design iOS apps during the day, and learn to make nice websites during the night. This blog is the very first result.
14 |
15 | I love writing and designing with content. I’m also into photography. While I could no longer afford polaroids, I take my [Voigtländer Bessa](http://en.wikipedia.org/wiki/35mm_Bessa#The_Bessa_R2A_and_R3A_.28auto-exposure_rangefinder.29) with me whenever I travel.
16 |
17 | At the moment I work at a design agency making financial apps. Previously I worked at [Crush + Lovely](http://crushlovely.com/), [Miso TV](http://gomiso.com/), [Apple Inc.](http://apple.com) and [AppMesh](http://appme.sh). I’m helping [Jina](http://jina.me) on her [Art In My Coffee](https://dribbble.com/shots/1650280-Refactor-in-My-Coffee?list=users&offset=2), and getting into Haml and Sass.
18 |
19 | You can find me on [Twitter](http://twitter.com/cmzhang), [VSCO Grid](http://hellocate.vsco.co/grid/1), and [Dribbble](https://dribbble.com/hellocate). You could email me at post@hellocate.me.
20 |
--------------------------------------------------------------------------------
/config.rb:
--------------------------------------------------------------------------------
1 | ###
2 | # Compass
3 | ###
4 |
5 | # Change Compass configuration
6 | # compass_config do |config|
7 | # config.output_style = :compact
8 | # end
9 |
10 | ###
11 | # Page options, layouts, aliases and proxies
12 | ###
13 |
14 | # Per-page layout changes:
15 | #
16 | # With no layout
17 | # page "/path/to/file.html", :layout => false
18 | #
19 | # With alternative layout
20 | # page "/path/to/file.html", :layout => :otherlayout
21 | #
22 | # A path which all have the same layout
23 | # with_layout :admin do
24 | # page "/admin/*"
25 | # end
26 |
27 | # page "/admin/*", :layout => "admin"
28 | # page "/blog/*", :layout => :article_layout
29 |
30 |
31 |
32 | # Proxy pages (http://middlemanapp.com/basics/dynamic-pages/)
33 | # proxy "/this-page-has-no-template.html", "/template-file.html", :locals => {
34 | # :which_fake_page => "Rendering a fake page with a local variable" }
35 |
36 | ###
37 | # Helpers
38 | ###
39 |
40 | # Automatic image dimensions on image_tag helper
41 | # activate :automatic_image_sizes
42 |
43 | # Reload the browser automatically whenever files change
44 | # configure :development do
45 | # activate :livereload
46 | # end
47 |
48 | # Methods defined in the helpers block are available in templates
49 | # helpers do
50 | # def some_helper
51 | # "Helping"
52 | # end
53 | # end
54 |
55 | activate :directory_indexes
56 | activate :livereload
57 | activate :relative_assets
58 |
59 | set :css_dir, 'assets/css'
60 | set :js_dir, 'assets/js'
61 | set :images_dir, 'assets/img'
62 | set :relative_links, true
63 |
64 |
65 | set :markdown, :fenced_code_blocks => true,
66 | :autolink => true,
67 | :smartypants => true
68 |
69 | set :markdown_engine, :redcarpet
70 |
71 | # Build-specific configuration
72 | configure :build do
73 | # For example, change the Compass output style for deployment
74 | # activate :minify_css
75 |
76 | # Minify Javascript on build
77 | # activate :minify_javascript
78 |
79 | # Enable cache buster
80 | # activate :asset_hash
81 |
82 | # Use relative URLs
83 | activate :relative_assets
84 |
85 | # Or use a different image path
86 | # set :http_prefix, "/Content/images/"
87 | end
88 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: http://rubygems.org/
3 | specs:
4 | activesupport (4.1.5)
5 | i18n (~> 0.6, >= 0.6.9)
6 | json (~> 1.7, >= 1.7.7)
7 | minitest (~> 5.1)
8 | thread_safe (~> 0.1)
9 | tzinfo (~> 1.1)
10 | celluloid (0.15.2)
11 | timers (~> 1.1.0)
12 | chunky_png (1.3.1)
13 | coffee-script (2.3.0)
14 | coffee-script-source
15 | execjs
16 | coffee-script-source (1.8.0)
17 | compass (1.0.1)
18 | chunky_png (~> 1.2)
19 | compass-core (~> 1.0.1)
20 | compass-import-once (~> 1.0.5)
21 | rb-fsevent (>= 0.9.3)
22 | rb-inotify (>= 0.9)
23 | sass (>= 3.3.13, < 3.5)
24 | compass-core (1.0.1)
25 | multi_json (~> 1.0)
26 | sass (>= 3.3.0, < 3.5)
27 | compass-import-once (1.0.5)
28 | sass (>= 3.2, < 3.5)
29 | em-websocket (0.5.1)
30 | eventmachine (>= 0.12.9)
31 | http_parser.rb (~> 0.6.0)
32 | erubis (2.7.0)
33 | eventmachine (1.0.3)
34 | execjs (2.2.1)
35 | ffi (1.9.3)
36 | haml (4.0.5)
37 | tilt
38 | hike (1.2.3)
39 | hooks (0.4.0)
40 | uber (~> 0.0.4)
41 | http_parser.rb (0.6.0)
42 | i18n (0.6.11)
43 | json (1.8.1)
44 | kramdown (1.4.1)
45 | listen (2.7.9)
46 | celluloid (>= 0.15.2)
47 | rb-fsevent (>= 0.9.3)
48 | rb-inotify (>= 0.9)
49 | middleman (3.3.5)
50 | coffee-script (~> 2.2)
51 | compass (>= 0.12.4)
52 | compass-import-once (= 1.0.5)
53 | execjs (~> 2.0)
54 | haml (>= 4.0.5)
55 | kramdown (~> 1.2)
56 | middleman-core (= 3.3.5)
57 | middleman-sprockets (>= 3.1.2)
58 | sass (>= 3.2.17, < 4.0)
59 | uglifier (~> 2.5)
60 | middleman-core (3.3.5)
61 | activesupport (~> 4.1.0)
62 | bundler (~> 1.1)
63 | erubis
64 | hooks (~> 0.3)
65 | i18n (~> 0.6.9)
66 | listen (>= 2.7.9, < 3.0)
67 | padrino-helpers (~> 0.12.3)
68 | rack (>= 1.4.5, < 2.0)
69 | rack-test (~> 0.6.2)
70 | thor (>= 0.15.2, < 2.0)
71 | tilt (~> 1.4.1, < 2.0)
72 | middleman-gh-pages (0.0.3)
73 | rake (> 0.9.3)
74 | middleman-livereload (3.1.1)
75 | em-websocket (>= 0.2.0)
76 | middleman-core (>= 3.0.2)
77 | multi_json (~> 1.0)
78 | rack-livereload
79 | middleman-sprockets (3.3.9)
80 | middleman-core (~> 3.3)
81 | sprockets (~> 2.12.1)
82 | sprockets-helpers (~> 1.1.0)
83 | sprockets-sass (~> 1.2.0)
84 | minitest (5.4.1)
85 | multi_json (1.10.1)
86 | padrino-helpers (0.12.3)
87 | i18n (~> 0.6, >= 0.6.7)
88 | padrino-support (= 0.12.3)
89 | tilt (~> 1.4.1)
90 | padrino-support (0.12.3)
91 | activesupport (>= 3.1)
92 | rack (1.5.2)
93 | rack-livereload (0.3.15)
94 | rack
95 | rack-test (0.6.2)
96 | rack (>= 1.0)
97 | rake (10.3.2)
98 | rb-fsevent (0.9.4)
99 | rb-inotify (0.9.5)
100 | ffi (>= 0.5.0)
101 | redcarpet (3.1.2)
102 | sass (3.4.2)
103 | sprockets (2.12.1)
104 | hike (~> 1.2)
105 | multi_json (~> 1.0)
106 | rack (~> 1.0)
107 | tilt (~> 1.1, != 1.3.0)
108 | sprockets-helpers (1.1.0)
109 | sprockets (~> 2.0)
110 | sprockets-sass (1.2.0)
111 | sprockets (~> 2.0)
112 | tilt (~> 1.1)
113 | thor (0.19.1)
114 | thread_safe (0.3.4)
115 | tilt (1.4.1)
116 | timers (1.1.0)
117 | tzinfo (1.2.2)
118 | thread_safe (~> 0.1)
119 | uber (0.0.8)
120 | uglifier (2.5.3)
121 | execjs (>= 0.3.0)
122 | json (>= 1.8.0)
123 |
124 | PLATFORMS
125 | ruby
126 |
127 | DEPENDENCIES
128 | middleman (~> 3.3.3)
129 | middleman-gh-pages
130 | middleman-livereload (~> 3.1.0)
131 | redcarpet
132 |
--------------------------------------------------------------------------------
/source/assets/css/cate.css:
--------------------------------------------------------------------------------
1 | /*--------------------------------
2 | Typography
3 | --------------------------------*/
4 |
5 | body { font: 300 18px/1.63em 'Mercury SSm A', 'Mercury SSm B', Georgia, Serif; color: #504848; }
6 | a { text-decoration: none; color: inherit; border-bottom: 1px solid #ddd; }
7 | a:hover { border-bottom: 1px solid #222; }
8 | em { font-style: italic; }
9 | strong { font-weight: 700; }
10 | h1, h2, h3,
11 | h4, h5, h6 { font-family: 'Mercury Display A', 'Mercury Display B'; font-weight: 700; color: #222; margin: 1em 0;}
12 | h1 { font-size: 2em; line-height: 1.33em; color: #ee6557;}
13 | h2 { font-size: 1.25em; line-height: 1.5em; font-weight: 400; color: #504848;}
14 | h3 { font-size: 1.15em; }
15 | h4 { font-size: 1em; }
16 | h5 { font-size: 0.78em; }
17 | h6 { font-size: 0.67em; }
18 | h4, h5, h6 { text-transform: uppercase; }
19 | figcaption { font-family: 'Whitney A', 'Whitney B'; line-height: 1.5em; }
20 | .dropcap { width: 60px; height: 56px; text-align: center; font-size: 3.55em; margin-right: 0.1em;
21 | float: left; display:block; position: relative; top: 0.2em; color: #ee6557;}
22 |
23 |
24 |
25 | /*--------------------------------
26 | Layout
27 | --------------------------------*/
28 |
29 | body {
30 | background: #f8f8f5;
31 | margin: 0;
32 | }
33 |
34 | img {
35 | width: 100%;
36 | }
37 |
38 | #wrapper {
39 | max-width: 650px;
40 | margin: 0 auto;
41 | padding: 60px 9%;
42 | border-left: 1px solid #e9e9e9;
43 | border-right: 1px solid #e9e9e9;
44 | background: #fff;
45 | }
46 |
47 | header, article, footer, a {
48 | transition: 0.2s;
49 | }
50 |
51 | header {
52 | padding-bottom: 3em;
53 | border-bottom: 2px solid #f8f8f8;
54 | }
55 |
56 | header a {
57 | border-bottom: 1px solid #fff;
58 | }
59 |
60 | .byline {
61 | float: left;
62 | }
63 |
64 | .byline a {
65 | color: #888;
66 | text-align: center;
67 | font-size: 0.7em;
68 | text-transform: uppercase;
69 | letter-spacing: 0.1em;
70 | }
71 |
72 | .contacts {
73 | float: right;
74 | }
75 |
76 | .contacts a {
77 | margin: 0 1em;
78 | color: #888;
79 | text-align: center;
80 | font-size: 0.7em;
81 | text-transform: uppercase;
82 | letter-spacing: 0.1em;
83 | }
84 |
85 | article {
86 | padding: 5em 0 3em 0;
87 | border-bottom: 1px solid #e9e9e9;
88 | }
89 |
90 | figure {
91 | margin: 2em 0;
92 | }
93 |
94 | figure img {
95 | border: 1px solid #e9e9e9;
96 | }
97 |
98 | .no-border {
99 | border: none;
100 | }
101 |
102 | .left, .right {
103 | display: block;
104 | }
105 |
106 | .left {
107 | width: 48%;
108 | float: left;
109 | }
110 |
111 | .right {
112 | width: 48%;
113 | float: right;
114 | }
115 |
116 | .right + p, .left + h3, .right + h3, .right + img {
117 | clear: both;
118 | }
119 |
120 | .float {
121 | float: left;
122 | width: 30%;
123 | margin: 1.5em 2em 0 0;
124 | }
125 |
126 |
127 | figcaption {
128 | font-family:'Whitney A', 'Whitney B';
129 | padding-top: 0.5em;
130 | }
131 |
132 | hr {
133 | clear: both;
134 | border: 0px;
135 | height: 1px;
136 | diplay: block;
137 | width: 33%;
138 | background-color: rgb(232, 226, 232);
139 | margin: 3em 0px 2em 0;
140 | }
141 |
142 | footer {
143 | clear: both;
144 | padding-top: 3em;
145 | text-align: center;
146 | font-size: 0.6em;
147 | text-transform: uppercase;
148 | letter-spacing: 0.1em;
149 | }
150 |
151 |
152 | @media screen and (max-width: 650px) {
153 | body { font-size: 16px; background-color: #fff;}
154 | #wrapper { margin: 0; padding: 0;}
155 | .byline, .contacts { float: none; text-align: center; }
156 | .byline a { font-size: 0.8em;}
157 | .contacts a:first-child { margin-left: 0;}
158 | header { padding: 2em; border: 0;}
159 | article { border: none; }
160 | article, footer { padding: 2em; }
161 | iframe { width: 100%; height: 100%; }
162 | .left, .right { width: 100%; float: none; }
163 | .float { float: none; width: 100%; height: 100%; }
164 | }
165 |
166 |
167 |
168 |
169 |
170 |
--------------------------------------------------------------------------------
/source/assets/css/vendor/normalize.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v2.0.1 | MIT License | git.io/normalize */
2 |
3 | /* ==========================================================================
4 | HTML5 display definitions
5 | ========================================================================== */
6 |
7 | /*
8 | * Corrects `block` display not defined in IE 8/9.
9 | */
10 |
11 | article,
12 | aside,
13 | details,
14 | figcaption,
15 | figure,
16 | footer,
17 | header,
18 | hgroup,
19 | nav,
20 | section,
21 | summary {
22 | display: block;
23 | }
24 |
25 | /*
26 | * Corrects `inline-block` display not defined in IE 8/9.
27 | */
28 |
29 | audio,
30 | canvas,
31 | video {
32 | display: inline-block;
33 | }
34 |
35 | /*
36 | * Prevents modern browsers from displaying `audio` without controls.
37 | * Remove excess height in iOS 5 devices.
38 | */
39 |
40 | audio:not([controls]) {
41 | display: none;
42 | height: 0;
43 | }
44 |
45 | /*
46 | * Addresses styling for `hidden` attribute not present in IE 8/9.
47 | */
48 |
49 | [hidden] {
50 | display: none;
51 | }
52 |
53 | /* ==========================================================================
54 | Base
55 | ========================================================================== */
56 |
57 | /*
58 | * 1. Sets default font family to sans-serif.
59 | * 2. Prevents iOS text size adjust after orientation change, without disabling
60 | * user zoom.
61 | */
62 |
63 | html {
64 | font-family: sans-serif; /* 1 */
65 | -webkit-text-size-adjust: 100%; /* 2 */
66 | -ms-text-size-adjust: 100%; /* 2 */
67 | }
68 |
69 | /*
70 | * Removes default margin.
71 | */
72 |
73 | body {
74 | margin: 0;
75 | }
76 |
77 | /* ==========================================================================
78 | Links
79 | ========================================================================== */
80 |
81 | /*
82 | * Addresses `outline` inconsistency between Chrome and other browsers.
83 | */
84 |
85 | a:focus {
86 | outline: thin dotted;
87 | }
88 |
89 | /*
90 | * Improves readability when focused and also mouse hovered in all browsers.
91 | */
92 |
93 | a:active,
94 | a:hover {
95 | outline: 0;
96 | }
97 |
98 | /* ==========================================================================
99 | Typography
100 | ========================================================================== */
101 |
102 | /*
103 | * Addresses `h1` font sizes within `section` and `article` in Firefox 4+,
104 | * Safari 5, and Chrome.
105 | */
106 |
107 | h1 {
108 | font-size: 2em;
109 | }
110 |
111 | /*
112 | * Addresses styling not present in IE 8/9, Safari 5, and Chrome.
113 | */
114 |
115 | abbr[title] {
116 | border-bottom: 1px dotted;
117 | }
118 |
119 | /*
120 | * Addresses style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
121 | */
122 |
123 | b,
124 | strong {
125 | font-weight: bold;
126 | }
127 |
128 | /*
129 | * Addresses styling not present in Safari 5 and Chrome.
130 | */
131 |
132 | dfn {
133 | font-style: italic;
134 | }
135 |
136 | /*
137 | * Addresses styling not present in IE 8/9.
138 | */
139 |
140 | mark {
141 | background: #ff0;
142 | color: #000;
143 | }
144 |
145 |
146 | /*
147 | * Corrects font family set oddly in Safari 5 and Chrome.
148 | */
149 |
150 | code,
151 | kbd,
152 | pre,
153 | samp {
154 | font-family: monospace, serif;
155 | font-size: 1em;
156 | }
157 |
158 | /*
159 | * Improves readability of pre-formatted text in all browsers.
160 | */
161 |
162 | pre {
163 | white-space: pre;
164 | white-space: pre-wrap;
165 | word-wrap: break-word;
166 | }
167 |
168 | /*
169 | * Sets consistent quote types.
170 | */
171 |
172 | q {
173 | quotes: "\201C" "\201D" "\2018" "\2019";
174 | }
175 |
176 | /*
177 | * Addresses inconsistent and variable font size in all browsers.
178 | */
179 |
180 | small {
181 | font-size: 80%;
182 | }
183 |
184 | /*
185 | * Prevents `sub` and `sup` affecting `line-height` in all browsers.
186 | */
187 |
188 | sub,
189 | sup {
190 | font-size: 75%;
191 | line-height: 0;
192 | position: relative;
193 | vertical-align: baseline;
194 | }
195 |
196 | sup {
197 | top: -0.5em;
198 | }
199 |
200 | sub {
201 | bottom: -0.25em;
202 | }
203 |
204 | /* ==========================================================================
205 | Embedded content
206 | ========================================================================== */
207 |
208 | /*
209 | * Removes border when inside `a` element in IE 8/9.
210 | */
211 |
212 | img {
213 | border: 0;
214 | }
215 |
216 | /*
217 | * Corrects overflow displayed oddly in IE 9.
218 | */
219 |
220 | svg:not(:root) {
221 | overflow: hidden;
222 | }
223 |
224 | /* ==========================================================================
225 | Figures
226 | ========================================================================== */
227 |
228 | /*
229 | * Addresses margin not present in IE 8/9 and Safari 5.
230 | */
231 |
232 | figure {
233 | margin: 0;
234 | }
235 |
236 | /* ==========================================================================
237 | Forms
238 | ========================================================================== */
239 |
240 | /*
241 | * Define consistent border, margin, and padding.
242 | */
243 |
244 | fieldset {
245 | border: 1px solid #c0c0c0;
246 | margin: 0 2px;
247 | padding: 0.35em 0.625em 0.75em;
248 | }
249 |
250 | /*
251 | * 1. Corrects color not being inherited in IE 8/9.
252 | * 2. Remove padding so people aren't caught out if they zero out fieldsets.
253 | */
254 |
255 | legend {
256 | border: 0; /* 1 */
257 | padding: 0; /* 2 */
258 | }
259 |
260 | /*
261 | * 1. Corrects font family not being inherited in all browsers.
262 | * 2. Corrects font size not being inherited in all browsers.
263 | * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
264 | */
265 |
266 | button,
267 | input,
268 | select,
269 | textarea {
270 | font-family: inherit; /* 1 */
271 | font-size: 100%; /* 2 */
272 | margin: 0; /* 3 */
273 | }
274 |
275 | /*
276 | * Addresses Firefox 4+ setting `line-height` on `input` using `!important` in
277 | * the UA stylesheet.
278 | */
279 |
280 | button,
281 | input {
282 | line-height: normal;
283 | }
284 |
285 | /*
286 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
287 | * and `video` controls.
288 | * 2. Corrects inability to style clickable `input` types in iOS.
289 | * 3. Improves usability and consistency of cursor style between image-type
290 | * `input` and others.
291 | */
292 |
293 | button,
294 | html input[type="button"], /* 1 */
295 | input[type="reset"],
296 | input[type="submit"] {
297 | -webkit-appearance: button; /* 2 */
298 | cursor: pointer; /* 3 */
299 | }
300 |
301 | /*
302 | * Re-set default cursor for disabled elements.
303 | */
304 |
305 | button[disabled],
306 | input[disabled] {
307 | cursor: default;
308 | }
309 |
310 | /*
311 | * 1. Addresses box sizing set to `content-box` in IE 8/9.
312 | * 2. Removes excess padding in IE 8/9.
313 | */
314 |
315 | input[type="checkbox"],
316 | input[type="radio"] {
317 | box-sizing: border-box; /* 1 */
318 | padding: 0; /* 2 */
319 | }
320 |
321 | /*
322 | * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
323 | * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
324 | * (include `-moz` to future-proof).
325 | */
326 |
327 | input[type="search"] {
328 | -webkit-appearance: textfield; /* 1 */
329 | -moz-box-sizing: content-box;
330 | -webkit-box-sizing: content-box; /* 2 */
331 | box-sizing: content-box;
332 | }
333 |
334 | /*
335 | * Removes inner padding and search cancel button in Safari 5 and Chrome
336 | * on OS X.
337 | */
338 |
339 | input[type="search"]::-webkit-search-cancel-button,
340 | input[type="search"]::-webkit-search-decoration {
341 | -webkit-appearance: none;
342 | }
343 |
344 | /*
345 | * Removes inner padding and border in Firefox 4+.
346 | */
347 |
348 | button::-moz-focus-inner,
349 | input::-moz-focus-inner {
350 | border: 0;
351 | padding: 0;
352 | }
353 |
354 | /*
355 | * 1. Removes default vertical scrollbar in IE 8/9.
356 | * 2. Improves readability and alignment in all browsers.
357 | */
358 |
359 | textarea {
360 | overflow: auto; /* 1 */
361 | vertical-align: top; /* 2 */
362 | }
363 |
364 | /* ==========================================================================
365 | Tables
366 | ========================================================================== */
367 |
368 | /*
369 | * Remove most spacing between table cells.
370 | */
371 |
372 | table {
373 | border-collapse: collapse;
374 | border-spacing: 0;
375 | }
376 |
--------------------------------------------------------------------------------
/cate.sublime-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "auto_complete":
3 | {
4 | "selected_items":
5 | [
6 | [
7 | "font",
8 | "font-weight"
9 | ],
10 | [
11 | "text",
12 | "text-align"
13 | ],
14 | [
15 | "padding",
16 | "padding-left"
17 | ],
18 | [
19 | "su",
20 | "super"
21 | ],
22 | [
23 | "fot",
24 | "font-size"
25 | ],
26 | [
27 | "margin",
28 | "margin-top"
29 | ],
30 | [
31 | "list",
32 | "list-style-type"
33 | ],
34 | [
35 | "margin-",
36 | "margin-left"
37 | ],
38 | [
39 | "colu",
40 | "column_left"
41 | ],
42 | [
43 | "mar",
44 | "margin-left"
45 | ],
46 | [
47 | "ali",
48 | "vertical-align"
49 | ],
50 | [
51 | "border",
52 | "border-bottom"
53 | ],
54 | [
55 | "fon",
56 | "font-size"
57 | ],
58 | [
59 | "backgru",
60 | "background-color"
61 | ],
62 | [
63 | "background",
64 | "background-color"
65 | ]
66 | ]
67 | },
68 | "buffers":
69 | [
70 | {
71 | "file": "source/layouts/layout.erb",
72 | "settings":
73 | {
74 | "buffer_size": 1056,
75 | "line_ending": "Unix"
76 | }
77 | }
78 | ],
79 | "build_system": "",
80 | "command_palette":
81 | {
82 | "height": 400.0,
83 | "selected_items":
84 | [
85 | [
86 | "package",
87 | "Preferences: Browse Packages"
88 | ]
89 | ],
90 | "width": 475.0
91 | },
92 | "console":
93 | {
94 | "height": 0.0
95 | },
96 | "distraction_free":
97 | {
98 | "menu_visible": true,
99 | "show_minimap": false,
100 | "show_open_files": false,
101 | "show_tabs": false,
102 | "side_bar_visible": false,
103 | "status_bar_visible": false
104 | },
105 | "file_history":
106 | [
107 | "/Users/zhangc/Projects/cate.is-v1.2/source/partials/_footer.erb",
108 | "/Users/zhangc/Projects/cate.is-v1.2/source/partials/_header.erb",
109 | "/Users/zhangc/Projects/jina.me/source/layouts/layout.haml",
110 | "/Users/zhangc/Projects/cate.is-v1.2/source/assets/css/vendor/normalize.css",
111 | "/Users/zhangc/Projects/cate.is-v1.2/config.rb",
112 | "/Users/zhangc/Projects/jina.me/Gemfile",
113 | "/Users/zhangc/Projects/cate.is-v1.2/Gemfile",
114 | "/Users/zhangc/Projects/cate.is-v1.2/source/CNAME",
115 | "/Users/zhangc/Projects/cate.is-v1.2/README.md",
116 | "/Users/zhangc/Projects/cate.is-v1.2/.gitignore",
117 | "/Users/zhangc/Projects/cate.is-v1.2/LICENSE",
118 | "/Users/zhangc/Projects/jina.me/.gitignore",
119 | "/Users/zhangc/Projects/cate.is-v1.1/source/assets/css/cate.css",
120 | "/Users/zhangc/Projects/cate.is-v1.1/source/index.html.haml",
121 | "/Users/zhangc/Projects/cate.is-v1.1/source/about.html.haml",
122 | "/Users/zhangc/Projects/cate.is-v1.1/build/index.html",
123 | "/Users/zhangc/Projects/cate.is-v1.1/source/layouts/layout.erb",
124 | "/Users/zhangc/Projects/cate.is-v1.1/source/partials/header.html.erb",
125 | "/Users/zhangc/Projects/cate.is-v1.1/Rakefile",
126 | "/Users/zhangc/Projects/cate.is/source/blog/2014-08-17-curate-it-explorations.html.markdown",
127 | "/Users/zhangc/Projects/cate.is/source/partials/footer.html.erb",
128 | "/Users/zhangc/Projects/cate.is/source/blog/2014-08-14-typography.html.markdown",
129 | "/Users/zhangc/Projects/cate.is/source/blog/2014-08-14-curate-it.html.markdown",
130 | "/Users/zhangc/Projects/cate.is/source/blog/2014-08-16-editorial.html.markdown",
131 | "/Users/zhangc/Projects/cate.is/config.rb",
132 | "/Users/zhangc/Projects/cate.is/source/index.html.haml",
133 | "/Users/zhangc/Projects/cate.is/source/blog/draft-to-the-north.html.markdown",
134 | "/Users/zhangc/Projects/cate.is/source/blog/2014-08-14-write-better.html.markdown",
135 | "/Users/zhangc/Projects/cate.is/source/assets/css/vendor/normalize.css",
136 | "/Users/zhangc/Projects/cate.is/source/assets/css/cate.scss",
137 | "/Users/zhangc/Projects/cate.is/source/blog/2014-08-19-printed.html.markdown",
138 | "/Users/zhangc/Projects/martin/index.html",
139 | "/Users/zhangc/Library/Application Support/Sublime Text 2/Packages/User/Preferences.sublime-settings",
140 | "/Users/zhangc/Library/Application Support/Sublime Text 2/Packages/User/Default (OSX).sublime-keymap",
141 | "/Users/zhangc/Projects/cate.is/source/partials/nav.html.erb",
142 | "/Users/zhangc/Projects/cate.is/source/blog/draft-resources.html.markdown",
143 | "/Users/zhangc/Projects/cate.is/source/blog/2014-07-24-to-the-north.html.markdown",
144 | "/Users/zhangc/Projects/cate.is/source/layout.erb",
145 | "/Users/zhangc/Projects/cate.is/source/tag.html.erb",
146 | "/Users/zhangc/Projects/jina.me/source/speaking.html.haml",
147 | "/Users/zhangc/Projects/cate.is/source/typography.html.erb",
148 | "/Users/zhangc/Projects/cate.is/source/write-better.html.erb",
149 | "/Users/zhangc/Projects/cate.is/source/curate-it.html.erb",
150 | "/Users/zhangc/Projects/cate.is/source/index.html.erb",
151 | "/Users/zhangc/Projects/cate.is/source/printed-magazines.html",
152 | "/Users/zhangc/Projects/cate.is/source/styleguide.html.erb",
153 | "/Users/zhangc/Projects/cate.is/source/partials/about.html.erb",
154 | "/Users/zhangc/Projects/cate.is/source/partials/header.html.erb",
155 | "/Users/zhangc/Projects/Framer/test.framer/framer/framer.js",
156 | "/Users/zhangc/Projects/cate.is/source/assets/css/vendor/social-icon-font.css",
157 | "/Users/zhangc/Projects/cate.is/source/projects.html.erb",
158 | "/Users/zhangc/Projects/cate.is/source/blog/2014-08-04-test.html.markdown",
159 | "/Users/zhangc/Projects/cate.is/source/blog.html.erb",
160 | "/Users/zhangc/Projects/cate.is/source/blog/2014-07-28-test.html.markdown",
161 | "/Users/zhangc/Projects/cate.is/source/about.html.erb",
162 | "/Users/zhangc/Projects/cate.is/data/books.yml",
163 | "/Users/zhangc/Projects/cate.is/source/feed.xml.builder",
164 | "/Users/zhangc/Projects/cate.is/source/assets/css/partials/_base.scss",
165 | "/Users/zhangc/Projects/cate.is/source/assets/css/all.scss",
166 | "/Users/zhangc/cate.is/source/assets /css/cate.scss",
167 | "/Users/zhangc/cate.is/source/posts/2014-07-24-to-the-north.html.markdown",
168 | "/Users/zhangc/cate.is/build/index.html",
169 | "/Users/zhangc/Projects/cate.is/README.md",
170 | "/Users/zhangc/Projects/cate.is/Gemfile",
171 | "/Users/zhangc/Projects/cate.is/Rakefile",
172 | "/Users/zhangc/Projects/cate.is/source/2014-07-24-to-the-north.html.markdown",
173 | "/Users/zhangc/Projects/cate.is/source/layouts/article_layout.erb",
174 | "/Users/zhangc/Dropbox/Projects/Cate.is/middleman-blog/Gemfile",
175 | "/Users/zhangc/Dropbox/Projects/Cate.is/middleman-blog/config.rb",
176 | "/Users/zhangc/Dropbox/Projects/Cate.is/middleman-blog/Gemfile.lock",
177 | "/Users/zhangc/Dropbox/Projects/Cate.is/cate.is - dev/templates/base.html",
178 | "/Users/zhangc/Dropbox/Projects/Cate.is/cate.is - dev/pages/index.html",
179 | "/Users/zhangc/Dropbox/Projects/Cate.is/cate.is - dev/static/css/style.css",
180 | "/Users/zhangc/Dropbox/Projects/cate.is/cate.is - dev/templates/base.html",
181 | "/Users/zhangc/Dropbox/Projects/cate.is/blog.cate.is/pages/posts/norway_draft.html",
182 | "/Users/zhangc/Dropbox/Projects/cate.is/blog.cate.is/pages/posts/oslo.html",
183 | "/Users/zhangc/Dropbox/Projects/cate.is/blog.cate.is/pages/posts/norway.html",
184 | "/Users/zhangc/Dropbox/Projects/cate.is/cate.is - dev/static/css/style.css",
185 | "/Users/zhangc/Dropbox/Projects/cate.is/cate.is - dev/pages/index.html",
186 | "/Users/zhangc/Dropbox/Projects/cate.is/blog.cate.is/pages/posts/start.html",
187 | "/Users/zhangc/Dropbox/Projects/cate.is/blog.cate.is/pages/posts/back-to-basics.html",
188 | "/Users/zhangc/Dropbox/Projects/cate.is/blog.cate.is/pages/posts/my-camera-experience.html",
189 | "/Users/zhangc/Desktop/01 my camera expereince.md",
190 | "/Users/zhangc/Dropbox/Projects/cate.is/blog.cate.is/pages/posts/intro.html",
191 | "/Users/zhangc/Dropbox/Projects/cate.is/blog.cate.is/pages/posts/apartment-improvement",
192 | "/Users/zhangc/Dropbox/Projects/cate.is/blog.cate.is/pages/posts/rangefinder.html"
193 | ],
194 | "find":
195 | {
196 | "height": 38.0
197 | },
198 | "find_in_files":
199 | {
200 | "height": 0.0,
201 | "where_history":
202 | [
203 | ]
204 | },
205 | "find_state":
206 | {
207 | "case_sensitive": false,
208 | "find_history":
209 | [
210 | "IHere",
211 | "about",
212 | "Light",
213 | "number"
214 | ],
215 | "highlight": true,
216 | "in_selection": false,
217 | "preserve_case": false,
218 | "regex": false,
219 | "replace_history":
220 | [
221 | ],
222 | "reverse": false,
223 | "show_context": true,
224 | "use_buffer2": true,
225 | "whole_word": false,
226 | "wrap": true
227 | },
228 | "groups":
229 | [
230 | {
231 | "selected": 0,
232 | "sheets":
233 | [
234 | {
235 | "buffer": 0,
236 | "file": "source/layouts/layout.erb",
237 | "settings":
238 | {
239 | "buffer_size": 1056,
240 | "regions":
241 | {
242 | },
243 | "selection":
244 | [
245 | [
246 | 947,
247 | 947
248 | ]
249 | ],
250 | "settings":
251 | {
252 | "syntax": "Packages/Rails/HTML (Rails).tmLanguage",
253 | "tab_size": 2,
254 | "translate_tabs_to_spaces": true
255 | },
256 | "translation.x": 0.0,
257 | "translation.y": 0.0,
258 | "zoom_level": 1.0
259 | },
260 | "type": "text"
261 | }
262 | ]
263 | }
264 | ],
265 | "incremental_find":
266 | {
267 | "height": 0.0
268 | },
269 | "input":
270 | {
271 | "height": 40.0
272 | },
273 | "layout":
274 | {
275 | "cells":
276 | [
277 | [
278 | 0,
279 | 0,
280 | 1,
281 | 1
282 | ]
283 | ],
284 | "cols":
285 | [
286 | 0.0,
287 | 1.0
288 | ],
289 | "rows":
290 | [
291 | 0.0,
292 | 1.0
293 | ]
294 | },
295 | "menu_visible": true,
296 | "replace":
297 | {
298 | "height": 0.0
299 | },
300 | "save_all_on_build": true,
301 | "select_file":
302 | {
303 | "height": 0.0,
304 | "selected_items":
305 | [
306 | ],
307 | "width": 0.0
308 | },
309 | "select_project":
310 | {
311 | "height": 500.0,
312 | "selected_items":
313 | [
314 | [
315 | "",
316 | "/Users/zhangc/Projects/cate.is-v1.2/cate.sublime-project"
317 | ]
318 | ],
319 | "width": 380.0
320 | },
321 | "show_minimap": true,
322 | "show_open_files": false,
323 | "show_tabs": true,
324 | "side_bar_visible": true,
325 | "side_bar_width": 375.0,
326 | "status_bar_visible": true
327 | }
328 |
--------------------------------------------------------------------------------
/source/index.html.haml:
--------------------------------------------------------------------------------
1 | ---
2 | title: Blog — Cate Meng Zhang
3 | ---
4 |
5 |
6 | :markdown
7 | # A thought on Static Mockups
8 | The other day as I was going through my old computer, I found one of the many mockups I did for a project. More than three years has passed, the design still holds up well. I stared at the nice typography for a minute and thought, how come I didn’t ship it?
9 |
10 |
11 |
12 |
13 | One of the many concepts I had for Curate.it, my thesis project for school. Photo credit to from top down: Mark Peckmezian , Silas Dominey , Glen Erler , and Walker Evans
14 |
15 |
16 |
17 | I looked through folders of discarded static mockups. I was too busy worrying about my work not being good enough. Remember the [Imposter Syndrome article](https://medium.com/@aliciatweet/overcoming-impostor-syndrome-bdae04e46ec5) you read some time ago? Exactly that, or very similar.
18 |
19 | I kept on starting from scratch over and over again. Each time I couldn’t make up my mind. I was afraid to make the wrong decison. “You think too much”, as my hair dresser always told me in our therapy a.k.a hair cutting session. I wanted everything to be perfect the first time around.
20 |
21 | Start small. Do it right away when you think of an idea, when you are still excited about it. Don’t take too long. First time you make something, there will be flaws. Prioritize. Iterate. Be disciplined. Get yourself into a momentum.
22 |
23 | More importantly, have fun with whatever you do. Eventually you will ship the project you are proud of.
24 |
25 |
26 |
27 |
28 | :markdown
29 | # Curate.it
30 |
31 | I made Curate.it between late 2011 to early 2012. It was one of my school projects. The concept was simple — an iPad photography magazine where people can easily browse and bookmark the content they like.
32 |
33 | Photographers would sign up and submit their projects. A curator would determine which ones to publish. Both the photographer and the curator would use the website to achieve those goals.
34 |
35 | ## The iPad App
36 |
37 | For the iPad app, I selected content from photographers I know of and other resources, designed the interaction, UI and the visual style.
38 |
39 |
40 |
41 | Sign up or login, you get to explore projects, to be able to follow photographers and favorite content.
42 |
43 |
44 |
45 |
46 | Layout of the featured project titled Virtuoso of Visual Creation . The overview screen (right) shows all pages contained in this project, as thumbnail view. Left screen shows a full page view.
47 |
48 |
49 |
50 |
51 | Actions you can take with each photograph: to favorite, share to friends, follow the photographer, and check out the photographer’s other avaialble projects.
52 |
53 |
54 |
55 |
56 | The list of photographers you follow. Everytime a new project is published from someone you follow, you get a notification. Account settings on the right screen: you can set your own home page, updated your profile and change password etc.
57 |
58 |
59 |
60 |
61 |
62 | Here is a video demo. The later half on project submission wasn't well thought out. So I expanded it into a website, shown below. Video credit goes to Oscar Beckmann .
63 |
64 |
65 |
66 | ## The Website
67 |
68 | If you have watched the video above, you would notice the part that allow photographers to submit their work was poorly executed. The submitting a project is too troublesome to do on an iPad. Wouldn’t you prefer to do it on your desktop? That way you can take your time to fill out the forms and compile the images.
69 |
70 | So I took the submission process out of the iPad app and expanded into a companign website. I also added the UI to allow curator to choose and publish. Previously, I was thinking just to have all submission emailed to the curator.
71 |
72 |
73 |
74 |
75 | On the homepage, featured app screen has an updated UI. Previously my thought was the curator can publish any submission at any time. For this update, I introduced the concept of being a quaterly magazine. Therefore you see the navigation "Summer Issue" and "Fall Issue". The user no longer needs to sign up for an account to view the content. The homepage is where photographer or curator log in.
76 |
77 |
78 |
79 |
80 |
81 | Photographer’s submission form. The photographer can choose a predefined category for her work, and add tags. It helps the curator to navigate through a large quantity of submissions.
82 |
83 |
84 |
85 |
86 | Photographer previews layout. The website only support one layout to begin with. The same layout would be what you see on the iPad app. Edit caption in place is supported. You can aslo adjust the photograph within it’s frame.
87 |
88 |
89 |
90 |
91 | Drafts section for the photographer. You could view your submmited projects here but you would’t be able to edit it.
92 |
93 |
94 |
95 |
96 | Curator's view on all submissions. This is a mailbox for him. Catogories, tags defined from photographers help him to find projects, though the curator has the ability to override them.
97 |
98 |
99 |
100 |
101 | Curator’s view showing the publishing deadline. In this case he already selected the required twelve projects to publish for the Fall issue.
102 |
103 |
104 |
105 |
106 | A contrast view when the curator hasn’t selected any project for the upcoming magazine issue. Click on any placeholder would take him to the inbox.
107 |
108 |
109 | You can [view the entire InVision prototype](http://invis.io/NPORJVDV). I also documented the walkthrough and wireframes. [Download the pdf](https://www.dropbox.com/s/qv7eft3viq53h1n/book.pdf?dl=0).
110 |
111 | All I knew at the beginning was I wanted to work on a photography project. I attempted three ideas. This process helped me to get to the final execution.
112 |
113 |
114 |
115 | ## Process: The Three Ideas
116 |
117 | ### Photo essay sharing
118 |
119 | My very first attempt. Like Flickr, but user shares essays or stories instead of individual photographs. Popular content and authors get featured onto the homepage. I had the navigation so cluttered.
120 |
121 |
122 |
123 | Each project has a time stamp when the photos were taken, with the location as well. I wanted to encourage photographer to write educational content.
124 |
125 |
126 |
127 |
128 | You can browse by authors. The site will aggregates popular and new members.
129 |
130 |
131 |
132 |
133 | The detail view. You can comment and find related articles. Possible actions you could take is display in a menu on the right: you could so things like add this article to your library, share to other social platform, check out the author and jump to comments.
134 |
135 |
136 |
137 |
138 | The dashboard view for registered users. You get updates on new article and activities associated to your articles. There is shortcut for submitting new work and recent library items you added.
139 |
140 |
141 |
142 |
143 | Public profile. The copy could be better, instead of "my", it could be "Bjørn's" since anyone would be able to see.
144 |
145 |
146 |
147 |
148 | The history of my submission and their status.
149 |
150 |
151 | ### Pinterest for photography? kind of.
152 |
153 | This was when I began to experiment on the iPad. You could view projects generated from all users. You could save any text, photograph or entire project to a collection of yours, and share with anyone.
154 |
155 |
156 |
157 | My profile screen with general inforamtion, my equipments and published work.
158 |
159 |
160 |
161 |
162 | You swipe left or right to move the timeline for your bookmarked content. A long tap to launch the share menu.
163 |
164 |
165 |
166 |
167 | Location based projects. It's up to the photographer to share her shooting location.
168 |
169 |
170 |
171 |
172 | A detail view of a project. You can choose to only read text or browse photographs. The default view shows everything.
173 |
174 |
175 |
176 |
177 | View photos only.
178 |
179 |
180 |
181 |
182 | View text only.
183 |
184 |
185 | I made an update on this concept, with inspiration from [Gimme Bar](https://gimmebar.com/). It allows users to save anything on the web into their own collections. I took the similar approach, reworked the terminology to "Exhibition", so any public exhibition the user decided to save, they can save into their own created exhibition and share with anyone. All content is user generated.
186 |
187 |
188 |
189 | Catogory view is switched on: recent or popular exihibitions. Tap to disable them.
190 |
191 |
192 |
193 |
194 | Detail view. Curating mode allows to add any content to your own exhibition.
195 |
196 |
197 |
198 |
199 | Create your own gallery before you could save any content to it.
200 |
201 |
202 |
203 |
204 | Pinch to collapse the entire project and save it to your gallery.
205 |
206 |
207 |
208 |
209 | Create a new gallery.
210 |
211 |
212 | ### The Magazine
213 |
214 | This is the visual exploration. I wasn’t worried about how to submit or publish projects. Dealing with a smaller scope sped up execution, even though it had a different look and feel compared to the final version. The idea is to showcase twelve projects based on user’s location.
215 |
216 |
217 |
218 | Landing screen
219 |
220 |
221 |
222 |
223 | Project Overview
224 |
225 |
226 |
227 |
228 | Signle Image View
229 |
230 |
231 |
232 |
233 | Project Thumbnail View
234 |
235 |
236 |
237 |
238 | Available Project List
239 |
240 |
241 |
242 |
243 | Project Layout
244 |
245 |
246 |
247 |
248 | Equipments information if available from the photographer
249 |
250 |
251 | This project spaned over three semesters. With each exploration I gained more clarity and direction. If anything, this is what I learned:
252 |
253 | + Keep scope small. Do one thing well, not ten thing average.
254 | + Focus on content.
255 | + Make it for web, tailor content for mobile devices later.
256 | + Show progress often. Ask for feedback.
257 | + Choose a subject you are passionate about.
258 | + As a student, this might be one of the few opportunities where you get total freedom and all of your day time on a project.
259 | + Have fun with it.
260 |
261 | ## Attribution
262 |
263 | Special thanks to the following photographers: [Tommy Oshima](https://www.flickr.com/photos/tommyoshima), [Isabella Bejarano](http://www.isabellabejarano.com/home), [Silas Dominey](http://silasdominey.tumblr.com), [Jaqueline Vanek](https://www.flickr.com/photos/jaquelinevanek). [Mark Peckmezian](http://www.markpeckmezian.com/) and [Federica Erra](https://www.flickr.com/photos/federico_erra). If you prefer not to be featured here, please contact me @cmzhang . All work used in this project was for academic purposes.
264 |
265 |
266 |
267 |
268 |
269 |
270 |
--------------------------------------------------------------------------------