louie 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c4fd504af9d15ed1bf08f5737e2d41fac74a87dd
4
+ data.tar.gz: 682cd13bebcb5f13b4fccd2fff6484a1f051e931
5
+ SHA512:
6
+ metadata.gz: 7e3e6e18b7afdadd189676c6b132be4e21a97ec3be9e53eabce5725a163416f13ec39d6ada814535061b1a1dfeaa9da76d2605f2f2540e7ae493b409994f1fdf
7
+ data.tar.gz: 1cf9766eaca9b43f3c147b0dbc4a8fbc721a935a6804d09a42b88f55f053b3210504cb6dc5c3f0a2858a0d43c4271e014fc87cbbb6233b18559f1b3b16ca84fa
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016
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
13
+ all 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
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,89 @@
1
+ # Louie
2
+ A jekyll portfolio generator (that looks awesome). Louie is free, lightweight, and customizable as a blog, archive, or portfolio.
3
+
4
+ ## Installation
5
+ Add this line to your Jekyll site's Gemfile:
6
+
7
+ ```ruby
8
+ gem "louie"
9
+ ```
10
+
11
+ And add this line to your Jekyll site's `_config.yml`:
12
+
13
+ ```yaml
14
+ theme: louie
15
+ ```
16
+
17
+ And then execute:
18
+
19
+ $ bundle
20
+
21
+ Or install it yourself as:
22
+
23
+ $ gem install louie
24
+
25
+ ## Usage
26
+ ### Basic configurations
27
+ Here are a few general info fields to populate your new site right away.
28
+
29
+ ```yaml
30
+ title: HTML <title>, which is overridden by post/page title if exists
31
+ baseurl: ""
32
+ favicon: "/path/to"
33
+ g_analytics: UA-12345678-1
34
+
35
+ header: name of your site here
36
+ desc: >
37
+ description of your site, can be a quick bio if it's a portfolio
38
+ ```
39
+
40
+ ### Social media links
41
+ To add links to your social sites (linkedin, twitter, etc) below the bio, create a file named `social.yml` in your `_data` folder (which you may not have created yet). Inside it, follow the following format:
42
+
43
+ ```yaml
44
+ - title: Twitter
45
+ url: http://twitter.com/lllychen
46
+ - title: Github
47
+ url: http://github.com/lllychen/lou
48
+ # and so on...
49
+ ```
50
+
51
+ ### Column names
52
+ The names for each column is defaulted to `Title`, `Date`, and `Category`, respectively. However, this can be changed according to use cases. For instance, an archive of classic literature may need to adjust accordingly:
53
+
54
+ ```yaml
55
+ post_title: Story
56
+ post_date: Year
57
+ post_cat: Genre
58
+ ```
59
+
60
+ ### Date format
61
+ The default format for dates is `%b %-d, %Y`, which outputs `Jan 1, 2017`. However, you can customize it according to [this](http://jekyll.tips/jekyll-casts/date-formatting/#date) in `_config.yml` such as follows:
62
+
63
+ ```yaml
64
+ date_format: "%m/%d/%Y"
65
+ ```
66
+
67
+ ### Post variables
68
+ The following variables are required in the front matter for posts:
69
+
70
+ ```yaml
71
+ title: Berry Perfume
72
+ category: Narrative
73
+ img: [ url or path in directory ]
74
+ ```
75
+
76
+ ### Post pagination
77
+ To include previous and next links at the bottom of a post page, leave the following setting to `true`. Otherwise, change to `false`.
78
+
79
+ ```yaml
80
+ prev-next: true
81
+ ```
82
+
83
+ ## License
84
+ The theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
85
+
86
+ ## Credit
87
+ Stories created and collected by [Story Bytes](http://www.storybytes.com/view-length/0256-words/index-0256.html).
88
+
89
+ Images collected by [Unsplash](https://unsplash.com/)
@@ -0,0 +1,8 @@
1
+ <script>
2
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
3
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
4
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
5
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
6
+ ga('create', '{{ site.g_analytics }}', 'auto');
7
+ ga('send', 'pageview');
8
+ </script>
@@ -0,0 +1,20 @@
1
+ <head>
2
+ <meta charset="utf-8">
3
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
4
+ <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />
5
+
6
+ <title>{% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}</title>
7
+ <meta name="description" content="{{ page.excerpt | default: site.description | strip_html | normalize_whitespace | truncate: 160 | escape }}">
8
+
9
+ {% if site.favicon %}
10
+ <link rel="icon" href="{{ site.favicon | relative_url }}" />
11
+ {% endif %}
12
+
13
+ <link rel="stylesheet" href="{{ "/assets/main.css" | relative_url }}">
14
+ <link rel="canonical" href="{{ page.url | replace:'index.html','' | absolute_url }}">
15
+ <link rel="alternate" type="application/rss+xml" title="{{ site.title | escape }}" href="{{ "/feed.xml" | relative_url }}">
16
+
17
+ {% if jekyll.environment == 'production' and site.g_analytics %}
18
+ {% include g_analytics.html %}
19
+ {% endif %}
20
+ </head>
@@ -0,0 +1,15 @@
1
+ <div class="bio">
2
+ <div class="bio__header">
3
+ <a href="{{ site.url }}{{ "/" | relative_url }}">
4
+ {{ site.header }}
5
+ </a>
6
+ </div>
7
+ <div class="bio__desc">{{ site.desc }}</div>
8
+ {% if site.data.social %}
9
+ <ul class="bio__social">
10
+ {% for item in site.data.social %}
11
+ <li><a href="{{ item.url }}" target="_blank">{{ item.title }}</a></li>
12
+ {% endfor %}
13
+ </ul>
14
+ {% endif %}
15
+ </div>
@@ -0,0 +1,50 @@
1
+ {% if site.posts %}
2
+ <ul class="rows">
3
+ <li class="row__cols">
4
+ <div class="row__title">
5
+ {% if site.post_title %}
6
+ {{ site.post_title }}
7
+ {% else %}
8
+ Title
9
+ {% endif %}
10
+ </div>
11
+ <div class="row__date">
12
+ {% if site.post_date %}
13
+ {{ site.post_date }}
14
+ {% else %}
15
+ Date
16
+ {% endif %}
17
+ </div>
18
+ <div class="row__cat">
19
+ {% if site.post_cat %}
20
+ {{ site.post_cat }}
21
+ {% else %}
22
+ Category
23
+ {% endif %}
24
+ </div>
25
+ </li>
26
+ {% for post in site.posts %}
27
+ <li class="row__post">
28
+ <a href="{{ site.url }}{{ post.url | relative_url }}">
29
+ <div class="row__title {% if include.uid == post.id %}row__active{% endif %}">
30
+ {{ post.title }}
31
+ </div>
32
+ <div class="row__date {% if include.uid == post.id %}row__active{% endif %}">
33
+ {% if site.date_format %}
34
+ {{ post.date | date: site.date_format }}
35
+ {% else %}
36
+ {{ post.date | date: "%b %-d, %Y" }}
37
+ {% endif %}
38
+ </div>
39
+ <div class="row__cat {% if include.uid == post.id %}row__active{% endif %}">
40
+ {{ post.category }}
41
+ </div>
42
+ </a>
43
+
44
+ {% if post.img %}
45
+ <img class="row__img" src="{{ post.img }}" alt="{{ post.title }}">
46
+ {% endif %}
47
+ </li>
48
+ {% endfor %}
49
+ </ul>
50
+ {% endif %}
@@ -0,0 +1,12 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ page.lang | default: site.lang | default: "en" }}">
3
+ {% include head.html %}
4
+
5
+ <body>
6
+ <div class="container">
7
+ {% include header.html %}
8
+ {{ content }}
9
+ </div>
10
+ </body>
11
+
12
+ </html>
@@ -0,0 +1,47 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ page.lang | default: site.lang | default: "en" }}">
3
+ {% include head.html %}
4
+
5
+ <body>
6
+ <div class="post">
7
+ <div class="bio__header">
8
+ <a href="{{ site.url }}{{ "/" | relative_url }}">
9
+ {{ site.header }}
10
+ </a>
11
+ </div>
12
+
13
+ <div class="post__meta">
14
+ <div class="post__title">{{ page.title }}</div>
15
+ <div class="post__date">
16
+ {% if site.date_format %}
17
+ {{ page.date | date: site.date_format }}
18
+ {% else %}
19
+ {{ page.date | date: "%b %-d, %Y" }}
20
+ {% endif %}
21
+ </div>
22
+ <div class="post__cat">{{ page.category }}</div>
23
+ </div>
24
+
25
+ <div class="post__body">
26
+ {{ content }}
27
+ </div>
28
+
29
+ {% if site.prev-next %}
30
+ <div class="post__paginate">
31
+ {% if page.previous.url %}
32
+ <a class="post__paginate-left" href="{{ site.url }}{{ page.previous.url | relative_url }}">&xlarr; {{ page.previous.title }}</a>
33
+ {% endif %}
34
+
35
+ {% if page.next.url %}
36
+ <a class="post__paginate-right" href="{{ site.url }}{{ page.next.url | relative_url }}">{{ page.next.title }} &xrarr;</a>
37
+ {% endif %}
38
+ </div>
39
+ {% endif %}
40
+ </div>
41
+
42
+ <div class="container">
43
+ {% include posts_list.html uid=page.id %}
44
+ </div>
45
+ </body>
46
+
47
+ </html>
data/_sass/base.scss ADDED
@@ -0,0 +1,95 @@
1
+ // Our variables
2
+ @import url('https://fonts.googleapis.com/css?family=Inconsolata:400,700');
3
+
4
+ $on-palm: 600px !default;
5
+ $on-laptop: 800px !default;
6
+
7
+ // typography
8
+ $inconsolata: 'Inconsolata', monospace;
9
+ $font__size: 14px;
10
+ $font__weight: 400;
11
+ $font__line-height: 1.5;
12
+
13
+ // colors
14
+ $color__black: #000000;
15
+ $color__gray: #888888;
16
+ $color__beige: #f8f8f1;
17
+ $color__yellow: #fefeca;
18
+
19
+ @mixin media-query($device) {
20
+ @media screen and (max-width: $device) {
21
+ @content;
22
+ }
23
+ }
24
+
25
+ // elements
26
+ * {
27
+ box-sizing: border-box;
28
+ }
29
+
30
+ ::selection {
31
+ background: $color__yellow;
32
+ }
33
+
34
+ ::-moz-selection {
35
+ background: $color__yellow;
36
+ }
37
+
38
+ hr {
39
+ color: $color__black;
40
+ background-color: $color__black;
41
+ }
42
+
43
+ a {
44
+ // display: block;
45
+ // width: 100%;
46
+ // height: 100%;
47
+ color: $color__black;
48
+ text-decoration: underline;
49
+
50
+ &:hover {
51
+ color: $color__black;
52
+ }
53
+ }
54
+
55
+ // layout
56
+ html {
57
+ overflow-y: scroll;
58
+ }
59
+
60
+ body {
61
+ width: 100%;
62
+ margin: 120px 0 50px;
63
+ padding: 0;
64
+ background: $color__beige;
65
+ font-family: $inconsolata;
66
+ font-size: $font__size;
67
+ font-weight: $font__weight;
68
+ line-height: $font__line-height;
69
+ }
70
+
71
+ .container {
72
+ max-width: 1200px;
73
+ margin: 0 120px;
74
+ }
75
+
76
+ // media queries
77
+ @include media-query($on-laptop) {
78
+ body {
79
+ margin: 50px 0 25px;
80
+ }
81
+
82
+ .container {
83
+ margin: 0 50px;
84
+ }
85
+ }
86
+
87
+ @include media-query($on-laptop) {
88
+ body {
89
+ margin: 25px 0;
90
+ }
91
+
92
+ .container {
93
+ margin: 0 25px;
94
+ }
95
+ }
data/_sass/bio.scss ADDED
@@ -0,0 +1,24 @@
1
+ .bio {
2
+ max-width: 500px;
3
+ margin-bottom: 50px;
4
+ }
5
+
6
+ .bio__header {
7
+ margin-bottom: 20px;
8
+ font-weight: 700;
9
+
10
+ a {
11
+ text-decoration: none;
12
+
13
+ &:hover {
14
+ text-decoration: none;
15
+ }
16
+ }
17
+ }
18
+
19
+ .bio__social {
20
+ margin: 0;
21
+ margin-top: 10px;
22
+ padding: 0;
23
+ list-style: none;
24
+ }
data/_sass/post.scss ADDED
@@ -0,0 +1,61 @@
1
+ .post {
2
+ @extend .container;
3
+ }
4
+
5
+ .post__meta,
6
+ .post__paginate,
7
+ .post__body {
8
+ min-width: 500px;
9
+ width: 50%;
10
+ }
11
+
12
+ .post__meta {
13
+ margin: 30px 0 20px;
14
+ border-bottom: 1px solid $color__black;
15
+ overflow: hidden;
16
+ font-weight: 700;
17
+ }
18
+
19
+ .post__paginate {
20
+ overflow: hidden;
21
+
22
+ a {
23
+ display: block;
24
+ width: 50%;
25
+ }
26
+ }
27
+
28
+ .post__paginate-left {
29
+ float: left;
30
+ }
31
+
32
+ .post__paginate-right {
33
+ float: right;
34
+ text-align: right;
35
+ }
36
+
37
+ .post__title {
38
+ @extend .row__title;
39
+ }
40
+
41
+ .post__date {
42
+ @extend .row__date;
43
+ }
44
+
45
+ .post__cat {
46
+ @extend .row__cat;
47
+ }
48
+
49
+ .post__body {
50
+ padding-bottom: 20px;
51
+ border-bottom: 1px solid $color__black;
52
+ }
53
+
54
+ // media queries
55
+ @include media-query($on-laptop) {
56
+ .post__meta,
57
+ .post__body,
58
+ .post__paginate {
59
+ width: 100%;
60
+ }
61
+ }
data/_sass/rows.scss ADDED
@@ -0,0 +1,119 @@
1
+ .rows {
2
+ position: relative;
3
+ width: 100%;
4
+ margin: 0;
5
+ margin-top: 50px;
6
+ padding: 0;
7
+ list-style: none;
8
+ }
9
+
10
+ .row__img {
11
+ display: none;
12
+ position: absolute;
13
+ max-width: 500px;
14
+ max-height: 500px;
15
+ top: random(250) - random(250) + px;
16
+ left: random(500) + px;
17
+ z-index: -1;
18
+ opacity: 0;
19
+ transition: opacity 500ms;
20
+ }
21
+
22
+ .row__cols {
23
+ font-weight: 700;
24
+ overflow: hidden;
25
+ }
26
+
27
+ .row__post {
28
+ width: 100%;
29
+ overflow: hidden;
30
+
31
+ &:hover {
32
+ * {
33
+ text-decoration: underline;
34
+ cursor: pointer;
35
+ }
36
+
37
+ .row__active {
38
+ text-decoration: line-through;
39
+ }
40
+
41
+ .row__img {
42
+ display: block;
43
+ opacity: 0.5;
44
+ }
45
+ }
46
+
47
+ &:nth-child(2n) .row__img {
48
+ top: random(250) - random(250) + px;
49
+ left: random(500) + px;
50
+ }
51
+
52
+ &:nth-child(3n) .row__img {
53
+ top: random(250) - random(250) + px;
54
+ left: random(500) + px;
55
+ }
56
+
57
+ &:nth-child(4n) .row__img {
58
+ top: random(250) - random(250) + px;
59
+ left: random(500) + px;
60
+ }
61
+
62
+ &:nth-child(5n) .row__img {
63
+ top: random(250) - random(250) + px;
64
+ left: random(500) + px;
65
+ }
66
+ }
67
+
68
+ .row__title,
69
+ .row__date,
70
+ .row__cat {
71
+ float: left;
72
+ }
73
+
74
+ .row__title {
75
+ width: 50%;
76
+ }
77
+
78
+ .row__date,
79
+ .row__cat {
80
+ width: 25%;
81
+ }
82
+
83
+ .row__body {
84
+ margin: 20px 0;
85
+ }
86
+
87
+ // behaviors
88
+ .row__active {
89
+ text-decoration: line-through;
90
+ }
91
+
92
+ // media queries
93
+ @include media-query($on-palm) {
94
+ .row__cols,
95
+ .row__post {
96
+ display: block;
97
+ margin-bottom: 10px;
98
+ }
99
+
100
+ .row__title {
101
+ width: 100%;
102
+ }
103
+
104
+ .row__date,
105
+ .row__cat {
106
+ width: auto;
107
+ }
108
+
109
+ .row__cat {
110
+ position: relative;
111
+ margin-left: 10px;
112
+
113
+ &:before {
114
+ position: absolute;
115
+ content: '|';
116
+ left: -9px;
117
+ }
118
+ }
119
+ }
data/assets/main.scss ADDED
@@ -0,0 +1,10 @@
1
+ ---
2
+ ---
3
+ @charset "utf-8";
4
+
5
+ @import
6
+ 'base',
7
+ 'bio',
8
+ 'rows',
9
+ 'post'
10
+ ;
Binary file
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: louie
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Lillian Chen
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-01-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.12'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.12'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ description:
56
+ email:
57
+ - lilyc5459@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - LICENSE.txt
63
+ - README.md
64
+ - _includes/g_analytics.html
65
+ - _includes/head.html
66
+ - _includes/header.html
67
+ - _includes/posts_list.html
68
+ - _layouts/default.html
69
+ - _layouts/post.html
70
+ - _sass/base.scss
71
+ - _sass/bio.scss
72
+ - _sass/post.scss
73
+ - _sass/rows.scss
74
+ - assets/main.scss
75
+ - assets/sample/ico.png
76
+ homepage: http://lillian-chen.com/louie/
77
+ licenses:
78
+ - MIT
79
+ metadata: {}
80
+ post_install_message:
81
+ rdoc_options: []
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ requirements: []
95
+ rubyforge_project:
96
+ rubygems_version: 2.6.8
97
+ signing_key:
98
+ specification_version: 4
99
+ summary: A Jekyll theme (that looks awesome). Louie is free, lightweight, and customizable
100
+ as a blog, archive, or portfolio.
101
+ test_files: []