├── 404.md
├── CNAME
├── Gemfile
├── Gemfile.lock
├── LICENSE
├── README.md
├── _config.yml
├── _includes
├── analytics.html
├── category.html
├── category_cat.html
├── disqus.html
├── fb-script.html
├── footer.html
├── head.html
├── header.html
├── icon-github.html
├── icon-github.svg
├── icon-instagram.html
├── icon-instagram.svg
├── icon-twitter.html
├── icon-twitter.svg
└── sidebar.html
├── _layouts
├── autopage_collection.html
├── autopage_tags.html
├── compress.html
├── default.html
├── default_cat.html
├── error.html
├── page.html
└── post.html
├── _sass
├── _base.scss
├── _bootstrap-readable.scss
├── _custom.scss
├── _layout.scss
└── _syntax-highlighting.scss
├── assets
├── earth.jpg
└── fonts
│ └── libretto-icons
│ ├── libretto-icons.eot
│ ├── libretto-icons.svg
│ ├── libretto-icons.ttf
│ └── libretto-icons.woff
├── css
└── main.scss
├── feed.xml
├── images
├── AILabs_icon.svg
├── JustCopy.png
├── PTT.png
├── cpnews_120x300.png
├── cpnews_120x510.png
├── cpnews_840x990.png
├── create-gh-pages-branch.JPG
├── delete-github-branch-2.png
├── delete-github-branch.png
├── down.png
├── facebook.svg
├── favicon.png
├── github.svg
├── image-1.png
├── image-2.png
├── image-3.png
├── image-4.png
├── image-5.png
├── left.gif
├── quora.svg
├── right.gif
├── twitter.svg
├── up.png
├── webjeda-cards-jekyll-theme-1.png
├── webjeda-cards-responsive-jekyll-theme-2.png
├── webjeda-logo-big.jpg
└── webjeda.svg
├── index.html
├── intro.html
├── js
├── bootstrap.min.js
├── layouts.js
├── scroll_gallery.js
└── time.js
├── open_source.html
└── table-of-contents.html
/404.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: error
3 | title: 404 Not Found
4 | permalink: /404
5 | ---
6 |
7 | # Error
8 |
9 | The page you are looking for either doesn't exist or is not here anymore.
10 |
11 | Click [here]({{ site.baseurl }}/) to go back to the home page.
12 |
--------------------------------------------------------------------------------
/CNAME:
--------------------------------------------------------------------------------
1 | news.ptt.cc
2 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 | ruby RUBY_VERSION
3 |
4 | gem 'nokogiri'
5 | gem 'rack', '~> 2.0.1'
6 | gem 'rspec'
7 | require 'json'
8 | require 'open-uri'
9 | versions = JSON.parse(open('https://pages.github.com/versions.json').read)
10 |
11 | gem "github-pages", group: :jekyll_plugins
12 |
13 | group :jekyll_plugins do
14 | gem "jekyll-paginate-v2", "~> 1.7"
15 | gem "jekyll-feed"
16 | end
17 |
18 | gem 'wdm', '>= 0.1.0' if Gem.win_platform?
19 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | activesupport (4.2.8)
5 | i18n (~> 0.7)
6 | minitest (~> 5.1)
7 | thread_safe (~> 0.3, >= 0.3.4)
8 | tzinfo (~> 1.1)
9 | addressable (2.5.1)
10 | public_suffix (~> 2.0, >= 2.0.2)
11 | coffee-script (2.4.1)
12 | coffee-script-source
13 | execjs
14 | coffee-script-source (1.12.2)
15 | colorator (1.1.0)
16 | diff-lcs (1.3)
17 | ethon (0.10.1)
18 | ffi (>= 1.3.0)
19 | execjs (2.7.0)
20 | faraday (0.12.2)
21 | multipart-post (>= 1.2, < 3)
22 | ffi (1.9.18)
23 | forwardable-extended (2.6.0)
24 | gemoji (3.0.0)
25 | github-pages (146)
26 | activesupport (= 4.2.8)
27 | github-pages-health-check (= 1.3.5)
28 | jekyll (= 3.4.5)
29 | jekyll-avatar (= 0.4.2)
30 | jekyll-coffeescript (= 1.0.1)
31 | jekyll-default-layout (= 0.1.4)
32 | jekyll-feed (= 0.9.2)
33 | jekyll-gist (= 1.4.0)
34 | jekyll-github-metadata (= 2.5.1)
35 | jekyll-mentions (= 1.2.0)
36 | jekyll-optional-front-matter (= 0.2.0)
37 | jekyll-paginate (= 1.1.0)
38 | jekyll-readme-index (= 0.1.0)
39 | jekyll-redirect-from (= 0.12.1)
40 | jekyll-relative-links (= 0.4.1)
41 | jekyll-sass-converter (= 1.5.0)
42 | jekyll-seo-tag (= 2.2.3)
43 | jekyll-sitemap (= 1.0.0)
44 | jekyll-swiss (= 0.4.0)
45 | jekyll-theme-architect (= 0.0.4)
46 | jekyll-theme-cayman (= 0.0.4)
47 | jekyll-theme-dinky (= 0.0.4)
48 | jekyll-theme-hacker (= 0.0.4)
49 | jekyll-theme-leap-day (= 0.0.4)
50 | jekyll-theme-merlot (= 0.0.4)
51 | jekyll-theme-midnight (= 0.0.4)
52 | jekyll-theme-minimal (= 0.0.4)
53 | jekyll-theme-modernist (= 0.0.4)
54 | jekyll-theme-primer (= 0.3.1)
55 | jekyll-theme-slate (= 0.0.4)
56 | jekyll-theme-tactile (= 0.0.4)
57 | jekyll-theme-time-machine (= 0.0.4)
58 | jekyll-titles-from-headings (= 0.2.0)
59 | jemoji (= 0.8.0)
60 | kramdown (= 1.13.2)
61 | liquid (= 3.0.6)
62 | listen (= 3.0.6)
63 | mercenary (~> 0.3)
64 | minima (= 2.1.1)
65 | rouge (= 1.11.1)
66 | terminal-table (~> 1.4)
67 | github-pages-health-check (1.3.5)
68 | addressable (~> 2.3)
69 | net-dns (~> 0.8)
70 | octokit (~> 4.0)
71 | public_suffix (~> 2.0)
72 | typhoeus (~> 0.7)
73 | html-pipeline (2.6.0)
74 | activesupport (>= 2)
75 | nokogiri (>= 1.4)
76 | i18n (0.8.6)
77 | jekyll (3.4.5)
78 | addressable (~> 2.4)
79 | colorator (~> 1.0)
80 | jekyll-sass-converter (~> 1.0)
81 | jekyll-watch (~> 1.1)
82 | kramdown (~> 1.3)
83 | liquid (~> 3.0)
84 | mercenary (~> 0.3.3)
85 | pathutil (~> 0.9)
86 | rouge (~> 1.7)
87 | safe_yaml (~> 1.0)
88 | jekyll-avatar (0.4.2)
89 | jekyll (~> 3.0)
90 | jekyll-coffeescript (1.0.1)
91 | coffee-script (~> 2.2)
92 | jekyll-default-layout (0.1.4)
93 | jekyll (~> 3.0)
94 | jekyll-feed (0.9.2)
95 | jekyll (~> 3.3)
96 | jekyll-gist (1.4.0)
97 | octokit (~> 4.2)
98 | jekyll-github-metadata (2.5.1)
99 | jekyll (~> 3.1)
100 | octokit (~> 4.0, != 4.4.0)
101 | jekyll-mentions (1.2.0)
102 | activesupport (~> 4.0)
103 | html-pipeline (~> 2.3)
104 | jekyll (~> 3.0)
105 | jekyll-optional-front-matter (0.2.0)
106 | jekyll (~> 3.0)
107 | jekyll-paginate (1.1.0)
108 | jekyll-paginate-v2 (1.8.1)
109 | jekyll (~> 3.0)
110 | jekyll-readme-index (0.1.0)
111 | jekyll (~> 3.0)
112 | jekyll-redirect-from (0.12.1)
113 | jekyll (~> 3.3)
114 | jekyll-relative-links (0.4.1)
115 | jekyll (~> 3.3)
116 | jekyll-sass-converter (1.5.0)
117 | sass (~> 3.4)
118 | jekyll-seo-tag (2.2.3)
119 | jekyll (~> 3.3)
120 | jekyll-sitemap (1.0.0)
121 | jekyll (~> 3.3)
122 | jekyll-swiss (0.4.0)
123 | jekyll-theme-architect (0.0.4)
124 | jekyll (~> 3.3)
125 | jekyll-theme-cayman (0.0.4)
126 | jekyll (~> 3.3)
127 | jekyll-theme-dinky (0.0.4)
128 | jekyll (~> 3.3)
129 | jekyll-theme-hacker (0.0.4)
130 | jekyll (~> 3.3)
131 | jekyll-theme-leap-day (0.0.4)
132 | jekyll (~> 3.3)
133 | jekyll-theme-merlot (0.0.4)
134 | jekyll (~> 3.3)
135 | jekyll-theme-midnight (0.0.4)
136 | jekyll (~> 3.3)
137 | jekyll-theme-minimal (0.0.4)
138 | jekyll (~> 3.3)
139 | jekyll-theme-modernist (0.0.4)
140 | jekyll (~> 3.3)
141 | jekyll-theme-primer (0.3.1)
142 | jekyll (~> 3.3)
143 | jekyll-theme-slate (0.0.4)
144 | jekyll (~> 3.3)
145 | jekyll-theme-tactile (0.0.4)
146 | jekyll (~> 3.3)
147 | jekyll-theme-time-machine (0.0.4)
148 | jekyll (~> 3.3)
149 | jekyll-titles-from-headings (0.2.0)
150 | jekyll (~> 3.3)
151 | jekyll-watch (1.5.0)
152 | listen (~> 3.0, < 3.1)
153 | jemoji (0.8.0)
154 | activesupport (~> 4.0)
155 | gemoji (~> 3.0)
156 | html-pipeline (~> 2.2)
157 | jekyll (>= 3.0)
158 | kramdown (1.13.2)
159 | liquid (3.0.6)
160 | listen (3.0.6)
161 | rb-fsevent (>= 0.9.3)
162 | rb-inotify (>= 0.9.7)
163 | mercenary (0.3.6)
164 | mini_portile2 (2.2.0)
165 | minima (2.1.1)
166 | jekyll (~> 3.3)
167 | minitest (5.10.3)
168 | multipart-post (2.0.0)
169 | net-dns (0.8.0)
170 | nokogiri (1.8.0)
171 | mini_portile2 (~> 2.2.0)
172 | octokit (4.7.0)
173 | sawyer (~> 0.8.0, >= 0.5.3)
174 | pathutil (0.14.0)
175 | forwardable-extended (~> 2.6)
176 | public_suffix (2.0.5)
177 | rack (2.0.3)
178 | rb-fsevent (0.10.2)
179 | rb-inotify (0.9.10)
180 | ffi (>= 0.5.0, < 2)
181 | rouge (1.11.1)
182 | rspec (3.6.0)
183 | rspec-core (~> 3.6.0)
184 | rspec-expectations (~> 3.6.0)
185 | rspec-mocks (~> 3.6.0)
186 | rspec-core (3.6.0)
187 | rspec-support (~> 3.6.0)
188 | rspec-expectations (3.6.0)
189 | diff-lcs (>= 1.2.0, < 2.0)
190 | rspec-support (~> 3.6.0)
191 | rspec-mocks (3.6.0)
192 | diff-lcs (>= 1.2.0, < 2.0)
193 | rspec-support (~> 3.6.0)
194 | rspec-support (3.6.0)
195 | safe_yaml (1.0.4)
196 | sass (3.5.1)
197 | sass-listen (~> 4.0.0)
198 | sass-listen (4.0.0)
199 | rb-fsevent (~> 0.9, >= 0.9.4)
200 | rb-inotify (~> 0.9, >= 0.9.7)
201 | sawyer (0.8.1)
202 | addressable (>= 2.3.5, < 2.6)
203 | faraday (~> 0.8, < 1.0)
204 | terminal-table (1.8.0)
205 | unicode-display_width (~> 1.1, >= 1.1.1)
206 | thread_safe (0.3.6)
207 | typhoeus (0.8.0)
208 | ethon (>= 0.8.0)
209 | tzinfo (1.2.3)
210 | thread_safe (~> 0.1)
211 | unicode-display_width (1.3.0)
212 |
213 | PLATFORMS
214 | ruby
215 |
216 | DEPENDENCIES
217 | github-pages
218 | jekyll-feed
219 | jekyll-paginate-v2 (~> 1.7)
220 | nokogiri
221 | rack (~> 2.0.1)
222 | rspec
223 |
224 | RUBY VERSION
225 | ruby 2.3.1p112
226 |
227 | BUNDLED WITH
228 | 1.15.2
229 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 |
4 | Copyright (c) 2008-2017 Tom Preston-Werner and Jekyll contributors
5 | Copyright (c) 2016 Sverrir Sigmundarson
6 | Copyright (c) 2016 webjeda
7 | Copyright (c) 2017 AILabs.tw
8 |
9 | Permission is hereby granted, free of charge, to any person obtaining a copy
10 | of this software and associated documentation files (the "Software"), to deal
11 | in the Software without restriction, including without limitation the rights
12 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | copies of the Software, and to permit persons to whom the Software is
14 | furnished to do so, subject to the following conditions:
15 |
16 | The above copyright notice and this permission notice shall be included in all
17 | copies or substantial portions of the Software.
18 |
19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 | SOFTWARE.
26 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## 記者快抄
2 | 由PTT熱門看板選取熱門文章,自動節錄生成模擬新聞。
3 |
4 | 此github為網頁生成部分。
5 |
6 | 由[記者快抄後端](https://github.com/exe1023/JustCopy)生成markdown檔至`_posts`資料夾後
7 |
8 | 再根據markdown檔產生網頁(markdown格式請參閱brach gh-pages中的`_posts`資料夾)
9 |
10 | ## 網頁生成
11 | 使用[Jekyll](https://jekyllrb.com/)套件生成網頁
12 |
13 | 版面配置目前暫時基於[webjeda](http://webjeda.com/cards)修改
14 |
15 | 於gh-pages分支中有 `_posts` 資料夾以供測試,此資料夾不會更新。
16 |
17 | ## 安裝執行
18 | 相關套件安裝方式請參閱官網:[Jekyll](https://jekyllrb.com/), [Bundler](http://bundler.io/)
19 |
20 | 基礎執行指令如下:
21 | ```sh
22 | bundle exec jekyll build # 生成網頁於_site資料夾
23 | bundle exec jekyll serve --watch # 於local端(http://127.0.0.1:4000)架設網站
24 | bundle exec jekyll serve --host your_server --watch # 於你的機器上(your_server:4000)架設網站
25 | ```
26 |
27 | ## Issues
28 | - 更好看與合理的Layout
29 | - 在jekyll框架下,以`_pages`代替`_posts`,以解決預設`_posts`分類markdown檔名需加日期的問題
30 | - 不同大小圖片在index頁的呈現調整
31 | - 當內文有多圖時的呈現方式
32 | - 資料夾配置與`js`、`_sass`、`_includes`、`_layouts`等精簡
33 | - 分類項目下,進到post頁面後的上下篇文目前未依照分類
34 |
35 | ## CopyNews
36 | Auto-generate news articles from popular posts in PTT forum.
37 |
38 | This github is the website-generation part.
39 |
40 | ## Website Page Generation
41 |
42 | Powered by [Jekyll](https://jekyllrb.com/)
43 |
44 | Layout based on [webjeda](http://webjeda.com/cards)
45 |
46 | In branch gh-pages we got `_posts` folder for you to test layouts, the examples in that folder will not update.
47 |
48 | ## Install and Run
49 | To install the related toolkits, please follow the guide in:[Jekyll](https://jekyllrb.com/), [Bundler](http://bundler.io/)
50 |
51 | Basic running commands are:
52 | ```sh
53 | bundle exec jekyll build # generate _site
54 | bundle exec jekyll serve --watch # active a website server in http://127.0.0.1:4000
55 | bundle exec jekyll serve --host your_server --watch # active a website server in your_server:4000
56 | ```
57 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | # Welcome to Jekyll!
2 | #
3 | # This config file is meant for settings that affect your whole blog, values
4 | # which you are expected to set up once and rarely need to edit after that.
5 | # For technical reasons, this file is *NOT* reloaded automatically when you use
6 | # 'jekyll serve'. If you change this file, please restart the server process.
7 |
8 | # Site settings
9 | title: 記者快抄
10 | #email: your-email@domain.com
11 | description: > # this means to ignore newlines until "baseurl:"
12 | 我是一名AI實習記者,任務是將熱門PTT文章寫成新聞草稿,好給辛苦的記者們參考。
13 |
14 | baseurl: "" # the subpath of your site, e.g. /blog
15 | url: "news.ptt.cc" # the base hostname & protocol for your site
16 |
17 | #sidebar
18 | default-image: PTT.png # If there is no featured image in a post then this image will be showed.
19 |
20 | #footer
21 | built-by: webjeda
22 | copyright:
23 | name: webjeda
24 | link: 'http://blog.webjeda.com'
25 |
26 | # Build settings
27 | markdown: kramdown
28 | exclude:
29 | - Gemfile
30 | - Gemfile.lock
31 |
32 | # Build settings
33 | pagination:
34 | enabled: true
35 | per_page: 40
36 | permalink: '/page:num/'
37 | title: ':title'
38 | sort_field: 'date'
39 | trail:
40 | before: 2
41 | after: 2
42 |
43 | autopages:
44 | enabled: true
45 | tags:
46 | layouts:
47 | - autopage_tags.html
48 | enabled: true
49 |
50 | # Tracker
51 | # analytics: UA-83979019-1
52 |
53 | # Comments
54 | disqus-shortname: copynews
55 |
56 | #social
57 | facebook: http://facebook.com/PttTW
58 | github: http://github.com/coldsheepTW/JustCopy
59 |
60 | #facebook like box
61 | fb-app-id: 549480635219583
62 | fb-page-url: https://www.facebook.com/PttTW
63 | fb-page-title: PttTW
64 |
65 | # Sass style
66 | sass:
67 | style: compressed
68 |
69 | # Ruby Gems
70 | gems: [jekyll-paginate-v2, jekyll-seo-tag]
71 |
72 | timezone: Asia/Taipei
73 | local: zh_TW
74 |
--------------------------------------------------------------------------------
/_includes/analytics.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/_includes/category.html:
--------------------------------------------------------------------------------
1 |
19 |
--------------------------------------------------------------------------------
/_includes/category_cat.html:
--------------------------------------------------------------------------------
1 |
19 |
30 |
--------------------------------------------------------------------------------
/_includes/disqus.html:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/_includes/fb-script.html:
--------------------------------------------------------------------------------
1 |
2 |
9 |
--------------------------------------------------------------------------------
/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
25 |
--------------------------------------------------------------------------------
/_includes/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {% seo %}
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
25 |
26 |
29 |
30 |
--------------------------------------------------------------------------------
/_includes/header.html:
--------------------------------------------------------------------------------
1 |
28 |
--------------------------------------------------------------------------------
/_includes/icon-github.html:
--------------------------------------------------------------------------------
1 | {% include icon-github.svg %}{{ include.username }}
2 |
--------------------------------------------------------------------------------
/_includes/icon-github.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/_includes/icon-instagram.html:
--------------------------------------------------------------------------------
1 | {% include icon-instagram.svg %}{{ include.username }}
2 |
--------------------------------------------------------------------------------
/_includes/icon-instagram.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/_includes/icon-twitter.html:
--------------------------------------------------------------------------------
1 | {{ include.username }}
2 |
--------------------------------------------------------------------------------
/_includes/icon-twitter.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/_includes/sidebar.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
16 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/_layouts/autopage_collection.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default_cat
3 | pagination:
4 | enabled: true
5 | tags: Gossiping, NBA, movie, Beauty
6 | sort_field: 'date'
7 | sort_reverse: true
8 | ---
9 |
10 |
11 | {% assign tags = "Gossiping|NBA|movie|Beauty" | split: '|' %}
12 | {% for tag in tags %}
13 |
14 |
15 |
16 | {% for post in paginator.posts %}
17 | {% if post.tags contains tag %}
18 |
19 |
20 |
21 |
25 |
26 |
27 | {% if post.img %}
28 |

29 | {% else %}
30 |

31 | {% endif %}
32 |
33 |
34 |
35 |
38 |
39 |
{{post.push}}
40 |
{{post.boo}}
41 |
{{ post.date }}
42 |
43 |
44 |
45 | {% endif %}
46 | {% endfor %}
47 |
48 |
49 |
50 |
51 |
52 | {% if paginator.total_pages > 1 %}
53 |
74 | {% endif %}
75 |
76 |
77 |
78 |
79 |
80 | {% endfor %}
81 |
82 |
--------------------------------------------------------------------------------
/_layouts/autopage_tags.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default_cat
3 | pagination:
4 | enabled: true
5 | tags: Gossiping, NBA, Baseball, movie, KoreaStar, Beauty, Boy-Girl, WomenTalk, sex
6 | sort_field: 'date'
7 | sort_reverse: true
8 | ---
9 |
10 |
11 |
12 |
13 |
14 | {% for post in paginator.posts %}
15 | {% if post.tags contains page.autopages.display_name %}
16 |
17 |
18 |
19 |
23 |
24 |
25 | {% if post.img %}
26 |

27 | {% else %}
28 |

29 | {% endif %}
30 |
31 |
32 |
33 |
36 |
37 |
{{post.push}}
38 |
{{post.boo}}
39 |
{{ post.date }}
40 |
41 |
42 |
43 | {% endif %}
44 | {% endfor %}
45 |
46 |
47 |
48 |
49 |
50 | {% if paginator.total_pages > 1 %}
51 |
82 | {% endif %}
83 |
84 |
85 |
86 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/_layouts/compress.html:
--------------------------------------------------------------------------------
1 | ---
2 | # Jekyll layout that compresses HTML
3 | # v3.0.1
4 | # http://jch.penibelst.de/
5 | # © 2014–2015 Anatol Broder
6 | # MIT License
7 | ---
8 |
9 | {% capture _LINE_FEED %}
10 | {% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% assign _lastchar = _pres.last | split: "" | last %}{% assign _outerloop = forloop %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if forloop.last and _lastchar == _LINE_FEED %}{% unless _outerloop.last %}{{ _LINE_FEED }}{% endunless %}{% continue %}{% endif %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "
" %}{% endif %}{% unless _pre_before contains "
" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " ;; ;" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} Step | Bytes |
raw | {{ content | size }}{% if _profile_endings %} |
endings | {{ _profile_endings }}{% endif %}{% if _profile_startings %} |
startings | {{ _profile_startings }}{% endif %}{% if _profile_comments %} |
comments | {{ _profile_comments }}{% endif %}{% if _profile_collapse %} |
collapse | {{ _profile_collapse }}{% endif %}{% if _profile_clippings %} |
clippings | {{ _profile_clippings }}{% endif %} |
{% endif %}{% endif %}
11 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: compress
3 | ---
4 |
5 |
6 |
7 |
8 | {% include head.html %}
9 |
10 |
11 |
12 | {% include header.html %}
13 |
14 | {% include category.html %}
15 |
16 |
17 | {{ content }}
18 |
19 |
20 |
21 | {% include footer.html %}
22 |
23 |
24 |
25 |
26 |
27 |
28 | {% if site.analytics %}{% include analytics.html %}{% endif %}
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/_layouts/default_cat.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: compress
3 | ---
4 |
5 |
6 |
7 |
8 | {% include head.html %}
9 |
10 |
11 |
12 | {% include header.html %}
13 |
14 | {% include category_cat.html %}
15 |
16 |
17 | {{ content }}
18 |
19 |
20 |
21 | {% include footer.html %}
22 |
23 |
24 |
25 |
26 |
27 |
28 | {% if site.analytics %}{% include analytics.html %}{% endif %}
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/_layouts/error.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
8 |
9 |
10 |
11 | {{ content }}
12 |
13 |
14 |
--------------------------------------------------------------------------------
/_layouts/page.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
7 |
8 |
11 |
12 |
13 | {{ content }}
14 |
15 |
16 |
17 |
18 | {% include sidebar.html %}
19 |
20 |
21 | {% include fb-script.html %}
--------------------------------------------------------------------------------
/_layouts/post.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
7 |
8 |
13 |
14 |
15 | {{ content }}
16 |
17 | {% if page.all_img %}
18 | {% assign imgs = page.all_img | split: ';' %}
19 |
20 | {% for img in imgs %}
21 |
22 |

23 |
24 | {% endfor %}
25 |
26 | {% endif %}
27 |
28 |
29 |
30 |
31 |
32 |
33 |
41 |
42 |
43 |
44 |
45 | {% include sidebar.html %}
46 |
47 |
48 |
49 |
50 | {% include fb-script.html %}
51 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/_sass/_base.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Reset some basic elements
3 | */
4 | body, h1, h2, h3, h4, h5, h6,
5 | p, blockquote, pre, hr,
6 | dl, dd, ol, ul, figure {
7 | margin: 0;
8 | padding: 0;
9 | }
10 |
11 |
12 |
13 | /**
14 | * Basic styling
15 | */
16 | body {
17 | font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
18 | color: $text-color;
19 | background-color: $background-color;
20 | -webkit-text-size-adjust: 100%;
21 | -webkit-font-feature-settings: "kern" 1;
22 | -moz-font-feature-settings: "kern" 1;
23 | -o-font-feature-settings: "kern" 1;
24 | font-feature-settings: "kern" 1;
25 | font-kerning: normal;
26 | }
27 |
28 | img.center {
29 | max-width: 50%;
30 | vertical-align: middle;
31 | display: block;
32 | margin: auto;
33 | }
34 |
35 | /**
36 | * Set `margin-bottom` to maintain vertical rhythm
37 | */
38 | h1, h2, h3, h4, h5, h6,
39 | p, blockquote, pre,
40 | ul, ol, dl, figure,
41 | %vertical-rhythm {
42 | margin-bottom: $spacing-unit / 2;
43 | }
44 |
45 |
46 |
47 | /**
48 | * Articles
49 | */
50 |
51 | article.list {
52 | padding: 0.1em 0.5em;
53 | font-color: $text-color;
54 |
55 | > .entry-content-img {
56 | height: 30vmin;
57 | width: auto;
58 | overflow: hidden;
59 | }
60 | }
61 |
62 | article.post {
63 | background: #faf9f5;
64 | box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.05);
65 | margin-bottom: $spacing-unit;
66 | padding: 3em 3em 1em;
67 |
68 | @include media-query($on-palm) {
69 | padding: 1em 1em 0.3em;
70 | }
71 |
72 | > .entry-content {
73 | @include media-query($on-palm) {
74 | font-size: 80%;
75 | }
76 |
77 | &:first-letter {
78 | color: $text-color;
79 | display: inline-block;
80 | float: left;
81 | font-family: "Playfair Display";
82 | font-size: 4em;
83 | font-style: normal;
84 | font-weight: 700;
85 | line-height: 70px;
86 | margin: -5px 10px 0px -5px;
87 |
88 | @include media-query($on-palm) {
89 | font-size: 70px;
90 | line-height: 30px;
91 | }
92 | }
93 |
94 | &:first-line {
95 | color: $text-color;
96 | font-family: "Playfair Display SC";
97 | font-size: 1em;
98 | font-style: normal !important;
99 | font-weight: bold;
100 | letter-spacing: 2px;
101 | }
102 | }
103 | }
104 |
105 | .post-header {
106 | border-bottom: 1px solid #d9d6d0;
107 | margin-bottom: 2rem;
108 | text-align: center;
109 | /*
110 | &:before {
111 | background: #faf9f5;
112 | border: 1px solid #d9d6d0;
113 | border-radius: 50%;
114 | box-shadow: 0 0 0 4px #faf9f5;
115 | color: #a09a92;
116 | content: "p";
117 | display: inline-block;
118 | font-family: libretto-icons;
119 | font-size: 21px;
120 | line-height: 21px;
121 | margin: 1rem auto 2rem;
122 | padding: 10px;
123 | text-shadow: none;
124 | }*/
125 |
126 | > .post-date {
127 | color: $grey-color-dark;
128 | font-size: $base-font-size;
129 | font-style: italic;
130 | float: left;
131 |
132 | @include media-query($on-palm) {
133 | font-size: $small-font-size;
134 | }
135 | /*
136 | &:before {
137 | color: #d9d6d0;
138 | content: "~";
139 | display: inline-block;
140 | font-family: libretto-icons;
141 | font-size: 24px;
142 | margin: 0 0.25rem;
143 | text-shadow: none;
144 | vertical-align: -6px;
145 | }
146 |
147 | &:after {
148 | color: #d9d6d0;
149 | content: "`";
150 | display: inline-block;
151 | font-family: libretto-icons;
152 | font-size: 24px;
153 | margin: 0 0.25rem;
154 | text-shadow: none;
155 | vertical-align: -6px;
156 | }
157 | */
158 | }
159 | }
160 |
161 | .post-list {
162 | .post-header {
163 | &:before {
164 | background: #eae9e6;
165 | border-color: #faf9f5;
166 | box-shadow: 0 0 0 4px #eae9e6;
167 | }
168 | }
169 |
170 | .post-react {
171 | float: right;
172 | }
173 |
174 | > li {
175 | border: 1px solid #d9d6d0;
176 | margin: 3px;
177 | }
178 | }
179 |
180 | .continue {
181 | font-style: italic;
182 | float: right;
183 | }
184 |
185 |
186 | /**
187 | * Images
188 | */
189 | img {
190 | max-width: 100%;
191 | vertical-align: middle;
192 | display: block;
193 | margin: auto;
194 | }
195 |
196 |
197 |
198 | /**
199 | * Figures
200 | */
201 | figure {
202 | background: #fff;
203 | box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.025);
204 | padding: 0.5em;
205 | }
206 |
207 | figure > img {
208 | display: block;
209 | }
210 |
211 | figcaption {
212 | color: $grey-color;
213 | font-size: 16px;
214 | font-style: italic;
215 | line-height: 1.2;
216 | margin: 1em 0.5em 0.5em;
217 | text-align: center;
218 | }
219 |
220 |
221 |
222 | /**
223 | * Lists
224 | */
225 | ul, ol {
226 | margin-left: $spacing-unit;
227 | }
228 |
229 | li {
230 | > ul,
231 | > ol {
232 | margin-bottom: 0;
233 | }
234 | }
235 |
236 |
237 |
238 | /**
239 | * Headings
240 | */
241 | h1, h2, h3, h4, h5, h6 {
242 | line-height: initial;
243 | font-weight: $base-font-weight;
244 | }
245 |
246 |
247 |
248 | /**
249 | * Links
250 | */
251 | a {
252 | color: $brand-color;
253 | text-decoration: none;
254 |
255 | &:hover {
256 | color: darken($brand-color, 5%);
257 | text-decoration: none;
258 | }
259 |
260 | > .continue {
261 | color: $continue-color;
262 | }
263 | }
264 |
265 |
266 |
267 | /**
268 | * Blockquotes
269 | */
270 | blockquote {
271 | color: $grey-color;
272 | border-left: 4px solid $grey-color-light;
273 | padding-left: $spacing-unit / 2;
274 | font-size: 18px;
275 | letter-spacing: -1px;
276 | font-style: italic;
277 |
278 | > :last-child {
279 | margin-bottom: 0;
280 | }
281 | }
282 |
283 |
284 |
285 | /**
286 | * Code formatting
287 | */
288 | pre,
289 | code {
290 | font-size: 15px;
291 | border: 1px solid $grey-color-light;
292 | border-radius: 3px;
293 | background-color: #eef;
294 | }
295 |
296 | code {
297 | padding: 1px 5px;
298 | }
299 |
300 | pre {
301 | padding: 8px 12px;
302 | overflow-x: auto;
303 |
304 | > code {
305 | border: 0;
306 | padding-right: 0;
307 | padding-left: 0;
308 | }
309 | }
310 |
311 |
312 |
313 | /**
314 | * Wrapper
315 | */
316 | .wrapper {
317 | max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
318 | max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
319 | margin-right: auto;
320 | margin-left: auto;
321 | padding-right: $spacing-unit;
322 | padding-left: $spacing-unit;
323 | @extend %clearfix;
324 |
325 | @include media-query($on-laptop) {
326 | max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
327 | max-width: calc(#{$content-width} - (#{$spacing-unit}));
328 | padding-right: $spacing-unit / 2;
329 | padding-left: $spacing-unit / 2;
330 | }
331 | }
332 |
333 |
334 |
335 | /**
336 | * Clearfix
337 | */
338 | %clearfix {
339 |
340 | &:after {
341 | content: "";
342 | display: table;
343 | clear: both;
344 | }
345 | }
346 |
347 |
348 |
349 | /**
350 | * Icons
351 | */
352 | .icon {
353 |
354 | > svg {
355 | display: inline-block;
356 | width: 16px;
357 | height: 16px;
358 | vertical-align: middle;
359 |
360 | path {
361 | fill: $grey-color;
362 | }
363 | }
364 | }
365 |
--------------------------------------------------------------------------------
/_sass/_custom.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/_sass/_custom.scss
--------------------------------------------------------------------------------
/_sass/_layout.scss:
--------------------------------------------------------------------------------
1 | html,body {
2 | font-family: $base-font-family;
3 | font-size: $base-font-size;
4 | }
5 |
6 | .navbar {
7 | border-radius: 0;
8 | }
9 |
10 | .navbar-default {
11 | border-color: transparent;
12 | background-color: transparent;
13 | padding: 10px 0;
14 | border-bottom: 1px solid #eee;
15 | }
16 |
17 | img {
18 | max-width: 100%;
19 | }
20 |
21 | .mt50 {
22 | margin-top: 50px;
23 | }
24 | .mt20 {
25 | margin-top: 20px;
26 | }
27 |
28 | .mt10 {
29 | margin-top: 10px;
30 | }
31 | .mt25 {
32 | margin-top: 0;
33 | @include media-query($on-palm) {
34 | margin-top: 25px;
35 | }
36 | }
37 |
38 | .p20{
39 | padding: 20px 0;
40 | }
41 | .navbar-brand {
42 | font-weight: 900;
43 | font-size: 1.85em;
44 | padding: 10px;
45 | @media screen and (max-width: $on-palm) {
46 | font-size: 1.5em;
47 | }
48 | > img {
49 | height: 50px;
50 | margin-top: -10px;
51 | }
52 | }
53 | .post-meta {
54 | color: $grey-color;
55 | }
56 |
57 | .panel {
58 |
59 | border-radius: 0;
60 | border: 1px solid #eee;
61 | transition: all 0.3s ease;
62 | }
63 |
64 | .panel:hover {
65 | box-shadow: 0px 0px 4px #ddd;
66 | }
67 |
68 |
69 | footer {
70 | border-top: 1px solid $grey-color-light;
71 | }
72 |
73 | .social {
74 | list-style: none;
75 | display: inline;
76 | margin-left: 10px;
77 | padding: 5px 8px;
78 | }
79 | .social:hover {
80 | opacity: 0.7;
81 | }
82 | .social img {
83 | width: 20px;
84 | }
85 |
86 | .quora img{
87 | width: 17px;
88 | }
89 |
90 | .facebook img {
91 | width: 16px;
92 | }
93 |
94 | .recent ul {
95 | list-style: none;
96 | padding: 0;
97 | text-align: justify;
98 | }
99 |
100 | .recent {
101 | padding: 10px;
102 | border: 1px solid $grey-color-light;
103 | }
104 |
105 | .post-img {
106 | width: 100%;
107 | overflow: hidden;
108 | }
109 |
110 | .img-container {
111 | > .img-wrapper {
112 | height: 100%;
113 | overflow: hidden;
114 | }
115 | }
116 |
117 | .pack {
118 | display: -webkit-inline-flex;
119 | display: -ms-inline-flexbox;
120 | display: inline-flex;
121 | flex-wrap: wrap;
122 | -webkit-flex-wrap: wrap;
123 | }
124 |
125 | .card {
126 | float: none;
127 | }
128 |
129 | .post-title {
130 | line-height: 2;
131 | }
132 |
133 | .post-content {
134 | > figure {
135 | margin: 1em 40px;
136 | text-align: center;
137 | font-style: italic;
138 | }
139 | }
140 |
141 | .boo {
142 | margin-left: 5px;
143 | }
144 |
145 | .nav-header {
146 | margin-bottom: 0;
147 | }
148 |
149 | .category {
150 | background-color : #a43d98;
151 | }
152 |
153 | .category-list {
154 | > li > a {
155 | color: white;
156 | }
157 | > li > a:hover {
158 | color: grey;
159 | }
160 | }
161 |
162 | .intro {
163 | text-align: center;
164 | width: 50%;
165 | margin-left: 25vw;
166 | > img {
167 | width: 80%;
168 | }
169 | }
170 |
171 | .gallery {
172 | overflow: hidden;
173 | }
174 |
175 | .photo {
176 | float: left;
177 |
178 | > img {
179 | width: 100%;
180 | height: auto;
181 | }
182 | }
183 |
--------------------------------------------------------------------------------
/_sass/_syntax-highlighting.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Syntax highlighting styles
3 | */
4 | .highlight {
5 | background: #fff;
6 |
7 | /* @extend %vertical-rhythm; */
8 |
9 | .highlighter-rouge & {
10 | background: #eef;
11 | }
12 |
13 | .c { color: #998; font-style: italic } // Comment
14 | .err { color: #a61717; } // Error
15 | .k { font-weight: bold } // Keyword
16 | .o { font-weight: bold } // Operator
17 | .cm { color: #998; font-style: italic } // Comment.Multiline
18 | .cp { color: #999; font-weight: bold } // Comment.Preproc
19 | .c1 { color: #998; font-style: italic } // Comment.Single
20 | .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
21 | .gd { color: #000; } // Generic.Deleted
22 | .gd .x { color: #000; } // Generic.Deleted.Specific
23 | .ge { font-style: italic } // Generic.Emph
24 | .gr { color: #a00 } // Generic.Error
25 | .gh { color: #999 } // Generic.Heading
26 | .gi { color: #000;} // Generic.Inserted
27 | .gi .x { color: #000; } // Generic.Inserted.Specific
28 | .go { color: #888 } // Generic.Output
29 | .gp { color: #555 } // Generic.Prompt
30 | .gs { font-weight: bold } // Generic.Strong
31 | .gu { color: #aaa } // Generic.Subheading
32 | .gt { color: #a00 } // Generic.Traceback
33 | .kc { font-weight: bold } // Keyword.Constant
34 | .kd { font-weight: bold } // Keyword.Declaration
35 | .kp { font-weight: bold } // Keyword.Pseudo
36 | .kr { font-weight: bold } // Keyword.Reserved
37 | .kt { color: #458; font-weight: bold } // Keyword.Type
38 | .m { color: #099 } // Literal.Number
39 | .s { color: #d14 } // Literal.String
40 | .na { color: #008080 } // Name.Attribute
41 | .nb { color: #0086B3 } // Name.Builtin
42 | .nc { color: #458; font-weight: bold } // Name.Class
43 | .no { color: #008080 } // Name.Constant
44 | .ni { color: #800080 } // Name.Entity
45 | .ne { color: #900; font-weight: bold } // Name.Exception
46 | .nf { color: #900; font-weight: bold } // Name.Function
47 | .nn { color: #555 } // Name.Namespace
48 | .nt { color: #000080 } // Name.Tag
49 | .nv { color: #008080 } // Name.Variable
50 | .ow { font-weight: bold } // Operator.Word
51 | .w { color: #bbb } // Text.Whitespace
52 | .mf { color: #099 } // Literal.Number.Float
53 | .mh { color: #099 } // Literal.Number.Hex
54 | .mi { color: #099 } // Literal.Number.Integer
55 | .mo { color: #099 } // Literal.Number.Oct
56 | .sb { color: #d14 } // Literal.String.Backtick
57 | .sc { color: #d14 } // Literal.String.Char
58 | .sd { color: #d14 } // Literal.String.Doc
59 | .s2 { color: #d14 } // Literal.String.Double
60 | .se { color: #d14 } // Literal.String.Escape
61 | .sh { color: #d14 } // Literal.String.Heredoc
62 | .si { color: #d14 } // Literal.String.Interpol
63 | .sx { color: #d14 } // Literal.String.Other
64 | .sr { color: #009926 } // Literal.String.Regex
65 | .s1 { color: #d14 } // Literal.String.Single
66 | .ss { color: #990073 } // Literal.String.Symbol
67 | .bp { color: #999 } // Name.Builtin.Pseudo
68 | .vc { color: #008080 } // Name.Variable.Class
69 | .vg { color: #008080 } // Name.Variable.Global
70 | .vi { color: #008080 } // Name.Variable.Instance
71 | .il { color: #099 } // Literal.Number.Integer.Long
72 | }
73 |
--------------------------------------------------------------------------------
/assets/earth.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/assets/earth.jpg
--------------------------------------------------------------------------------
/assets/fonts/libretto-icons/libretto-icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/assets/fonts/libretto-icons/libretto-icons.eot
--------------------------------------------------------------------------------
/assets/fonts/libretto-icons/libretto-icons.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
48 |
--------------------------------------------------------------------------------
/assets/fonts/libretto-icons/libretto-icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/assets/fonts/libretto-icons/libretto-icons.ttf
--------------------------------------------------------------------------------
/assets/fonts/libretto-icons/libretto-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/assets/fonts/libretto-icons/libretto-icons.woff
--------------------------------------------------------------------------------
/css/main.scss:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 |
4 |
5 | @import url("https://fonts.googleapis.com/css?family=Raleway:400,700");
6 |
7 | // Our variables
8 | $base-font-family: "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif;
9 | $base-font-size: 16px;
10 | $base-font-weight: 400;
11 | $small-font-size: $base-font-size * 0.875;
12 | $base-line-height: 1.5;
13 |
14 | $spacing-unit: 30px;
15 |
16 | $text-color: #111;
17 | $background-color: #fdfdfd;
18 | $brand-color: #2a7ae2;
19 |
20 | $grey-color: #828282;
21 | $grey-color-light: lighten($grey-color, 40%);
22 | $grey-color-dark: darken($grey-color, 25%);
23 |
24 | // Width of the content area
25 | $content-width: 800px;
26 |
27 | $on-palm: 600px;
28 | $on-laptop: 800px;
29 |
30 |
31 |
32 | // Use media queries like this:
33 | // @include media-query($on-palm) {
34 | // .wrapper {
35 | // padding-right: $spacing-unit / 2;
36 | // padding-left: $spacing-unit / 2;
37 | // }
38 | // }
39 | @mixin media-query($device) {
40 | @media screen and (max-width: $device) {
41 | @content;
42 | }
43 | }
44 |
45 |
46 |
47 | // Import partials from `sass_dir` (defaults to `_sass`)
48 | @import
49 | "layout",
50 | "custom",
51 | "syntax-highlighting"
52 | ;
53 |
--------------------------------------------------------------------------------
/feed.xml:
--------------------------------------------------------------------------------
1 | ---
2 | layout: null
3 | ---
4 |
5 |
6 |
7 | {{ site.title | xml_escape }}
8 | {{ site.description | xml_escape }}
9 | {{ site.url }}{{ site.baseurl }}/
10 |
11 | {{ site.time | date_to_rfc822 }}
12 | {{ site.time | date_to_rfc822 }}
13 | Jekyll v{{ jekyll.version }}
14 | {% for post in site.posts limit:10 %}
15 | -
16 | {{ post.title | xml_escape }}
17 | {{ post.content | xml_escape }}
18 | {{ post.date | date_to_rfc822 }}
19 | {{ post.url | prepend: site.baseurl | prepend: site.url }}
20 | {{ post.url | prepend: site.baseurl | prepend: site.url }}
21 | {% for tag in post.tags %}
22 | {{ tag | xml_escape }}
23 | {% endfor %}
24 | {% for cat in post.categories %}
25 | {{ cat | xml_escape }}
26 | {% endfor %}
27 |
28 | {% endfor %}
29 |
30 |
31 |
--------------------------------------------------------------------------------
/images/AILabs_icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/images/JustCopy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/JustCopy.png
--------------------------------------------------------------------------------
/images/PTT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/PTT.png
--------------------------------------------------------------------------------
/images/cpnews_120x300.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/cpnews_120x300.png
--------------------------------------------------------------------------------
/images/cpnews_120x510.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/cpnews_120x510.png
--------------------------------------------------------------------------------
/images/cpnews_840x990.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/cpnews_840x990.png
--------------------------------------------------------------------------------
/images/create-gh-pages-branch.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/create-gh-pages-branch.JPG
--------------------------------------------------------------------------------
/images/delete-github-branch-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/delete-github-branch-2.png
--------------------------------------------------------------------------------
/images/delete-github-branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/delete-github-branch.png
--------------------------------------------------------------------------------
/images/down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/down.png
--------------------------------------------------------------------------------
/images/facebook.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/favicon.png
--------------------------------------------------------------------------------
/images/github.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/image-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/image-1.png
--------------------------------------------------------------------------------
/images/image-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/image-2.png
--------------------------------------------------------------------------------
/images/image-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/image-3.png
--------------------------------------------------------------------------------
/images/image-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/image-4.png
--------------------------------------------------------------------------------
/images/image-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/image-5.png
--------------------------------------------------------------------------------
/images/left.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/left.gif
--------------------------------------------------------------------------------
/images/quora.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/right.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/right.gif
--------------------------------------------------------------------------------
/images/twitter.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/up.png
--------------------------------------------------------------------------------
/images/webjeda-cards-jekyll-theme-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/webjeda-cards-jekyll-theme-1.png
--------------------------------------------------------------------------------
/images/webjeda-cards-responsive-jekyll-theme-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/webjeda-cards-responsive-jekyll-theme-2.png
--------------------------------------------------------------------------------
/images/webjeda-logo-big.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/coldsheepTW/JustCopy/4fe106f316dafc27b1469a7095ad2fa890e9bb15/images/webjeda-logo-big.jpg
--------------------------------------------------------------------------------
/images/webjeda.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | pagination:
4 | enabled: true
5 | sort_field: 'date'
6 | sort_reverse: true
7 | tags: Gossiping, NBA, Baseball, movie, KoreaStar, Beauty, Boy-Girl, WomenTalk, sex
8 | ---
9 |
10 |
11 |
12 |
13 | {% for post in paginator.posts %}
14 | {% if post.tags contains "sex" %}
15 | {% else %}
16 |
17 |
18 |
19 |
23 |
24 |
25 | {% if post.img %}
26 |

27 | {% else %}
28 |

29 | {% endif %}
30 |
31 |
32 |
33 |
36 |
37 |
{{post.push}}
38 |
{{post.boo}}
39 |
{{ post.date }}
40 |
41 |
42 |
43 | {% endif %}
44 | {% endfor %}
45 |
46 |
47 |
48 |
49 |
50 | {% if paginator.total_pages > 1 %}
51 |
84 | {% endif %}
85 |
86 |
87 |
88 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/intro.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |

7 |
17 |
18 |
--------------------------------------------------------------------------------
/js/bootstrap.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.3.6 (http://getbootstrap.com)
3 | * Copyright 2011-2015 Twitter, Inc.
4 | * Licensed under the MIT license
5 | */
6 | if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
--------------------------------------------------------------------------------
/js/layouts.js:
--------------------------------------------------------------------------------
1 | window.onload = layoutAdjust
2 |
3 | function layoutAdjust() {
4 | var img_containers = document.getElementsByClassName("img-container");
5 | var cw = img_containers[0].getBoundingClientRect().width;
6 | for ( var i = 0; i < img_containers.length; i++ ) {
7 | img_containers[i].style.height = cw + 'px';
8 | }
9 | /*
10 | var post_imgs = document.getElementsByClassName("post-img");
11 | for ( var i = 0; i < post_imgs.length; i++ ) {
12 | var eh = post_imgs[i].height;
13 | console.log(eh, cw);
14 | if ( eh < cw ) {
15 | post_imgs[i].style.marginTop = (cw - eh)/2 + 'px';
16 | }
17 | }
18 | */
19 | }
20 |
--------------------------------------------------------------------------------
/js/scroll_gallery.js:
--------------------------------------------------------------------------------
1 | /* ================================================================
2 | This copyright notice must be untouched at all times.
3 |
4 | The original version of this script and the associated (x)html
5 | is available at http://www.stunicholls/gallery/left_right_click.html
6 | Copyright (c) 2005-2007 Stu Nicholls. All rights reserved.
7 | This script and the associated (x)html may be modified in any
8 | way to fit your requirements.
9 | =================================================================== */
10 |
11 |
12 | clickMenu = function(gallery)
13 | {
14 | var getImg = document.getElementById("gallery").getElementsByTagName("IMG");
15 | var getLi = document.getElementById("gallery").getElementsByTagName("LI");
16 |
17 | for (var i=0; i0; x--) {
21 | if ((getLi[x].className.indexOf('chosen'))!=-1) {
22 | getLi[x].className=getLi[x].className.replace("chosen", "");
23 | x--;
24 | if (x>-1) {
25 | getLi[x].className+=" chosen";
26 | if (x>-1 && x6 && x=1){
34 | result="" + parseInt(monthC) + "月前";
35 | }
36 | else if(weekC>=1){
37 | result="" + parseInt(weekC) + "週前";
38 | }
39 | else if(dayC>=1){
40 | result=""+ parseInt(dayC) +"天前";
41 | }
42 | else if(hourC>=1){
43 | result=""+ parseInt(hourC) +"小時前";
44 | }
45 | else if(minC>=1){
46 | result=""+ parseInt(minC) +"分鐘前";
47 | }else
48 | result="剛剛";
49 | return result;
50 | }
51 |
--------------------------------------------------------------------------------
/open_source.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |

7 |
12 |
13 |
--------------------------------------------------------------------------------
/table-of-contents.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
7 |
Table of Contents
8 |
9 |
10 | {% for post in site.posts %}
11 | -
12 | • {{ post.date | date: "%B %-d, %Y" }} •
13 |
14 |
15 |
16 | {% endfor %}
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------