-------------------------------------------------------------------------------- /_includes/layouts/all.njk: -------------------------------------------------------------------------------- 1 | {% include "head.njk" %} 2 | {% include "header.njk" %} 3 | 4 |

Highlights from all books

5 | 6 | 7 | {% for post in posts %} 8 | {% set individualPost = false %} 9 | {% include "post-contents.njk" %} 10 | {% endfor %} 11 | 12 | {% include "pagination.njk" %} 13 | {% include "footer.njk" %} -------------------------------------------------------------------------------- /_includes/layouts/default.njk: -------------------------------------------------------------------------------- 1 | {% include "head.njk" %} 2 | {% include "header.njk" %} 3 | 4 | {{ content | safe}} 5 | 6 | {% include "footer.njk" %} -------------------------------------------------------------------------------- /_includes/layouts/error.njk: -------------------------------------------------------------------------------- 1 | {% include "head.njk" %} 2 | {% include "header.njk" %} 3 | 4 |

{{ title }}

5 | 6 |
{{ content | safe }}
7 | 8 | {% include "footer.njk" %} -------------------------------------------------------------------------------- /_includes/layouts/home.njk: -------------------------------------------------------------------------------- 1 | {% include "head.njk" %} 2 | {% include "header.njk" %} 3 | 4 |

Explore all books

5 | 6 | 18 | 19 | {% include "pagination.njk" %} 20 | {% include "footer.njk" %} -------------------------------------------------------------------------------- /_includes/layouts/post.njk: -------------------------------------------------------------------------------- 1 | --- 2 | layout: layouts/default 3 | --- 4 | 5 | {% set individualPost = true %} 6 | {% include "post-contents.njk" %} -------------------------------------------------------------------------------- /_includes/pagination.njk: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/post-contents.njk: -------------------------------------------------------------------------------- 1 | {% if individualPost %} 2 | {% set current_book = book %} 3 | {% set current_book_url = url %} 4 | {% set current_book_title = title %} 5 | {% set current_book_author = author %} 6 | {% set current_spoilers = spoilers %} 7 | {% set current_content_warnings = content_warnings %} 8 | {% set current_bookshop_id = bookshop_id %} 9 | {% else %} 10 | {% set current_book = post.data.book %} 11 | {% set current_book_url = post.url %} 12 | {% set current_book_title = post.data.title %} 13 | {% set current_book_author = post.data.author %} 14 | {% set current_spoilers = post.data.spoilers %} 15 | {% set current_content_warnings = post.data.content_warnings %} 16 | {% set current_bookshop_id = post.data.bookshop_id %} 17 | {% endif %} 18 | 19 | {% set current_book_cover = '/assets/images/covers/' + current_book + '.jpg' %} 20 | 21 |
22 |
23 | {% if individualPost %} 24 |

Highlights from {{ current_book_title }} by {{ current_book_author }}

25 | {% else %} 26 |

{{ current_book_title }} by {{ current_book_author }}

27 | {% endif %} 28 |
29 | Cover of {{ current_book_title }} 30 |
31 | {% if current_bookshop_id %} 32 | Buy {% if not individualPost %}“{{ current_book_title }}” {% endif %}on Bookshop 33 | {% endif %} 34 |
35 | 36 |
37 | {% if individualPost %} 38 |

Highlights from this book

39 | {% endif %} 40 | {% if (current_spoilers == true) or (current_content_warnings) %} 41 |

42 | 45 | {% if current_spoilers == true %} 46 | Contains spoilers{% if current_content_warnings %}. {% endif %} 47 | {% endif %} 48 | {% if current_content_warnings %} 49 | Content warning: {{ current_content_warnings }} 50 | {% endif %} 51 |

52 | {% endif %} 53 |
    54 | {% for highlight in books[current_book] %} 55 | {% set highlight_perma = highlight.text | lower | urlencode | replace("%20", "+") | truncate(15, true, "") %} 56 |
  • 57 |

    {{ highlight.text }}

    58 | {% if highlight.attribution %} — {{ highlight.attribution}}{% endif %} 59 | 69 |
  • 70 | {% endfor %} 71 |
72 |
-------------------------------------------------------------------------------- /all.njk: -------------------------------------------------------------------------------- 1 | --- 2 | layout: layouts/all.njk 3 | title: All highlights 4 | nav: true 5 | order: 2 6 | pagination: 7 | data: collections.posts 8 | size: 10 9 | reverse: true 10 | alias: posts 11 | permalink: /all/{% if pagination.pageNumber > 0 %}page{{ pagination.pageNumber + 1 }}/{% endif %} 12 | --- -------------------------------------------------------------------------------- /assets/_sass/all-page.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * "ALL" PAGE 3 | * --------------------------------------------- 4 | */ 5 | 6 | .pagination { 7 | margin-bottom: 3em; 8 | text-align: center; 9 | } 10 | 11 | .pagination__older, 12 | .pagination__newer { 13 | display: inline-block; 14 | margin: 0 1em; 15 | opacity: .5; 16 | transition: opacity 200ms; 17 | 18 | &:hover { 19 | opacity: 1; 20 | } 21 | } -------------------------------------------------------------------------------- /assets/_sass/book.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * book (A BOOK OR GROUP OF ARTICLES) 3 | * --------------------------------------------- 4 | */ 5 | 6 | .book { 7 | margin-bottom: 3em; 8 | } 9 | 10 | .book + .book { 11 | border-top: 3px double $color-border; 12 | padding-top: $margin-m; 13 | } 14 | 15 | .book__info { 16 | margin: 0 auto $margin-l; 17 | width: 12.5em; 18 | text-align: center; 19 | } 20 | 21 | .book__title { 22 | margin-bottom: $margin-s; 23 | font: 1.166em/1.2 $font-secondary; 24 | } 25 | 26 | .book__title-small, 27 | .highlight__meta, 28 | .warnings-note { 29 | color: $color-secondary; 30 | font: .75em/1.2 $font-body; 31 | @include all-caps(); 32 | } 33 | 34 | .book__title-small { 35 | display: block; 36 | margin-bottom: 1em; 37 | } 38 | 39 | .book__image { 40 | display: inline-block; 41 | margin: 0 auto $margin-xs; 42 | background-repeat: no-repeat; 43 | background-position: 0 0; 44 | background-size: 100% auto; 45 | } 46 | 47 | a.book__image { 48 | opacity: .75; 49 | transition: opacity 400ms; 50 | 51 | svg { 52 | opacity: 0; 53 | } 54 | 55 | &:hover { 56 | opacity: 1; 57 | } 58 | } 59 | 60 | a.book__buy { 61 | border-bottom: 1px solid; 62 | font-family: $font-secondary; 63 | font-size: 1rem; 64 | 65 | &:hover { 66 | background-color: #fff; 67 | color: #000; 68 | } 69 | } 70 | 71 | @media (hover) { 72 | a.book__image { 73 | svg { 74 | opacity: 1; 75 | transition: opacity 400ms; 76 | } 77 | 78 | &:hover, 79 | &:focus { 80 | svg { 81 | opacity: 0; 82 | } 83 | } 84 | } 85 | } 86 | 87 | .highlights-wrap { 88 | padding-top: 1.25em; 89 | border-top: 1px solid $color-border; 90 | max-width: 40em; 91 | } 92 | 93 | .warnings-note { 94 | margin-bottom: $margin-m; 95 | font-size: 1em; 96 | } 97 | 98 | .warnings-note__icon { 99 | display: inline-block; 100 | vertical-align: middle; 101 | margin-right: .25em; 102 | } 103 | 104 | .highlight { 105 | margin-bottom: $margin-m; 106 | scroll-margin-top: $margin-m; 107 | 108 | &:last-child { 109 | margin-bottom: 0; 110 | } 111 | } 112 | 113 | .highlight__attribution { 114 | display: block; 115 | margin: .5em 0; 116 | @include all-caps(); 117 | font-size: .875em; 118 | font-style: normal; 119 | } 120 | 121 | .highlight__location { 122 | vertical-align: middle; 123 | } 124 | 125 | .highlight__link { 126 | @include all-caps(); 127 | display: inline-block; 128 | vertical-align: middle; 129 | position: relative; 130 | margin-left: 1em; 131 | padding: .5em .5em .5em 36px; 132 | font: 1em/20px $font-body; 133 | opacity: .5; 134 | transition: opacity 200ms; 135 | 136 | svg { 137 | position: absolute; 138 | left: 0; 139 | } 140 | 141 | span { 142 | transition: opacity 200ms; 143 | opacity: 0; 144 | } 145 | 146 | &:hover, 147 | &:active, 148 | &:focus { 149 | opacity: 1; 150 | 151 | span { 152 | opacity: .75; 153 | } 154 | } 155 | } 156 | 157 | .highlight--active { 158 | .highlight__text span { 159 | position: relative; 160 | z-index: 1; 161 | vertical-align: middle; 162 | padding: .125em .25em; 163 | background: #ebebeb; 164 | color: #2b2b2b; 165 | line-height: 1.6; 166 | } 167 | } 168 | 169 | .btn--clear { 170 | position: relative; 171 | z-index: 2; 172 | border: 1px solid transparent; 173 | border-radius: 0; 174 | padding: .5em; 175 | 176 | &::after { 177 | display: block; 178 | content: ""; 179 | position: absolute; 180 | top: 50%; 181 | left: 50%; 182 | transform: translate(-50%,-50%); 183 | width: 2.75rem; 184 | height: 2.75rem; 185 | } 186 | 187 | &:hover { 188 | border-color: #fff; 189 | } 190 | 191 | &:active { 192 | background-color: rgba(255,255,255,.5); 193 | } 194 | } 195 | 196 | @media (min-width: $bp-s) { 197 | .page-wrap { 198 | text-align: center; 199 | } 200 | 201 | .book { 202 | display: inline-block; 203 | margin-right: auto; 204 | margin-left: auto; 205 | } 206 | 207 | .book + .book { 208 | padding-top: 0; 209 | border-top: 0; 210 | } 211 | 212 | .book__title-small { 213 | font-size: .66em; 214 | } 215 | 216 | .book__info { 217 | float: left; 218 | top: 2em; 219 | position: -webkit-sticky; 220 | position: sticky; 221 | margin-right: 3em; 222 | width: 200px; 223 | } 224 | 225 | .highlights-wrap { 226 | padding-top: 0; 227 | border-top: 0; 228 | width: auto; 229 | overflow: hidden; 230 | text-align: left; 231 | } 232 | } 233 | 234 | @media (min-width: $bp-l) { 235 | .book { 236 | margin-bottom: 5em; 237 | } 238 | 239 | .highlight { 240 | margin-bottom: $margin-l; 241 | } 242 | } 243 | 244 | @media (min-width: $bp-xl) { 245 | .book__info { 246 | margin-right: 5em; 247 | } 248 | } 249 | 250 | @media (min-width: $bp-xxl) { 251 | .book__info { 252 | width: 280px; 253 | } 254 | } -------------------------------------------------------------------------------- /assets/_sass/error.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * ERROR PAGES 3 | * --------------------------------------------- 4 | */ 5 | 6 | .error-msg { 7 | margin: 2em auto 0; 8 | max-width: 24em; 9 | 10 | a:link, a:visited { 11 | border-bottom: 1px solid; 12 | } 13 | 14 | a:hover { 15 | border-bottom-style: dashed; 16 | } 17 | } -------------------------------------------------------------------------------- /assets/_sass/global.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * BASICS 3 | * --------------------------------------------- 4 | */ 5 | 6 | * { 7 | margin: 0; 8 | padding: 0; 9 | box-sizing: border-box; 10 | } 11 | 12 | body { 13 | display: flex; 14 | flex-direction: column; 15 | min-height: 100vh; 16 | padding: 2em; 17 | font: 400 100%/1.4 $font-body; 18 | color: $color-body; 19 | background: $color-bg; 20 | } 21 | 22 | main { 23 | flex: 1; 24 | } 25 | 26 | :focus { 27 | outline: 1px dotted #fff; 28 | outline-offset: 1px; 29 | } 30 | 31 | ::selection { 32 | background: #fff; 33 | color: #000; 34 | } 35 | 36 | ::-moz-selection { 37 | background: #fff; 38 | color: #000; 39 | } 40 | 41 | a:link, a:visited { 42 | text-decoration: none; 43 | color: #fff; 44 | } 45 | 46 | a:hover { 47 | cursor: pointer; 48 | } 49 | 50 | @media (max-width: $bp-xs) { 51 | body { 52 | padding: 1.25em; 53 | } 54 | } 55 | 56 | /* 57 | * TYPOGRAPHY 58 | * --------------------------------------------- 59 | */ 60 | 61 | h1, h2, h3, h4, h5, h6 { 62 | font-weight: inherit; 63 | font-size: 1em; 64 | } 65 | 66 | ul { 67 | list-style: none; 68 | } 69 | 70 | @media (min-width: $bp-m) { 71 | body { 72 | font-size: 1.125em; 73 | } 74 | } 75 | 76 | @media (min-width: $bp-xxl) { 77 | body { 78 | font-size: 1.25em; 79 | } 80 | } 81 | 82 | @media (min-width: 125em) { 83 | body { 84 | font-size: 1.325em; 85 | } 86 | } 87 | 88 | /* 89 | * UTILITIES 90 | * --------------------------------------------- 91 | */ 92 | 93 | .u-vis-hidden { 94 | clip: rect(1px, 1px, 1px, 1px); 95 | height: 1px; 96 | width: 1px; 97 | overflow: hidden; 98 | position: absolute !important; 99 | } 100 | 101 | .clear:after, .clear::after, 102 | .row:after, .row::after { 103 | content: ""; 104 | display: table; 105 | clear: both; 106 | width: 100%; 107 | } 108 | 109 | /* 110 | * MEDIA 111 | * --------------------------------------------- 112 | */ 113 | 114 | img { 115 | display: block; 116 | margin-bottom: 1em; 117 | max-width: 100%; 118 | } 119 | 120 | svg { 121 | display: block; 122 | } 123 | 124 | /* SVG reference sprite */ 125 | .sprite { 126 | display: none; 127 | } 128 | 129 | /* 130 | * FORM ELEMENTS 131 | * --------------------------------------------- 132 | */ 133 | 134 | button { 135 | display: inline-block; 136 | vertical-align: middle; 137 | border: 0; 138 | outline: 0; 139 | background: transparent; 140 | 141 | &:hover { 142 | cursor: pointer; 143 | } 144 | } -------------------------------------------------------------------------------- /assets/_sass/header-nav.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * HEADER AND NAV 3 | * --------------------------------------------- 4 | */ 5 | 6 | .site-header, 7 | .site-nav { 8 | @include all-caps(); 9 | color: #999; 10 | line-height: 1; 11 | 12 | a:link, a:visited { 13 | color: inherit; 14 | } 15 | 16 | a:hover { 17 | color: #fff; 18 | } 19 | } 20 | 21 | .site-header { 22 | margin-bottom: 2.25em; 23 | padding-bottom: 1.25em; 24 | border-bottom: 3px double $color-border; 25 | text-align: center; 26 | } 27 | 28 | .site-nav { 29 | position: fixed; 30 | z-index: 2; 31 | bottom: 0; 32 | left: 0; 33 | width: 100%; 34 | padding: 1em 2em; 35 | background: #000; 36 | text-align: center; 37 | font-size: .825em; 38 | 39 | a { 40 | display: inline-block; 41 | margin: $margin-xs $margin-m $margin-xs 0; 42 | } 43 | } 44 | 45 | @media (min-width: $bp-l) { 46 | .site-header { 47 | position: fixed; 48 | z-index: 2; 49 | top: 1.75em; 50 | left: 1.5em; 51 | transform: rotate(270deg) translate(-100%, 0); 52 | transform-origin: left top; 53 | padding-bottom: 10px; 54 | border-bottom: 1px solid $color-border; 55 | background: #000; 56 | font-size: 1.25em; 57 | } 58 | 59 | .site-nav { 60 | display: inline-block; 61 | bottom: 1em; 62 | right: 2em; 63 | left: auto; 64 | transform: rotate(270deg) translate(100%, -2em); 65 | transform-origin: right top; 66 | width: auto; 67 | padding: 10px 0 0; 68 | border-top: 1px solid $color-border; 69 | 70 | a { 71 | margin: 0; 72 | } 73 | 74 | a + a { 75 | margin-left: $margin-m; 76 | } 77 | } 78 | } -------------------------------------------------------------------------------- /assets/_sass/home.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * HOME PAGE 3 | * --------------------------------------------- 4 | */ 5 | 6 | .covers { 7 | list-style: none; 8 | text-align: center; 9 | } 10 | 11 | .cover { 12 | display: inline-block; 13 | vertical-align: middle; 14 | margin: 0 1.5em 3em; 15 | } 16 | 17 | @media (min-width: $bp-xxl) { 18 | .cover { 19 | width: 240px; 20 | 21 | svg { 22 | width: 100%; 23 | height: auto; 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /assets/_sass/layout.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * LAYOUT 3 | * --------------------------------------------- 4 | */ 5 | 6 | .page-wrap { 7 | position: relative; 8 | z-index: 1; 9 | max-width: 100em; 10 | } 11 | 12 | .site-footer { 13 | font-size: .825em; 14 | margin: 2em auto 4em; 15 | max-width: 36em; 16 | position: relative; 17 | z-index: 3; 18 | 19 | p + p { 20 | margin-top: 1em; 21 | } 22 | 23 | a { 24 | border-bottom: 1px solid; 25 | } 26 | 27 | a:hover { 28 | background: #fff; 29 | color: #000; 30 | } 31 | 32 | small { 33 | font-size: inherit; 34 | } 35 | } 36 | 37 | @supports(pointer-events: none) { 38 | .page-wrap::after { 39 | @include pseudo(); 40 | position: fixed; 41 | bottom: 0; 42 | left: 0; 43 | width: 100%; 44 | height: 10em; 45 | background: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,1)); 46 | pointer-events: none; 47 | } 48 | } 49 | 50 | @media (min-width: $bp-l) { 51 | .page-wrap { 52 | margin: 4em auto 0; 53 | padding: 0 6em; 54 | } 55 | 56 | .site-footer { 57 | margin: 4em auto; 58 | } 59 | } 60 | 61 | @supports (animation-fill-mode: forwards) { 62 | .page-wrap { 63 | opacity: 0; 64 | animation: 800ms ease-out 250ms forwards fadeIn; 65 | } 66 | 67 | .page-wrap > :first-child { 68 | margin-top: 0; 69 | animation: 600ms ease-out 200ms forwards shiftTop; 70 | } 71 | 72 | .site-header, 73 | .site-nav { 74 | opacity: 0; 75 | animation: 800ms ease-out 400ms forwards fadeIn; 76 | } 77 | 78 | @media (min-width: $bp-l) { 79 | .site-header, 80 | .site-nav { 81 | animation: 800ms ease-out 600ms forwards fadeIn; 82 | } 83 | 84 | .site-header::before, 85 | .site-nav::after { 86 | display: block; 87 | content: ''; 88 | position: absolute; 89 | height: 1px; 90 | width: 48px; 91 | background: $color-border; 92 | } 93 | 94 | .site-header::before { 95 | left: 0; 96 | bottom: -1px; 97 | animation: 400ms ease-out 800ms forwards growBefore; 98 | } 99 | 100 | .site-nav::after { 101 | right: 0; 102 | top: -1px; 103 | animation: 400ms ease-out 800ms forwards growAfter; 104 | } 105 | } 106 | 107 | @keyframes fadeIn { 108 | 100% { 109 | opacity: 1; 110 | } 111 | } 112 | 113 | @keyframes growBefore { 114 | 100% { 115 | left: -48px; 116 | } 117 | } 118 | 119 | @keyframes growAfter { 120 | 100% { 121 | right: -48px; 122 | } 123 | } 124 | 125 | @keyframes shiftTop { 126 | 0% { 127 | margin-top: 0; 128 | } 129 | 130 | /* Hack so element matching URL fragment doesn't push out of scrolltop */ 131 | 1% { 132 | margin-top: 1em; 133 | } 134 | 135 | 100% { 136 | margin-top: 0; 137 | } 138 | } 139 | } -------------------------------------------------------------------------------- /assets/_sass/sass-helpers.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * VARIABLES 3 | * --------------------------------------------- 4 | */ 5 | 6 | /* FONTS */ 7 | $font-body: Karla, 'San Francisco', 'Segoe UI', 'Helvetica Neue', sans-serif; 8 | $font-secondary: 'Sorts Mill Goudy', 'Goudy Old Style', 'Garamond', serif; 9 | 10 | /* BREAKPOINTS */ 11 | $bp-xs: 25em; 12 | $bp-s: 42em; 13 | $bp-m: 48em; 14 | $bp-l: 60em; 15 | $bp-xl: 75em; 16 | $bp-xxl: 100em; 17 | 18 | /* MARGINS */ 19 | $margin-l: 2.5em; 20 | $margin-m: 1.5em; 21 | $margin-s: 1em; 22 | $margin-xs: .5em; 23 | 24 | /* COLORS */ 25 | $color-bg: #000; 26 | $color-body: #d2d2d2; 27 | $color-border: #999; 28 | $color-secondary: #a2a2a2; 29 | 30 | /* 31 | * MIXINS 32 | * --------------------------------------------- 33 | */ 34 | 35 | @mixin all-caps() { 36 | text-transform: uppercase; 37 | letter-spacing: .03em; 38 | } 39 | 40 | @mixin pseudo() { 41 | display: block; 42 | content: ''; 43 | position: absolute; 44 | } -------------------------------------------------------------------------------- /assets/_sass/style.scss: -------------------------------------------------------------------------------- 1 | @import 'sass-helpers'; 2 | @import 'global'; 3 | @import 'header-nav'; 4 | @import 'layout'; 5 | @import 'book'; /* book = books or articles */ 6 | @import 'home'; 7 | @import 'all-page'; 8 | @import 'error'; -------------------------------------------------------------------------------- /assets/css/style.css: -------------------------------------------------------------------------------- 1 | *{margin:0;padding:0;box-sizing:border-box}body{display:flex;flex-direction:column;min-height:100vh;padding:2em;font:400 100%/1.4 Karla,"San Francisco","Segoe UI","Helvetica Neue",sans-serif;color:#d2d2d2;background:#000}main{flex:1}:focus{outline:1px dotted #fff;outline-offset:1px}::selection{background:#fff;color:#000}::-moz-selection{background:#fff;color:#000}a:link,a:visited{text-decoration:none;color:#fff}a:hover{cursor:pointer}@media(max-width: 25em){body{padding:1.25em}}h1,h2,h3,h4,h5,h6{font-weight:inherit;font-size:1em}ul{list-style:none}@media(min-width: 48em){body{font-size:1.125em}}@media(min-width: 100em){body{font-size:1.25em}}@media(min-width: 125em){body{font-size:1.325em}}.u-vis-hidden{clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;overflow:hidden;position:absolute !important}.clear:after,.clear::after,.row:after,.row::after{content:"";display:table;clear:both;width:100%}img{display:block;margin-bottom:1em;max-width:100%}svg{display:block}.sprite{display:none}button{display:inline-block;vertical-align:middle;border:0;outline:0;background:transparent}button:hover{cursor:pointer}.site-header,.site-nav{text-transform:uppercase;letter-spacing:.03em;color:#999;line-height:1}.site-header a:link,.site-header a:visited,.site-nav a:link,.site-nav a:visited{color:inherit}.site-header a:hover,.site-nav a:hover{color:#fff}.site-header{margin-bottom:2.25em;padding-bottom:1.25em;border-bottom:3px double #999;text-align:center}.site-nav{position:fixed;z-index:2;bottom:0;left:0;width:100%;padding:1em 2em;background:#000;text-align:center;font-size:.825em}.site-nav a{display:inline-block;margin:.5em 1.5em .5em 0}@media(min-width: 60em){.site-header{position:fixed;z-index:2;top:1.75em;left:1.5em;transform:rotate(270deg) translate(-100%, 0);transform-origin:left top;padding-bottom:10px;border-bottom:1px solid #999;background:#000;font-size:1.25em}.site-nav{display:inline-block;bottom:1em;right:2em;left:auto;transform:rotate(270deg) translate(100%, -2em);transform-origin:right top;width:auto;padding:10px 0 0;border-top:1px solid #999}.site-nav a{margin:0}.site-nav a+a{margin-left:1.5em}}.page-wrap{position:relative;z-index:1;max-width:100em}.site-footer{font-size:.825em;margin:2em auto 4em;max-width:36em;position:relative;z-index:3}.site-footer p+p{margin-top:1em}.site-footer a{border-bottom:1px solid}.site-footer a:hover{background:#fff;color:#000}.site-footer small{font-size:inherit}@supports(pointer-events: none){.page-wrap::after{display:block;content:"";position:absolute;position:fixed;bottom:0;left:0;width:100%;height:10em;background:linear-gradient(rgba(0, 0, 0, 0), black);pointer-events:none}}@media(min-width: 60em){.page-wrap{margin:4em auto 0;padding:0 6em}.site-footer{margin:4em auto}}@supports(animation-fill-mode: forwards){.page-wrap{opacity:0;animation:800ms ease-out 250ms forwards fadeIn}.page-wrap>:first-child{margin-top:0;animation:600ms ease-out 200ms forwards shiftTop}.site-header,.site-nav{opacity:0;animation:800ms ease-out 400ms forwards fadeIn}@media(min-width: 60em){.site-header,.site-nav{animation:800ms ease-out 600ms forwards fadeIn}.site-header::before,.site-nav::after{display:block;content:"";position:absolute;height:1px;width:48px;background:#999}.site-header::before{left:0;bottom:-1px;animation:400ms ease-out 800ms forwards growBefore}.site-nav::after{right:0;top:-1px;animation:400ms ease-out 800ms forwards growAfter}}@keyframes fadeIn{100%{opacity:1}}@keyframes growBefore{100%{left:-48px}}@keyframes growAfter{100%{right:-48px}}@keyframes shiftTop{0%{margin-top:0}1%{margin-top:1em}100%{margin-top:0}}}.book{margin-bottom:3em}.book+.book{border-top:3px double #999;padding-top:1.5em}.book__info{margin:0 auto 2.5em;width:12.5em;text-align:center}.book__title{margin-bottom:1em;font:1.166em/1.2 "Sorts Mill Goudy","Goudy Old Style","Garamond",serif}.book__title-small,.highlight__meta,.warnings-note{color:#a2a2a2;font:.75em/1.2 Karla,"San Francisco","Segoe UI","Helvetica Neue",sans-serif;text-transform:uppercase;letter-spacing:.03em}.book__title-small{display:block;margin-bottom:1em}.book__image{display:inline-block;margin:0 auto .5em;background-repeat:no-repeat;background-position:0 0;background-size:100% auto}a.book__image{opacity:.75;transition:opacity 400ms}a.book__image svg{opacity:0}a.book__image:hover{opacity:1}a.book__buy{border-bottom:1px solid;font-family:"Sorts Mill Goudy","Goudy Old Style","Garamond",serif;font-size:1rem}a.book__buy:hover{background-color:#fff;color:#000}@media(hover){a.book__image svg{opacity:1;transition:opacity 400ms}a.book__image:hover svg,a.book__image:focus svg{opacity:0}}.highlights-wrap{padding-top:1.25em;border-top:1px solid #999;max-width:40em}.warnings-note{margin-bottom:1.5em;font-size:1em}.warnings-note__icon{display:inline-block;vertical-align:middle;margin-right:.25em}.highlight{margin-bottom:1.5em;scroll-margin-top:1.5em}.highlight:last-child{margin-bottom:0}.highlight__attribution{display:block;margin:.5em 0;text-transform:uppercase;letter-spacing:.03em;font-size:.875em;font-style:normal}.highlight__location{vertical-align:middle}.highlight__link{text-transform:uppercase;letter-spacing:.03em;display:inline-block;vertical-align:middle;position:relative;margin-left:1em;padding:.5em .5em .5em 36px;font:1em/20px Karla,"San Francisco","Segoe UI","Helvetica Neue",sans-serif;opacity:.5;transition:opacity 200ms}.highlight__link svg{position:absolute;left:0}.highlight__link span{transition:opacity 200ms;opacity:0}.highlight__link:hover,.highlight__link:active,.highlight__link:focus{opacity:1}.highlight__link:hover span,.highlight__link:active span,.highlight__link:focus span{opacity:.75}.highlight--active .highlight__text span{position:relative;z-index:1;vertical-align:middle;padding:.125em .25em;background:#ebebeb;color:#2b2b2b;line-height:1.6}.btn--clear{position:relative;z-index:2;border:1px solid transparent;border-radius:0;padding:.5em}.btn--clear::after{display:block;content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:2.75rem;height:2.75rem}.btn--clear:hover{border-color:#fff}.btn--clear:active{background-color:rgba(255,255,255,.5)}@media(min-width: 42em){.page-wrap{text-align:center}.book{display:inline-block;margin-right:auto;margin-left:auto}.book+.book{padding-top:0;border-top:0}.book__title-small{font-size:.66em}.book__info{float:left;top:2em;position:-webkit-sticky;position:sticky;margin-right:3em;width:200px}.highlights-wrap{padding-top:0;border-top:0;width:auto;overflow:hidden;text-align:left}}@media(min-width: 60em){.book{margin-bottom:5em}.highlight{margin-bottom:2.5em}}@media(min-width: 75em){.book__info{margin-right:5em}}@media(min-width: 100em){.book__info{width:280px}}.covers{list-style:none;text-align:center}.cover{display:inline-block;vertical-align:middle;margin:0 1.5em 3em}@media(min-width: 100em){.cover{width:240px}.cover svg{width:100%;height:auto}}.pagination{margin-bottom:3em;text-align:center}.pagination__older,.pagination__newer{display:inline-block;margin:0 1em;opacity:.5;transition:opacity 200ms}.pagination__older:hover,.pagination__newer:hover{opacity:1}.error-msg{margin:2em auto 0;max-width:24em}.error-msg a:link,.error-msg a:visited{border-bottom:1px solid}.error-msg a:hover{border-bottom-style:dashed}/*# sourceMappingURL=style.css.map */ 2 | -------------------------------------------------------------------------------- /assets/css/style.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sourceRoot":"","sources":["../_sass/global.scss","../_sass/sass-helpers.scss","../_sass/header-nav.scss","../_sass/layout.scss","../_sass/book.scss","../_sass/home.scss","../_sass/all-page.scss","../_sass/error.scss"],"names":[],"mappings":"AAKA,EACE,SACA,UACA,sBAGF,KACE,aACA,sBACA,iBACA,YACA,+EACA,MCQW,QDPX,WCMS,KDHX,KACE,OAGF,OACE,wBACA,mBAGF,YACC,gBACA,WAGD,iBACC,gBACA,WAGD,iBACE,qBACA,WAGF,QACE,eAGF,wBACE,KACE,gBASJ,kBACE,oBACA,cAGF,GACE,gBAGF,wBACE,KACE,mBAIJ,yBACE,KACE,kBAIJ,yBACE,KACE,mBASJ,cACE,8BACA,WACA,UACA,gBACA,6BAGF,kDAEE,WACA,cACA,WACA,WAQF,IACE,cACA,kBACA,eAGF,IACE,cAIF,QACE,aAQF,OACE,qBACA,sBACA,SACA,UACA,uBAEA,aACE,eExIJ,uBD8BE,yBACA,qBC5BA,WACA,cAEA,gFACE,cAGF,uCACE,WAIJ,aACE,qBACA,sBACA,8BACA,kBAGF,UACE,eACA,UACA,SACA,OACA,WACA,gBACA,gBACA,kBACA,iBAEA,YACE,qBACA,yBAIJ,wBACE,aACE,eACA,UACA,WACA,WACA,6CACA,0BACA,oBACA,6BACA,gBACA,iBAGF,UACE,qBACA,WACA,UACA,UACA,+CACA,2BACA,WACA,iBACA,0BAEA,YACE,SAGF,cACE,YDvDK,OEdX,WACE,kBACA,UACA,gBAGF,aACE,iBACA,oBACA,eACA,kBACA,UAEA,iBACE,eAGF,eACE,wBAGF,qBACE,gBACA,WAGF,mBACE,kBAIJ,gCACE,kBFGA,cACA,WACA,kBEHE,eACA,SACA,OACA,WACA,YACA,oDACA,qBAIJ,wBACE,WACE,kBACA,cAGF,aACE,iBAIJ,yCACE,WACE,UACA,+CAGF,wBACE,aACA,iDAGF,uBAEE,UACA,+CAGF,wBACE,uBAEE,+CAGF,sCAEE,cACA,WACA,kBACA,WACA,WACA,WFhES,KEmEX,qBACE,OACA,YACA,mDAGF,iBACE,QACA,SACA,mDAIJ,kBACE,KACE,WAIJ,sBACE,KACE,YAIJ,qBACE,KACE,aAIJ,oBACE,GACE,aAIF,GACE,eAGF,KACE,eClIN,MACE,kBAGF,YACE,2BACA,YHQS,MGLX,YACE,oBACA,aACA,kBAGF,aACE,cHDS,IGET,uEAGF,mDAGE,MHDgB,QGEhB,4EHMA,yBACA,qBGHF,mBACE,cACA,kBAGF,aACE,qBACA,mBACA,4BACA,wBACA,0BAGF,cACE,YACA,yBAEA,kBACE,UAGF,oBACE,UAIJ,YACE,wBACA,YHtDgB,sDGuDhB,eAEA,kBACE,sBACA,WAIJ,cAEI,kBACE,UACA,yBAKA,gDACE,WAMR,iBACE,mBACA,0BACA,eAGF,eACE,cH1ES,MG2ET,cAGF,qBACE,qBACA,sBACA,mBAGF,WACE,cHrFS,MGsFT,kBHtFS,MGwFT,sBACE,gBAIJ,wBACE,cACA,cH/EA,yBACA,qBGgFA,iBACA,kBAGF,qBACE,sBAGF,iBHzFE,yBACA,qBG0FA,qBACA,sBACA,kBACA,gBACA,4BACA,2EACA,WACA,yBAEA,qBACE,kBACA,OAGF,sBACE,yBACA,UAGF,sEAGE,UAEA,qFACE,YAMJ,yCACE,kBACA,UACA,sBACA,qBACA,mBACA,cACA,gBAIJ,YACE,kBACA,UACA,6BACA,gBACA,aAEA,mBACE,cACA,WACA,kBACA,QACA,SACA,gCACA,cACA,eAGF,kBACE,kBAGF,mBACE,sCAIJ,wBACE,WACE,kBAGF,MACE,qBACA,kBACA,iBAGF,YACE,cACA,aAGF,mBACE,gBAGF,YACE,WACA,QACA,wBACA,gBACA,iBACA,YAGF,iBACE,cACA,aACA,WACA,gBACA,iBAIJ,wBACE,MACE,kBAGF,WACE,cH7NO,OGiOX,wBACE,YACE,kBAIJ,yBACE,YACE,aCtPJ,QACE,gBACA,kBAGF,OACE,qBACA,sBACA,mBAGF,yBACE,OACE,YAEA,WACE,WACA,aCjBN,YACE,kBACA,kBAGF,sCAEE,qBACA,aACA,WACA,yBAEA,kDACE,UCbJ,WACE,kBACA,eAEA,uCACE,wBAGF,mBACE","file":"style.css"} -------------------------------------------------------------------------------- /assets/images/covers/big-magic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/big-magic.jpg -------------------------------------------------------------------------------- /assets/images/covers/braiding-sweetgrass.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/braiding-sweetgrass.jpg -------------------------------------------------------------------------------- /assets/images/covers/deep-work.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/deep-work.jpg -------------------------------------------------------------------------------- /assets/images/covers/eat-a-peach.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/eat-a-peach.jpg -------------------------------------------------------------------------------- /assets/images/covers/enchantment.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/enchantment.jpg -------------------------------------------------------------------------------- /assets/images/covers/eternal-life.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/eternal-life.jpg -------------------------------------------------------------------------------- /assets/images/covers/four-thousand-weeks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/four-thousand-weeks.jpg -------------------------------------------------------------------------------- /assets/images/covers/handmaids-tale.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/handmaids-tale.jpg -------------------------------------------------------------------------------- /assets/images/covers/how-to-do-nothing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/how-to-do-nothing.jpg -------------------------------------------------------------------------------- /assets/images/covers/in-the-dream-house.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/in-the-dream-house.jpg -------------------------------------------------------------------------------- /assets/images/covers/interview-with-the-vampire.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/interview-with-the-vampire.jpg -------------------------------------------------------------------------------- /assets/images/covers/keep-going.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/keep-going.jpg -------------------------------------------------------------------------------- /assets/images/covers/life-after-life.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/life-after-life.jpg -------------------------------------------------------------------------------- /assets/images/covers/luster.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/luster.jpg -------------------------------------------------------------------------------- /assets/images/covers/make-time.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/make-time.jpg -------------------------------------------------------------------------------- /assets/images/covers/mindset.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/mindset.jpg -------------------------------------------------------------------------------- /assets/images/covers/miracle-of-mindfulness.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/miracle-of-mindfulness.jpg -------------------------------------------------------------------------------- /assets/images/covers/seeking-the-sacred.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/seeking-the-sacred.jpg -------------------------------------------------------------------------------- /assets/images/covers/shrill.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/shrill.jpg -------------------------------------------------------------------------------- /assets/images/covers/the-color-purple.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/the-color-purple.jpg -------------------------------------------------------------------------------- /assets/images/covers/the-mothers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/the-mothers.jpg -------------------------------------------------------------------------------- /assets/images/covers/the-nature-fix.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/the-nature-fix.jpg -------------------------------------------------------------------------------- /assets/images/covers/the-night-watchman.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/the-night-watchman.jpg -------------------------------------------------------------------------------- /assets/images/covers/the-power.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/the-power.jpg -------------------------------------------------------------------------------- /assets/images/covers/the-sentence.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/the-sentence.jpg -------------------------------------------------------------------------------- /assets/images/covers/tomorrow-and-tomorrow-and-tomorrow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/tomorrow-and-tomorrow-and-tomorrow.jpg -------------------------------------------------------------------------------- /assets/images/covers/turtles.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/turtles.jpg -------------------------------------------------------------------------------- /assets/images/covers/upstream.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/upstream.jpg -------------------------------------------------------------------------------- /assets/images/covers/ux-strategy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/ux-strategy.jpg -------------------------------------------------------------------------------- /assets/images/covers/wherever-you-go.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/wherever-you-go.jpg -------------------------------------------------------------------------------- /assets/images/covers/why-buddhism.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/why-buddhism.jpg -------------------------------------------------------------------------------- /assets/images/covers/you-cant-touch-my-hair.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/covers/you-cant-touch-my-hair.jpg -------------------------------------------------------------------------------- /assets/images/favicon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/favicon-16.png -------------------------------------------------------------------------------- /assets/images/favicon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/favicon-192.png -------------------------------------------------------------------------------- /assets/images/favicon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/favicon-32.png -------------------------------------------------------------------------------- /assets/images/favicon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/favicon-48.png -------------------------------------------------------------------------------- /assets/images/favicon-62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/favicon-62.png -------------------------------------------------------------------------------- /assets/images/favicon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/screenshot.png -------------------------------------------------------------------------------- /assets/images/share-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melanierichards/highlights/91b766bb459d2d78cfa04179a9c7f6b2ec60a302/assets/images/share-icon.png -------------------------------------------------------------------------------- /assets/js/deps.js: -------------------------------------------------------------------------------- 1 | // svg4everybody - https://github.com/jonathantneal/svg4everybody 2 | !function(a,b){"function"==typeof define&&define.amd?define([],function(){return a.svg4everybody=b()}):"object"==typeof module&&module.exports?module.exports=b():a.svg4everybody=b()}(this,function(){function a(a,b,c){if(c){var d=document.createDocumentFragment(),e=!b.hasAttribute("viewBox")&&c.getAttribute("viewBox");e&&b.setAttribute("viewBox",e);for(var f=c.cloneNode(!0);f.childNodes.length;)d.appendChild(f.firstChild);a.appendChild(d)}}function b(b){b.onreadystatechange=function(){if(4===b.readyState){var c=b._cachedDocument;c||(c=b._cachedDocument=document.implementation.createHTMLDocument(""),c.body.innerHTML=b.responseText,b._cachedTarget={}),b._embeds.splice(0).map(function(d){var e=b._cachedTarget[d.id];e||(e=b._cachedTarget[d.id]=c.getElementById(d.id)),a(d.parent,d.svg,e)})}},b.onreadystatechange()}function c(c){function e(){for(var c=0;c0)&&n(e,67)}var f,g=Object(c),h=/\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/,i=/\bAppleWebKit\/(\d+)\b/,j=/\bEdge\/12\.(\d+)\b/,k=/\bEdge\/.(\d+)\b/,l=window.top!==window.self;f="polyfill"in g?g.polyfill:h.test(navigator.userAgent)||(navigator.userAgent.match(j)||[])[1]<10547||(navigator.userAgent.match(i)||[])[1]<537||k.test(navigator.userAgent)&&l;var m={},n=window.requestAnimationFrame||setTimeout,o=document.getElementsByTagName("use"),p=0;f&&e()}function d(a){for(var b=a;"svg"!==b.nodeName.toLowerCase()&&(b=b.parentNode););return b}return c}); 3 | 4 | /* 5 | * smoothscroll polyfill - v0.3.4 6 | * https://iamdustan.github.io/smoothscroll 7 | * 2016 (c) Dustan Kasten, Jeremias Menichelli - MIT License 8 | */ 9 | !function(t,o,e){"use strict" 10 | function l(){function l(t,o){this.scrollLeft=t,this.scrollTop=o}function r(t){return.5*(1-Math.cos(Math.PI*t))}function s(t){if("object"!=typeof t||null===t||t.behavior===e||"auto"===t.behavior||"instant"===t.behavior)return!0 11 | if("object"==typeof t&&"smooth"===t.behavior)return!1 12 | throw new TypeError("behavior not valid")}function n(e){var l,r,s 13 | do e=e.parentNode,l=e===o.body,r=e.clientHeight1?1:i,l=r(i),s=o.startX+(o.x-o.startX)*l,n=o.startY+(o.y-o.startY)*l,o.method.call(o.scrollable,s,n),s===o.x&&n===o.y?(t.cancelAnimationFrame(o.frame),e):e}function c(e,r,s){var n,c,i,u,p,h=m() 18 | e===o.body?(n=t,c=t.scrollX||t.pageXOffset,i=t.scrollY||t.pageYOffset,u=f.scroll):(n=e,c=e.scrollLeft,i=e.scrollTop,u=l),p&&t.cancelAnimationFrame(p),a({scrollable:n,method:u,startTime:h,startX:c,startY:i,x:r,y:s,frame:p})}if(!("scrollBehavior"in o.documentElement.style)){var i=t.HTMLElement||t.Element,u=468,f={scroll:t.scroll||t.scrollTo,scrollBy:t.scrollBy,elScroll:i.prototype.scroll||l,scrollIntoView:i.prototype.scrollIntoView},m=t.performance&&t.performance.now?t.performance.now.bind(t.performance):Date.now 19 | t.scroll=t.scrollTo=function(){return s(arguments[0])?(f.scroll.call(t,arguments[0].left||arguments[0],arguments[0].top||arguments[1]),e):(c.call(t,o.body,~~arguments[0].left,~~arguments[0].top),e)},t.scrollBy=function(){return s(arguments[0])?(f.scrollBy.call(t,arguments[0].left||arguments[0],arguments[0].top||arguments[1]),e):(c.call(t,o.body,~~arguments[0].left+(t.scrollX||t.pageXOffset),~~arguments[0].top+(t.scrollY||t.pageYOffset)),e)},i.prototype.scroll=i.prototype.scrollTo=function(){return s(arguments[0])?(f.elScroll.call(this,arguments[0].left||arguments[0],arguments[0].top||arguments[1]),e):(c.call(this,this,arguments[0].left,arguments[0].top),e)},i.prototype.scrollBy=function(){var t=arguments[0] 20 | "object"==typeof t?this.scroll({left:t.left+this.scrollLeft,top:t.top+this.scrollTop,behavior:t.behavior}):this.scroll(this.scrollLeft+t,this.scrollTop+arguments[1])},i.prototype.scrollIntoView=function(){if(s(arguments[0]))return f.scrollIntoView.call(this,arguments[0]||!0),e 21 | var l=n(this),r=l.getBoundingClientRect(),a=this.getBoundingClientRect() 22 | l!==o.body?(c.call(this,l,l.scrollLeft+a.left-r.left,l.scrollTop+a.top-r.top),t.scrollBy({left:r.left,top:r.top,behavior:"smooth"})):t.scrollBy({left:a.left,top:a.top,behavior:"smooth"})}}}"object"==typeof exports?module.exports={polyfill:l}:l()}(window,document) -------------------------------------------------------------------------------- /assets/js/html5shiv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); -------------------------------------------------------------------------------- /assets/js/scripts.js: -------------------------------------------------------------------------------- 1 | // Load hi-fi covers 2 | var covers = document.querySelectorAll('.book__image'); 3 | for (var i = 0; i < covers.length; i++) { 4 | if (covers[i].hasAttribute('data-bgSrc')) { 5 | covers[i].style.backgroundImage = 'url("' + covers[i].getAttribute('data-bgSrc') + '")'; 6 | } 7 | } 8 | 9 | // Make highlight stand out when permalinked 10 | var activateHighlight = function(hash) { 11 | var highlight = document.getElementById(hash); 12 | highlight.className += ' highlight--active'; 13 | for (var i = 0; i < highlight.childNodes.length; i++) { 14 | if (highlight.childNodes[i].className == 'highlight__text') { 15 | var highlightText = highlight.childNodes[i]; 16 | highlightText.innerHTML = '' + highlightText.innerHTML + ' '; 17 | svg4everybody(); 18 | break; 19 | } 20 | } 21 | highlight.focus(); 22 | }; 23 | 24 | var smoothUpdateURL = function(hash, highlight) { 25 | var hashIndex = window.location.href.indexOf('#'); 26 | if (hashIndex === -1) { 27 | var hashlessURL = window.location.href; 28 | } else { 29 | var hashlessURL = window.location.href.slice(0, hashIndex); 30 | } 31 | highlight.scrollIntoView({behavior: 'smooth'}); 32 | history.replaceState(null, null, hashlessURL + '#' + hash); 33 | }; 34 | 35 | var removeHighlight = function() { 36 | var highlighted = document.querySelector('.highlight--active'); 37 | if (highlighted !== null) { 38 | var highlightText = highlighted.querySelector('.highlight__text'); 39 | highlighted.className = 'highlight'; 40 | highlightText.innerHTML = highlightText.innerText; 41 | if (document.getElementById('js-clearHighlight')) { 42 | this.remove(); 43 | } 44 | } 45 | }; 46 | 47 | var highlightSwitch = function(e) { 48 | var targetLink = e.currentTarget.href.toString(); 49 | if (targetLink && targetLink.indexOf('#') > -1) { 50 | var hash = targetLink.substr(targetLink.indexOf('#') + 1); 51 | var highlight = document.getElementById(hash); 52 | if (highlight.className.indexOf('highlight--active') === -1) { 53 | removeHighlight(); 54 | activateHighlight(hash); 55 | e.preventDefault(); 56 | smoothUpdateURL(hash, highlight); 57 | } 58 | } 59 | }; 60 | 61 | if (window.location.hash) { 62 | var hash = window.location.hash.replace('#', ''); 63 | if (document.getElementById(hash)) { 64 | activateHighlight(hash); 65 | } 66 | } 67 | 68 | var permalinks = document.querySelectorAll('.highlight__link'); 69 | for (var i = 0; i < permalinks.length; i++) { 70 | permalinks[i].addEventListener('click', highlightSwitch, true); 71 | } 72 | 73 | // Clear featured highlight 74 | var clickClear = function(e) { 75 | if (e.target.id === 'js-clearHighlight' || e.target.parentNode.id === 'js-clearHighlight') { 76 | removeHighlight(); 77 | var hashIndex = window.location.href.indexOf('#'); 78 | var hashlessURL = window.location.href.slice(0, hashIndex); 79 | history.replaceState(null, null, hashlessURL); 80 | } 81 | } 82 | 83 | window.addEventListener('click', clickClear, false); 84 | 85 | // Polyfil for SVG sprites 86 | svg4everybody(); -------------------------------------------------------------------------------- /assets/svgs/braiding-sweetgrass.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/deep-work.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/eat-a-peach.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/enchantment.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/eternal-life.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/four-thousand-weeks.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/handmaids-tale.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/how-to-do-nothing.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/icons.svg: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /assets/svgs/in-the-dream-house.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/interview-with-the-vampire.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/keep-going.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/life-after-life.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/make-time.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/mindset.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/miracle-of-mindfulness.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/seeking-the-sacred.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 12 | 13 | -------------------------------------------------------------------------------- /assets/svgs/shrill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/the-color-purple.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/the-mothers.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/the-nature-fix.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/the-night-watchman.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/the-sentence.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/tomorrow-and-tomorrow-and-tomorrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/turtles.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/upstream-complex.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/upstream.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/ux-strategy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/wherever-you-go.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/why-buddhism.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/svgs/you-cant-touch-my-hair.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /index.njk: -------------------------------------------------------------------------------- 1 | --- 2 | layout: layouts/home.njk 3 | title: Browse by book 4 | nav: true 5 | order: 1 6 | pagination: 7 | data: collections.posts 8 | size: 24 9 | reverse: true 10 | alias: posts 11 | permalink: /{% if pagination.pageNumber > 0 %}page{{ pagination.pageNumber + 1 }}/{% endif %} 12 | --- -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [[plugins]] 2 | package = "netlify-plugin-html-validate" 3 | 4 | [plugins.inputs] 5 | config = ".htmlvalidate.json" -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "highlights", 3 | "version": "1.0.0", 4 | "description": "![Screenshot of the website](assets/images/screenshot.png?raw=true)", 5 | "main": ".eleventy.js", 6 | "scripts": { 7 | "sass": "npx sass --style=compressed assets/_sass/style.scss assets/css/style.css", 8 | "watch:sass": "npm run sass -- --watch", 9 | "watch:eleventy": "npx @11ty/eleventy --serve", 10 | "start": "npm-run-all sass --parallel watch:*", 11 | "build": "npx @11ty/eleventy" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "git+https://github.com/melanierichards/highlights.git" 16 | }, 17 | "keywords": [], 18 | "author": "", 19 | "license": "ISC", 20 | "bugs": { 21 | "url": "https://github.com/melanierichards/highlights/issues" 22 | }, 23 | "homepage": "https://github.com/melanierichards/highlights#readme", 24 | "dependencies": { 25 | "@11ty/eleventy": "^2.0.1", 26 | "eleventy-plugin-svg-contents": "^0.7.0", 27 | "js-yaml": "^3.14.0", 28 | "netlify-plugin-html-validate": "^1.0.0", 29 | "npm-run-all": "^4.1.5", 30 | "sass": "^1.43.4" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /posts/2016-07-24-life-after-life.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Life After Life 3 | book: life-after-life 4 | author: Kate Atkinson 5 | kindle: true 6 | date: 2016-07-24 7 | tags: posts 8 | bookshop_id: 9780316176491 9 | --- -------------------------------------------------------------------------------- /posts/2016-07-26-the-color-purple.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: The Color Purple 3 | book: the-color-purple 4 | author: Alice Walker 5 | kindle: true 6 | date: 2016-07-26 7 | tags: posts 8 | bookshop_id: 9780143135692 9 | --- -------------------------------------------------------------------------------- /posts/2016-08-06-deep-work.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Deep Work" 3 | book: deep-work 4 | author: Cal Newport 5 | kindle: true 6 | date: 2016-08-06 7 | tags: posts 8 | bookshop_id: 9781455586691 9 | --- -------------------------------------------------------------------------------- /posts/2016-08-17-interview-with-the-vampire.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Interview with the Vampire 3 | book: interview-with-the-vampire 4 | author: Anne Rice 5 | kindle: true 6 | date: 2016-08-17 7 | tags: posts 8 | bookshop_id: 9780345337665 9 | --- -------------------------------------------------------------------------------- /posts/2016-10-15-you-cant-touch-my-hair.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "You Can't Touch My Hair" 3 | book: you-cant-touch-my-hair 4 | author: Phoebe Robinson 5 | kindle: true 6 | date: 2016-10-15 7 | tags: posts 8 | bookshop_id: 9780143129202 9 | --- -------------------------------------------------------------------------------- /posts/2016-11-13-shrill.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Shrill" 3 | book: shrill 4 | author: Lindy West 5 | kindle: true 6 | date: 2016-11-13 7 | tags: posts 8 | bookshop_id: 9780316348461 9 | --- -------------------------------------------------------------------------------- /posts/2017-01-16-ux-strategy.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "UX Strategy" 3 | book: ux-strategy 4 | author: Jaime Levy 5 | kindle: true 6 | date: 2017-01-16 7 | tags: posts 8 | bookshop_id: 9781492052432 9 | --- -------------------------------------------------------------------------------- /posts/2017-01-19-handmaids-tale.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: The Handmaid’s Tale 3 | book: handmaids-tale 4 | author: Margaret Atwood 5 | kindle: true 6 | date: 2017-01-19 7 | tags: posts 8 | bookshop_id: 9780385490818 9 | --- -------------------------------------------------------------------------------- /posts/2017-03-19-seeking-the-sacred.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Seeking the Sacred" 3 | book: seeking-the-sacred 4 | author: Stephanie Dowrick 5 | kindle: false 6 | date: 2017-03-17 7 | tags: posts 8 | --- -------------------------------------------------------------------------------- /posts/2017-09-14-the-mothers.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: The Mothers 3 | book: the-mothers 4 | author: Brit Bennett 5 | kindle: false 6 | date: 2017-09-14 7 | tags: posts 8 | bookshop_id: 9780399184529 9 | --- -------------------------------------------------------------------------------- /posts/2018-03-17-the-power.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: The Power 3 | book: the-power 4 | author: Naomi Alderman 5 | kindle: false 6 | date: 2018-03-17 7 | tags: posts 8 | bookshop_id: 9780316547604 9 | --- -------------------------------------------------------------------------------- /posts/2018-06-02-why-buddhism.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Why Buddhism is True 3 | book: why-buddhism 4 | author: Robert Wright 5 | kindle: false 6 | date: 2018-06-02 7 | tags: posts 8 | bookshop_id: 9781439195468 9 | --- -------------------------------------------------------------------------------- /posts/2018-06-15-big-magic.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Big Magic 3 | book: big-magic 4 | author: Elizabeth Gilbert 5 | kindle: true 6 | date: 2018-06-15 7 | tags: posts 8 | bookshop_id: 9781594634727 9 | --- -------------------------------------------------------------------------------- /posts/2018-12-21-the-nature-fix.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: The Nature Fix 3 | book: the-nature-fix 4 | author: Florence Williams 5 | kindle: false 6 | date: 2018-12-21 7 | tags: posts 8 | bookshop_id: 9780393355574 9 | --- -------------------------------------------------------------------------------- /posts/2019-05-14-upstream.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Upstream 3 | book: upstream 4 | author: Mary Oliver 5 | kindle: false 6 | date: 2019-05-14 7 | tags: posts 8 | bookshop_id: 9780143130086 9 | --- -------------------------------------------------------------------------------- /posts/2019-05-15-mindset.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Mindset" 3 | book: mindset 4 | author: Carol Dweck 5 | kindle: true 6 | date: 2019-05-15 7 | tags: posts 8 | bookshop_id: 9780345472328 9 | --- -------------------------------------------------------------------------------- /posts/2019-07-04-wherever-you-go.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Wherever You Go, There You Are" 3 | book: wherever-you-go 4 | author: Jon Kabat-Zinn 5 | kindle: true 6 | date: 2019-07-04 7 | tags: posts 8 | bookshop_id: 9781401307783 9 | --- -------------------------------------------------------------------------------- /posts/2019-07-29-make-time.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Make Time" 3 | book: make-time 4 | author: Jake Knapp and John Zeratsky 5 | kindle: true 6 | date: 2019-07-29 7 | tags: posts 8 | bookshop_id: 9780525572428 9 | --- -------------------------------------------------------------------------------- /posts/2019-12-01-how-to-do-nothing.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "How to Do Nothing" 3 | book: how-to-do-nothing 4 | author: Jenny O’Dell 5 | kindle: false 6 | date: 2019-12-01 7 | tags: posts 8 | bookshop_id: 9781612198552 9 | --- -------------------------------------------------------------------------------- /posts/2020-02-18-miracle-of-mindfulness.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "The Miracle of Mindfulness" 3 | book: miracle-of-mindfulness 4 | author: Thich Nhat Hanh 5 | kindle: false 6 | date: 2020-02-18 7 | tags: posts 8 | bookshop_id: 9780807012390 9 | --- -------------------------------------------------------------------------------- /posts/2020-11-10-eat-a-peach.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Eat a Peach" 3 | book: eat-a-peach 4 | author: David Chang 5 | kindle: false 6 | date: 2020-11-10 7 | tags: posts 8 | bookshop_id: 9781524759230 9 | --- -------------------------------------------------------------------------------- /posts/2020-11-15-eternal-life.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Eternal Life" 3 | book: eternal-life 4 | author: Dara Horn 5 | kindle: true 6 | date: 2020-11-15 7 | tags: posts 8 | bookshop_id: 9780393356564 9 | --- -------------------------------------------------------------------------------- /posts/2020-12-26-luster.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Luster" 3 | book: luster 4 | author: Raven Leilani 5 | kindle: false 6 | spoilers: true 7 | date: 2020-12-26 8 | bookshop_id: 9781250798671 9 | --- -------------------------------------------------------------------------------- /posts/2021-02-28-keep-going.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Keep Going" 3 | book: keep-going 4 | author: Austin Kleon 5 | kindle: true 6 | date: 2021-02-28 7 | bookshop_id: 9781523506644 8 | --- -------------------------------------------------------------------------------- /posts/2021-09-22-four-thousand-weeks.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Four Thousand Weeks 3 | book: four-thousand-weeks 4 | author: Oliver Burkeman 5 | kindle: true 6 | spoilers: false 7 | date: 2021-09-22 8 | bookshop_id: 9780374159122 9 | --- -------------------------------------------------------------------------------- /posts/2022-01-15-braiding-sweetgrass.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Braiding Sweetgrass 3 | book: braiding-sweetgrass 4 | author: Robin Wall Kimmerer 5 | kindle: false 6 | spoilers: false 7 | date: 2022-01-15 8 | bookshop_id: 9781571313560 9 | --- -------------------------------------------------------------------------------- /posts/2022-07-23-the-sentence.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: The Sentence 3 | book: the-sentence 4 | author: Louise Erdrich 5 | kindle: true 6 | spoilers: true 7 | date: 2022-07-23 8 | content_warnings: police brutality 9 | bookshop_id: 9780062671134 10 | --- -------------------------------------------------------------------------------- /posts/2022-09-03-turtles.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Turtles All the Way Down 3 | book: turtles 4 | author: John Green 5 | kindle: true 6 | spoilers: true 7 | content_warnings: OCD, anxiety, cursing 8 | date: 2022-09-03 9 | bookshop_id: 9780525555377 10 | --- -------------------------------------------------------------------------------- /posts/2023-03-16-tomorrow-and-tomorrow-and-tomorrow.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Tomorrow, and Tomorrow, and Tomorrow 3 | book: tomorrow-and-tomorrow-and-tomorrow 4 | author: Gabrielle Zevin 5 | kindle: true 6 | spoilers: false 7 | date: 2023-03-16 8 | bookshop_id: 9780593321201 9 | --- -------------------------------------------------------------------------------- /posts/2023-04-09-in-the-dream-house.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: In the Dream House 3 | book: in-the-dream-house 4 | author: Carmen Maria Machado 5 | kindle: true 6 | spoilers: false 7 | content_warnings: domestic abuse 8 | date: 2023-04-09 9 | bookshop_id: 9781644450383 10 | --- -------------------------------------------------------------------------------- /posts/2023-08-18-enchantment.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Enchantment 3 | book: enchantment 4 | author: Katherine May 5 | kindle: false 6 | spoilers: false 7 | content_warnings: 8 | date: 2023-08-18 9 | bookshop_id: 9780593329993 10 | --- -------------------------------------------------------------------------------- /posts/2024-04-13-the-night-watchman.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: The Night Watchman 3 | book: the-night-watchman 4 | author: Louise Erdrich 5 | kindle: false 6 | spoilers: true 7 | content_warnings: 8 | date: 2024-04-13 9 | bookshop_id: 9780062671196 10 | --- -------------------------------------------------------------------------------- /posts/posts.json: -------------------------------------------------------------------------------- 1 | { 2 | "layout": "layouts/post.njk", 3 | "tags": "posts", 4 | "permalink": "/book/{{ page.fileSlug }}/index.html" 5 | } -------------------------------------------------------------------------------- /robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: GPTBot 2 | Disallow: / --------------------------------------------------------------------------------