-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
fe796df
commit a3e4d29
Showing
19 changed files
with
1,017 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
module ReadingTimeFilter | ||
include Liquid::StandardFilters | ||
|
||
def reading_time(input) | ||
# Get words count. | ||
total_words = get_plain_text(input).split.size | ||
|
||
# Load configuration. | ||
config = @context.registers[:site].config["reading_time"] | ||
|
||
# Setup default value. | ||
if ! config | ||
second_plural = "seconds" | ||
minute_singular = "minute" | ||
minute_plural = "minutes" | ||
else | ||
second_plural = config["second_plural"] ? config["second_plural"] : "seconds" | ||
minute_singular = config["minute_singular"] ? config["minute_singular"] : "minute" | ||
minute_plural = config["minute_plural"] ? config["minute_plural"] : "minutes" | ||
end | ||
|
||
# Average reading words per minute. | ||
words_per_minute = 180 | ||
|
||
# Calculate reading time. | ||
case total_words | ||
when 0 .. 89 | ||
return "30 #{second_plural}" | ||
when 90 .. 269 | ||
return "1 #{minute_singular}" | ||
when 270 .. 449 | ||
return "2 #{minute_plural}" | ||
when 450 .. 629 | ||
return "3 #{minute_plural}" | ||
when 630 .. 809 | ||
return "4 #{minute_plural}" | ||
when 810 .. 990 | ||
return "5 #{minute_plural}" | ||
else | ||
minutes = ( total_words / words_per_minute ).floor | ||
return "#{minutes} #{minute_plural}"; | ||
end | ||
end | ||
|
||
def get_plain_text(input) | ||
strip_html(strip_pre_tags(input)) | ||
end | ||
|
||
def strip_pre_tags(input) | ||
empty = ''.freeze | ||
input.to_s.gsub(/<pre(?:(?!<\/pre).|\s)*<\/pre>/mi, empty) | ||
end | ||
end | ||
|
||
Liquid::Template.register_filter(ReadingTimeFilter) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,261 @@ | ||
.highlight, html .gist .gist-file .gist-syntax .gist-highlight { | ||
table td.code { width: 100%; } | ||
border: 1px solid $pre-border !important; | ||
} | ||
.highlight .line-numbers, html .gist .gist-file .gist-syntax .highlight .line_numbers { | ||
text-align: right; | ||
font-size: 13px; | ||
line-height: 1.45em; | ||
@if $solarized == light { | ||
background: lighten($base03, 1) $noise-bg !important; | ||
border-right: 1px solid darken($base02, 2) !important; | ||
@include box-shadow(lighten($base03, 2) -1px 0 inset); | ||
text-shadow: lighten($base02, 2) 0 -1px; | ||
} @else { | ||
background: $base02 $noise-bg !important; | ||
border-right: 1px solid darken($base03, 2) !important; | ||
@include box-shadow(lighten($base02, 2) -1px 0 inset); | ||
text-shadow: darken($base02, 10) 0 -1px; | ||
} | ||
span { color: $base01 !important; } | ||
padding: .8em !important; | ||
@include border-radius(0); | ||
} | ||
|
||
figure.code, .gist-file, pre { | ||
@include box-shadow(rgba(#000, .06) 0 0 10px); | ||
.highlight pre { @include box-shadow(none); } | ||
} | ||
|
||
.gist .highlight, figure.code .highlight { | ||
@include selection(adjust-color($base03, $lightness: 23%, $saturation: -65%), $text-shadow: $base03 0 1px); | ||
} | ||
html .gist .gist-file { | ||
margin-bottom: 1.8em; | ||
position: relative; | ||
border: none; | ||
padding-top: image-height("code_bg.png") !important; | ||
.highlight { | ||
margin-bottom: 0; | ||
} | ||
.gist-syntax { | ||
border-bottom: 0 !important; | ||
background: none !important; | ||
.gist-highlight { | ||
background: $base03 !important; | ||
} | ||
.highlight pre { | ||
@extend .pre-code; | ||
padding: 0; | ||
} | ||
} | ||
.gist-meta { | ||
padding: .6em 0.8em; | ||
border: 1px solid lighten($base02, 2) !important; | ||
color: $base01; | ||
font-size: .7em !important; | ||
@if $solarized == light { | ||
background: lighten($base03, 2) $noise-bg; | ||
border: 1px solid $pre-border !important; | ||
border-top: 1px solid lighten($base03, 2) !important; | ||
} @else { | ||
background: $base02 $noise-bg; | ||
} | ||
@extend .sans; | ||
line-height: 1.5em; | ||
a { | ||
color: mix($base1, $base01) !important; | ||
@include hover-link; | ||
&:hover { color: $base1 !important; } | ||
} | ||
a[href*='#file'] { | ||
position: absolute; top: 0; left:0; right:-10px; | ||
color: #474747 !important; | ||
@extend .code-title; | ||
&:hover { color: $link-color !important; } | ||
} | ||
a[href*=raw]{ | ||
@extend .download-source; | ||
top: .4em; | ||
} | ||
} | ||
} | ||
pre { | ||
background: $pre-bg $noise-bg; | ||
@include border-radius(.4em); | ||
@extend .mono; | ||
border: 1px solid $pre-border; | ||
line-height: 1.45em; | ||
font-size: 13px; | ||
margin-bottom: 2.1em; | ||
padding: .8em 1em; | ||
color: $pre-color; | ||
overflow: auto; | ||
} | ||
h3.filename { | ||
@extend .code-title; | ||
+ pre { @include border-top-radius(0px); } | ||
} | ||
|
||
p, li { | ||
code { | ||
@extend .mono; | ||
display: inline-block; | ||
white-space: no-wrap; | ||
background: #fff; | ||
font-size: .8em; | ||
line-height: 1.5em; | ||
color: #555; | ||
border: 1px solid #ddd; | ||
@include border-radius(.4em); | ||
padding: 0 .3em; | ||
margin: -1px 0; | ||
} | ||
pre code { font-size: 1em !important; background: none; border: none; } | ||
} | ||
|
||
.pre-code { | ||
font-family: $mono !important; | ||
overflow: scroll; | ||
overflow-y: hidden; | ||
display: block; | ||
padding: .8em; | ||
overflow-x: auto; | ||
line-height: 1.45em; | ||
background: $base03 $noise-bg !important; | ||
color: $base1 !important; | ||
span { color: $base1 !important; } | ||
span { font-style: normal !important; font-weight: normal !important; } | ||
|
||
.c { color: $base01 !important; font-style: italic !important; } /* Comment */ | ||
.cm { color: $base01 !important; font-style: italic !important; } /* Comment.Multiline */ | ||
.cp { color: $base01 !important; font-style: italic !important; } /* Comment.Preproc */ | ||
.c1 { color: $base01 !important; font-style: italic !important; } /* Comment.Single */ | ||
.cs { color: $base01 !important; font-weight: bold !important; font-style: italic !important; } /* Comment.Special */ | ||
.err { color: $solar-red !important; background: none !important; } /* Error */ | ||
.k { color: $solar-orange !important; } /* Keyword */ | ||
.o { color: $base1 !important; font-weight: bold !important; } /* Operator */ | ||
.p { color: $base1 !important; } /* Operator */ | ||
.ow { color: $solar-cyan !important; font-weight: bold !important; } /* Operator.Word */ | ||
.gd { color: $base1 !important; background-color: mix($solar-red, $base03, 25%) !important; display: inline-block; } /* Generic.Deleted */ | ||
.gd .x { color: $base1 !important; background-color: mix($solar-red, $base03, 35%) !important; display: inline-block; } /* Generic.Deleted.Specific */ | ||
.ge { color: $base1 !important; font-style: italic !important; } /* Generic.Emph */ | ||
//.gr { color: #aa0000 } /* Generic.Error */ | ||
.gh { color: $base01 !important; } /* Generic.Heading */ | ||
.gi { color: $base1 !important; background-color: mix($solar-green, $base03, 20%) !important; display: inline-block; } /* Generic.Inserted */ | ||
.gi .x { color: $base1 !important; background-color: mix($solar-green, $base03, 40%) !important; display: inline-block; } /* Generic.Inserted.Specific */ | ||
//.go { color: #888888 } /* Generic.Output */ | ||
//.gp { color: #555555 } /* Generic.Prompt */ | ||
.gs { color: $base1 !important; font-weight: bold !important; } /* Generic.Strong */ | ||
.gu { color: $solar-violet !important; } /* Generic.Subheading */ | ||
//.gt { color: #aa0000 } /* Generic.Traceback */ | ||
.kc { color: $solar-green !important; font-weight: bold !important; } /* Keyword.Constant */ | ||
.kd { color: $solar-blue !important; } /* Keyword.Declaration */ | ||
.kp { color: $solar-orange !important; font-weight: bold !important; } /* Keyword.Pseudo */ | ||
.kr { color: $solar-magenta !important; font-weight: bold !important; } /* Keyword.Reserved */ | ||
.kt { color: $solar-cyan !important; } /* Keyword.Type */ | ||
.n { color: $solar-blue !important; } | ||
.na { color: $solar-blue !important; } /* Name.Attribute */ | ||
.nb { color: $solar-green !important; } /* Name.Builtin */ | ||
.nc { color: $solar-magenta !important;} /* Name.Class */ | ||
.no { color: $solar-yellow !important; } /* Name.Constant */ | ||
//.ni { color: #800080 } /* Name.Entity */ | ||
.nl { color: $solar-green !important; } | ||
.ne { color: $solar-blue !important; font-weight: bold !important; } /* Name.Exception */ | ||
.nf { color: $solar-blue !important; font-weight: bold !important; } /* Name.Function */ | ||
.nn { color: $solar-yellow !important; } /* Name.Namespace */ | ||
.nt { color: $solar-blue !important; font-weight: bold !important; } /* Name.Tag */ | ||
.nx { color: $solar-yellow !Important; } | ||
//.bp { color: #999999 } /* Name.Builtin.Pseudo */ | ||
//.vc { color: #008080 } /* Name.Variable.Class */ | ||
.vg { color: $solar-blue !important; } /* Name.Variable.Global */ | ||
.vi { color: $solar-blue !important; } /* Name.Variable.Instance */ | ||
.nv { color: $solar-blue !important; } /* Name.Variable */ | ||
//.w { color: #bbbbbb } /* Text.Whitespace */ | ||
.mf { color: $solar-cyan !important; } /* Literal.Number.Float */ | ||
.m { color: $solar-cyan !important; } /* Literal.Number */ | ||
.mh { color: $solar-cyan !important; } /* Literal.Number.Hex */ | ||
.mi { color: $solar-cyan !important; } /* Literal.Number.Integer */ | ||
//.mo { color: #009999 } /* Literal.Number.Oct */ | ||
.s { color: $solar-cyan !important; } /* Literal.String */ | ||
//.sb { color: #d14 } /* Literal.String.Backtick */ | ||
//.sc { color: #d14 } /* Literal.String.Char */ | ||
.sd { color: $solar-cyan !important; } /* Literal.String.Doc */ | ||
.s2 { color: $solar-cyan !important; } /* Literal.String.Double */ | ||
.se { color: $solar-red !important; } /* Literal.String.Escape */ | ||
//.sh { color: #d14 } /* Literal.String.Heredoc */ | ||
.si { color: $solar-blue !important; } /* Literal.String.Interpol */ | ||
//.sx { color: #d14 } /* Literal.String.Other */ | ||
.sr { color: $solar-cyan !important; } /* Literal.String.Regex */ | ||
.s1 { color: $solar-cyan !important; } /* Literal.String.Single */ | ||
//.ss { color: #990073 } /* Literal.String.Symbol */ | ||
//.il { color: #009999 } /* Literal.Number.Integer.Long */ | ||
div { .gd, .gd .x, .gi, .gi .x { display: inline-block; width: 100%; }} | ||
} | ||
|
||
.highlight, .gist-highlight { | ||
pre { background: none; @include border-radius(0px); border: none; padding: 0; margin-bottom: 0; } | ||
margin-bottom: 1.8em; | ||
background: $base03; | ||
overflow-y: hidden; | ||
overflow-x: auto; | ||
} | ||
|
||
$solar-scroll-bg: rgba(#fff, .15); | ||
$solar-scroll-thumb: rgba(#fff, .2); | ||
@if $solarized == light { | ||
$solar-scroll-bg: rgba(#000, .15); | ||
$solar-scroll-thumb: rgba(#000, .15); | ||
} | ||
|
||
pre, .highlight, .gist-highlight { | ||
&::-webkit-scrollbar { height: .5em; background: $solar-scroll-bg; } | ||
&::-webkit-scrollbar-thumb:horizontal { background: $solar-scroll-thumb; -webkit-border-radius: 4px; border-radius: 4px } | ||
} | ||
|
||
.highlight code { | ||
@extend .pre-code; background: #000; | ||
} | ||
figure.code { | ||
background: none; | ||
padding: 0; | ||
border: 0; | ||
margin-bottom: 1.5em; | ||
pre { margin-bottom: 0; } | ||
figcaption { | ||
position: relative; | ||
@extend .code-title; | ||
a { @extend .download-source; } | ||
} | ||
.highlight { | ||
margin-bottom: 0; | ||
} | ||
} | ||
|
||
.code-title { | ||
text-align: center; | ||
font-size: 13px; | ||
line-height: 2em; | ||
text-shadow: #cbcccc 0 1px 0; | ||
color: #474747; | ||
font-weight: normal; | ||
margin-bottom: 0; | ||
@include border-top-radius(5px); | ||
font-family: "Helvetica Neue", Arial, "Lucida Grande", "Lucida Sans Unicode", Lucida, sans-serif; | ||
background: #aaaaaa image-url("code_bg.png") top repeat-x; | ||
border: 1px solid #565656; | ||
border-top-color: #cbcbcb; | ||
border-left-color: #a5a5a5; | ||
border-right-color: #a5a5a5; | ||
border-bottom: 0; | ||
} | ||
|
||
.download-source { | ||
position: absolute; right: .8em; | ||
@include hover-link; | ||
color: #666 !important; | ||
z-index: 1; | ||
font-size: 13px; | ||
text-shadow: #cbcccc 0 1px 0; | ||
padding-left: 3em; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
@import 'components/header.css'; | ||
@import 'components/hero.css'; | ||
@import 'components/button.css'; | ||
@import 'components/button.css'; | ||
@import 'components/card.css'; | ||
@import 'components/toc.css'; |
Oops, something went wrong.