Digital Bookshelf V2 (#2866)
Since I was annoyed at not being able to use [jekyll-archives](https://github.com/jekyll/jekyll-archives) to create an archive for the books, I decided to implement myself the [jekyll-archives-v2](https://github.com/george-gca/jekyll-archives-v2) that doesn't have this limitation. Closes #923. --------- Signed-off-by: George Araújo <george.gcac@gmail.com>
This commit is contained in:
parent
14aaf4726e
commit
6625f2395a
2
.github/workflows/broken-links.yml
vendored
2
.github/workflows/broken-links.yml
vendored
@ -49,4 +49,4 @@ jobs:
|
||||
with:
|
||||
fail: true
|
||||
# removed md files that include liquid tags
|
||||
args: --user-agent 'curl/7.54' --exclude-path README.md --exclude-path _pages/404.md --exclude-path _pages/blog.md --exclude-path _posts/2018-12-22-distill.md --exclude-path _posts/2023-04-24-videos.md --verbose --no-progress './**/*.md' './**/*.html'
|
||||
args: --user-agent 'curl/7.54' --exclude-path README.md --exclude-path _pages/404.md --exclude-path _pages/blog.md --exclude-path _posts/2018-12-22-distill.md --exclude-path _posts/2023-04-24-videos.md --exclude-path _books/the_godfather.md --verbose --no-progress './**/*.md' './**/*.html'
|
||||
|
||||
16
CUSTOMIZE.md
16
CUSTOMIZE.md
@ -59,10 +59,12 @@ You can create new pages by adding new Markdown files in the [\_pages](_pages/)
|
||||
|
||||
## Creating new blog posts
|
||||
|
||||
To create a new blog post, you can add a new Markdown file in the [\_posts](_posts/) directory. The [name of the file must follow](https://jekyllrb.com/docs/posts/#creating-posts) the format `YYYY-MM-DD-title.md`. The easiest way to do this is to copy an existing blog post and modify it. Note that some blog posts have optional fields in the [frontmatter](https://jekyllrb.com/docs/front-matter/) that are used to enable specific behaviors or functions.
|
||||
To create a new blog post, you can add a new Markdown file in the [\_posts](_posts/) directory, which is the [default location for posts in Jekyll](https://jekyllrb.com/docs/posts/). The [name of the file must follow](https://jekyllrb.com/docs/posts/#creating-posts) the format `YYYY-MM-DD-title.md`. The easiest way to do this is to copy an existing blog post and modify it. Note that some blog posts have optional fields in the [frontmatter](https://jekyllrb.com/docs/front-matter/) that are used to enable specific behaviors or functions.
|
||||
|
||||
If you want to create blog posts that are not ready to be published, but you want to track it with git, you can create a [\_drafts](https://jekyllrb.com/docs/posts/#drafts) directory and store them there.
|
||||
|
||||
Note that `posts` is also a collection, but it is a default collection created automatically by Jekyll. To access the posts, you can use the `site.posts` variable in your templates.
|
||||
|
||||
## Creating new projects
|
||||
|
||||
You can create new projects by adding new Markdown files in the [\_projects](_projects/) directory. The easiest way to do this is to copy an existing project and modify it.
|
||||
@ -73,10 +75,14 @@ You can add news in the about page by adding new Markdown files in the [\_news](
|
||||
|
||||
## Adding Collections
|
||||
|
||||
This Jekyll theme implements `collections` to let you break up your work into categories. The theme comes with two default collections: `news` and `projects`. Items from the `news` collection are automatically displayed on the home page. Items from the `projects` collection are displayed on a responsive grid on projects page.
|
||||
This Jekyll theme implements [collections](https://jekyllrb.com/docs/collections/) to let you break up your work into categories. The theme comes with three default collections: `news`, `projects`, and `books`. Items from the `news` collection are automatically displayed on the home page, while items from the `projects` collection are displayed on a responsive grid on projects page and items from the `books` collection are displayed on its own `bookshelf` page inside `submenus`.
|
||||
|
||||
You can easily create your own collections, apps, short stories, courses, or whatever your creative work is. To do this, edit the collections in the [\_config.yml](_config.yml) file, create a corresponding folder, and create a landing page for your collection, similar to [\_pages/projects.md](_pages/projects.md).
|
||||
|
||||
If you wish to create a collection with support for categories and tags, like the blog posts, you just need to add this collection to the `jekyll-archives` section of your [\_config.yml](_config.yml) file. You can check how this is done with the `books` collection. For more information about customizing the archives section or creating your own archives page, check the [jekyll-archives-v2 documentation](https://george-gca.github.io/jekyll-archives-v2/).
|
||||
|
||||
To access the collections, you can use the `site.COLLECTION_NAME` variable in your templates.
|
||||
|
||||
## Adding a new publication
|
||||
|
||||
To add publications create a new entry in the [\_bibliography/papers.bib](_bibliography/papers.bib) file. You can find the BibTeX entry of a publication in Google Scholar by clicking on the quotation marks below the publication title, then clicking on "BibTeX", or also in the conference page itself. By default, the publications will be sorted by year and the most recent will be displayed first. You can change this behavior and more in the `Jekyll Scholar` section in [\_config.yml](_config.yml) file.
|
||||
@ -183,11 +189,9 @@ You can also:
|
||||
|
||||
- delete [\_includes/latest_posts.liquid](_includes/latest_posts.liquid)
|
||||
- delete [\_includes/related_posts.liquid](_includes/related_posts.liquid)
|
||||
- delete [\_layouts/archive-category.liquid](_layouts/archive-category.liquid)
|
||||
- delete [\_layouts/archive-tag.liquid](_layouts/archive-tag.liquid)
|
||||
- delete [\_layouts/archive-year.liquid](_layouts/archive-year.liquid)
|
||||
- delete [\_layouts/archive.liquid](_layouts/archive.liquid) (unless you have a custom collection that uses it)
|
||||
- delete [\_plugins/external-posts.rb](_plugins/external-posts.rb)
|
||||
- remove the `jekyll-archives` gem from the [Gemfile](Gemfile) and the `plugins` section in [\_config.yml](_config.yml)
|
||||
- remove the `jekyll-archives-v2` gem from the [Gemfile](Gemfile) and the `plugins` section in [\_config.yml](_config.yml) (unless you have a custom collection that uses it)
|
||||
- remove the `classifier-reborn` gem from the [Gemfile](Gemfile)
|
||||
|
||||
### Removing the news section
|
||||
|
||||
4
Gemfile
4
Gemfile
@ -4,7 +4,7 @@ gem 'jekyll'
|
||||
|
||||
# Core plugins that directly affect site building
|
||||
group :jekyll_plugins do
|
||||
gem 'jekyll-archives'
|
||||
gem 'jekyll-archives-v2'
|
||||
gem 'jekyll-email-protect'
|
||||
gem 'jekyll-feed'
|
||||
gem 'jekyll-get-json'
|
||||
@ -32,7 +32,7 @@ group :other_plugins do
|
||||
gem 'httparty'
|
||||
gem 'observer' # used by jekyll-scholar
|
||||
gem 'ostruct' # used by jekyll-twitter-plugin
|
||||
gem 'terser' # used by jekyll-terser
|
||||
# gem 'terser' # used by jekyll-terser
|
||||
# gem 'unicode_utils' -- should be already installed by jekyll
|
||||
# gem 'webrick' -- should be already installed by jekyll
|
||||
end
|
||||
|
||||
67
Gemfile.lock
67
Gemfile.lock
@ -1,8 +1,8 @@
|
||||
GIT
|
||||
remote: https://github.com/RobertoJBeltran/jekyll-terser.git
|
||||
revision: 2f737004fe4732b92021c84e4de71e6a8585ff01
|
||||
revision: 1085bf66d692799af09fe39f8162a1e6e42a3cc4
|
||||
specs:
|
||||
jekyll-terser (0.2.2)
|
||||
jekyll-terser (0.2.3)
|
||||
jekyll (>= 0.10.0)
|
||||
terser (>= 1.0.0)
|
||||
|
||||
@ -30,8 +30,13 @@ GEM
|
||||
latex-decode (~> 0.0)
|
||||
racc (~> 1.7)
|
||||
bigdecimal (3.1.9)
|
||||
citeproc (1.0.10)
|
||||
citeproc (1.1.0)
|
||||
date
|
||||
forwardable
|
||||
json
|
||||
namae (~> 1.0)
|
||||
observer (< 1.0)
|
||||
open-uri (< 1.0)
|
||||
citeproc-ruby (1.1.14)
|
||||
citeproc (~> 1.0, >= 1.0.9)
|
||||
csl (~> 1.6)
|
||||
@ -51,6 +56,7 @@ GEM
|
||||
addressable
|
||||
cssminify2 (2.0.1)
|
||||
csv (3.3.2)
|
||||
date (3.4.1)
|
||||
deep_merge (1.2.2)
|
||||
drb (2.2.1)
|
||||
em-websocket (0.5.3)
|
||||
@ -70,6 +76,7 @@ GEM
|
||||
ffi (1.17.1-x86_64-darwin)
|
||||
ffi (1.17.1-x86_64-linux-gnu)
|
||||
ffi (1.17.1-x86_64-linux-musl)
|
||||
forwardable (1.3.3)
|
||||
forwardable-extended (2.6.0)
|
||||
gemoji (4.1.0)
|
||||
google-protobuf (4.29.3)
|
||||
@ -96,25 +103,29 @@ GEM
|
||||
csv
|
||||
mini_mime (>= 1.0.0)
|
||||
multi_xml (>= 0.5.2)
|
||||
i18n (1.14.6)
|
||||
i18n (1.14.7)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.3.4)
|
||||
jekyll (4.4.1)
|
||||
addressable (~> 2.4)
|
||||
base64 (~> 0.2)
|
||||
colorator (~> 1.0)
|
||||
csv (~> 3.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 1.0)
|
||||
jekyll-sass-converter (>= 2.0, < 4.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
json (~> 2.6)
|
||||
kramdown (~> 2.3, >= 2.3.1)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (>= 0.3.6, < 0.5)
|
||||
mercenary (~> 0.3, >= 0.3.6)
|
||||
pathutil (~> 0.9)
|
||||
rouge (>= 3.0, < 5.0)
|
||||
safe_yaml (~> 1.0)
|
||||
terminal-table (>= 1.8, < 4.0)
|
||||
webrick (~> 1.7)
|
||||
jekyll-archives (2.3.0)
|
||||
jekyll-archives-v2 (0.0.6)
|
||||
activesupport
|
||||
jekyll (>= 3.6, < 5.0)
|
||||
jekyll-email-protect (1.1.0)
|
||||
jekyll-feed (0.17.0)
|
||||
@ -136,8 +147,8 @@ GEM
|
||||
jekyll-paginate-v2 (3.0.0)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
jekyll-regex-replace (1.1.0)
|
||||
jekyll-sass-converter (3.0.0)
|
||||
sass-embedded (~> 1.54)
|
||||
jekyll-sass-converter (3.1.0)
|
||||
sass-embedded (~> 1.75)
|
||||
jekyll-scholar (7.1.3)
|
||||
bibtex-ruby (~> 6.0)
|
||||
citeproc-ruby (~> 1.0)
|
||||
@ -157,7 +168,7 @@ GEM
|
||||
gemoji (>= 3, < 5)
|
||||
html-pipeline (~> 2.2)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
json (2.9.1)
|
||||
json (2.10.1)
|
||||
json-minify (0.0.3)
|
||||
json (> 0)
|
||||
kramdown (2.5.1)
|
||||
@ -169,7 +180,7 @@ GEM
|
||||
listen (3.9.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
logger (1.6.5)
|
||||
logger (1.6.6)
|
||||
loofah (2.24.0)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.12.0)
|
||||
@ -198,6 +209,10 @@ GEM
|
||||
nokogiri (1.18.3-x86_64-linux-musl)
|
||||
racc (~> 1.4)
|
||||
observer (0.1.2)
|
||||
open-uri (0.5.0)
|
||||
stringio
|
||||
time
|
||||
uri
|
||||
ostruct (0.6.1)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
@ -207,37 +222,40 @@ GEM
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.11.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.4.0)
|
||||
rexml (3.4.1)
|
||||
rouge (4.5.1)
|
||||
safe_yaml (1.0.5)
|
||||
sass-embedded (1.83.4-aarch64-linux-gnu)
|
||||
sass-embedded (1.85.1-aarch64-linux-gnu)
|
||||
google-protobuf (~> 4.29)
|
||||
sass-embedded (1.83.4-aarch64-linux-musl)
|
||||
sass-embedded (1.85.1-aarch64-linux-musl)
|
||||
google-protobuf (~> 4.29)
|
||||
sass-embedded (1.83.4-arm-linux-gnueabihf)
|
||||
sass-embedded (1.85.1-arm-linux-gnueabihf)
|
||||
google-protobuf (~> 4.29)
|
||||
sass-embedded (1.83.4-arm-linux-musleabihf)
|
||||
sass-embedded (1.85.1-arm-linux-musleabihf)
|
||||
google-protobuf (~> 4.29)
|
||||
sass-embedded (1.83.4-arm64-darwin)
|
||||
sass-embedded (1.85.1-arm64-darwin)
|
||||
google-protobuf (~> 4.29)
|
||||
sass-embedded (1.83.4-x86_64-darwin)
|
||||
sass-embedded (1.85.1-x86_64-darwin)
|
||||
google-protobuf (~> 4.29)
|
||||
sass-embedded (1.83.4-x86_64-linux-gnu)
|
||||
sass-embedded (1.85.1-x86_64-linux-gnu)
|
||||
google-protobuf (~> 4.29)
|
||||
sass-embedded (1.83.4-x86_64-linux-musl)
|
||||
sass-embedded (1.85.1-x86_64-linux-musl)
|
||||
google-protobuf (~> 4.29)
|
||||
sax-machine (1.3.2)
|
||||
securerandom (0.4.1)
|
||||
stringio (3.1.5)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
terser (1.2.4)
|
||||
terser (1.2.5)
|
||||
execjs (>= 0.3.0, < 3)
|
||||
time (0.4.1)
|
||||
date
|
||||
tzinfo (2.0.6)
|
||||
concurrent-ruby (~> 1.0)
|
||||
uglifier (4.2.1)
|
||||
execjs (>= 0.3.0, < 3)
|
||||
unicode-display_width (2.6.0)
|
||||
uri (1.0.2)
|
||||
uri (1.0.3)
|
||||
webrick (1.9.1)
|
||||
|
||||
PLATFORMS
|
||||
@ -260,7 +278,7 @@ DEPENDENCIES
|
||||
feedjira
|
||||
httparty
|
||||
jekyll
|
||||
jekyll-archives
|
||||
jekyll-archives-v2
|
||||
jekyll-email-protect
|
||||
jekyll-feed
|
||||
jekyll-get-json
|
||||
@ -279,7 +297,6 @@ DEPENDENCIES
|
||||
jemoji
|
||||
observer
|
||||
ostruct
|
||||
terser
|
||||
|
||||
BUNDLED WITH
|
||||
2.6.2
|
||||
2.6.5
|
||||
|
||||
@ -210,7 +210,7 @@ If you installed **al-folio** as described above, you can manually update your c
|
||||
# Assuming the current directory is <your-repo-name>
|
||||
$ git remote add upstream https://github.com/alshedivat/al-folio.git
|
||||
$ git fetch upstream
|
||||
$ git rebase v0.13.4
|
||||
$ git rebase v0.14.0
|
||||
```
|
||||
|
||||
If you have extensively customized a previous version, it might be trickier to upgrade.
|
||||
|
||||
27
_books/the_godfather.md
Normal file
27
_books/the_godfather.md
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
layout: book-review
|
||||
title: The Godfather
|
||||
author: Mario Puzo
|
||||
cover: assets/img/book_covers/the_godfather.jpg
|
||||
olid: OL43499941M # use Open Library ID to fetch cover (if no `cover` is provided)
|
||||
isbn: 7539967447 # use ISBN to fetch cover (if no `olid` is provided, dashes are optional)
|
||||
categories: classics crime historical-fiction mystery novels thriller
|
||||
tags: top-100
|
||||
buy_link: https://www.amazon.com/Godfather-Deluxe-Mario-Puzo/dp/0593542592
|
||||
started: 2024-08-23
|
||||
finished: 2024-09-07
|
||||
released: 1969
|
||||
stars: 5
|
||||
goodreads_review: 6318556633
|
||||
status: Finished
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sollicitudin eros sit amet ante aliquet, sit amet vulputate lectus mattis. Aenean ullamcorper pretium nunc, sed egestas lorem elementum id. Nulla id mi id neque ultrices egestas ut in urna. Sed ac ultricies nunc. Nam convallis placerat urna id egestas. Nulla porta, est interdum vestibulum venenatis, lorem odio laoreet sapien, in pulvinar tellus eros a dolor. Vivamus sapien justo, ullamcorper a mi eget, scelerisque euismod nunc. In augue augue, ultrices a ornare non, tincidunt quis justo. Donec sit amet consectetur eros. Nullam neque leo, tincidunt id ipsum ac, volutpat lobortis mi. Phasellus consequat ultricies arcu, eu semper ligula ultrices eget. Ut in fringilla elit, ac tincidunt nisi.
|
||||
|
||||
Nunc commodo elit nec turpis feugiat consectetur. Nullam in nisi egestas, fermentum ligula hendrerit, euismod enim. Nulla eu hendrerit eros. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin et velit ante. Vestibulum pretium vitae quam et sagittis. Proin eu nunc vel velit accumsan eleifend. Nulla facilisis, diam tempus imperdiet ultrices, massa ipsum consequat orci, sed efficitur eros mi a felis. Cras lobortis turpis sem, sed lobortis nunc ullamcorper tristique. Nam vehicula rhoncus ante, in faucibus sapien scelerisque et. Donec semper libero et tincidunt mattis. In vestibulum, nulla pretium dictum commodo, risus nulla vestibulum felis, at tincidunt massa mi in odio. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
|
||||
|
||||
Donec efficitur ultrices purus sit amet imperdiet. Nam consequat metus in erat sodales faucibus. Aliquam maximus fermentum nulla id finibus. Aliquam iaculis sed odio vel rutrum. Curabitur sed odio est. Praesent nec sollicitudin tortor. Praesent pharetra, turpis quis porttitor rhoncus, ante massa fringilla lacus, nec porttitor magna turpis vitae felis. Nullam tristique massa id odio imperdiet, nec sodales massa egestas. Proin nisi metus, euismod sed accumsan vitae, facilisis vel risus. Morbi suscipit auctor erat, nec viverra elit fringilla eu. Mauris congue, purus id tristique facilisis, felis nisi efficitur magna, eu consectetur augue sem vitae lacus. Aliquam erat volutpat. Cras at nibh ultricies, volutpat arcu vitae, dictum est. In ac dolor sagittis, egestas lectus et, semper nisl. Etiam consectetur purus vitae sapien porttitor auctor.
|
||||
|
||||
Nulla sit amet venenatis odio. Suspendisse ac lacus quis augue mollis tempus vel in lorem. Donec augue turpis, eleifend nec nibh eu, elementum dictum metus. Proin ut est ligula. Etiam vehicula facilisis metus, sit amet consectetur risus ullamcorper porttitor. In congue nibh quis sollicitudin iaculis. Donec a mollis lorem, non mollis lacus. Nulla et leo ex. Aliquam erat volutpat. Nam sit amet tincidunt mauris. Vivamus vitae est sit amet nisi semper egestas. Donec in diam pharetra, commodo diam vitae, imperdiet ligula. Cras iaculis ac diam eget vehicula. Proin suscipit ante enim, quis vehicula mi porta bibendum. Aliquam a diam porttitor, sollicitudin justo vitae, tempor odio.
|
||||
|
||||
Cras fermentum dignissim pretium. Donec quis turpis eu neque lacinia facilisis in sit amet nibh. Nulla non tortor ultricies, euismod est in, blandit nibh. Ut a neque metus. Sed convallis condimentum nibh quis finibus. Praesent aliquam sem iaculis eros maximus accumsan. Nulla venenatis mauris id aliquet maximus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin at enim vitae ex porttitor vestibulum sed eget nibh. Suspendisse accumsan feugiat quam eget ultricies.
|
||||
23
_config.yml
23
_config.yml
@ -144,14 +144,14 @@ newsletter:
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
collections:
|
||||
books:
|
||||
output: true
|
||||
news:
|
||||
defaults:
|
||||
layout: post
|
||||
output: true
|
||||
permalink: /:collection/:title/
|
||||
projects:
|
||||
output: true
|
||||
permalink: /:collection/:title/
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Jekyll settings
|
||||
@ -198,7 +198,7 @@ keep_files:
|
||||
|
||||
# Plug-ins
|
||||
plugins:
|
||||
- jekyll-archives
|
||||
- jekyll-archives-v2
|
||||
- jekyll-email-protect
|
||||
- jekyll-feed
|
||||
- jekyll-get-json
|
||||
@ -247,15 +247,14 @@ terser:
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
jekyll-archives:
|
||||
enabled: [year, tags, categories] # enables year, tag and category archives (remove if you need to disable one of them).
|
||||
layouts:
|
||||
year: archive-year
|
||||
tag: archive-tag
|
||||
category: archive-category
|
||||
permalinks:
|
||||
year: "/blog/:year/"
|
||||
tag: "/blog/tag/:name/"
|
||||
category: "/blog/category/:name/"
|
||||
posts:
|
||||
enabled: [year, tags, categories] # enables year, tag and category archives (remove if you need to disable one of them).
|
||||
permalinks:
|
||||
year: "/blog/:year/"
|
||||
tags: "/blog/:type/:name/"
|
||||
categories: "/blog/:type/:name/"
|
||||
books:
|
||||
enabled: [year, tags, categories] # enables year, tag and category archives (remove if you need to disable one of them).
|
||||
|
||||
display_tags: ["formatting", "images", "links", "math", "code", "blockquotes"] # these tags will be displayed on the front page of your blog
|
||||
display_categories: ["external-services"] # these categories will be displayed on the front page of your blog
|
||||
|
||||
@ -1,30 +0,0 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
<div class="post">
|
||||
<header class="post-header">
|
||||
<h1 class="post-title"><i class="fa-solid fa-tag fa-sm"></i> {{ page.title }}</h1>
|
||||
<p class="post-description">an archive of posts in this category</p>
|
||||
</header>
|
||||
|
||||
<article class="archive">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-borderless">
|
||||
{% for post in page.posts %}
|
||||
<tr>
|
||||
<th scope="row">{{ post.date | date: '%b %d, %Y' }}</th>
|
||||
<td>
|
||||
{% if post.redirect == blank %}
|
||||
<a class="post-link" href="{{ post.url | relative_url }}">{{ post.title }}</a>
|
||||
{% elsif post.redirect contains '://' %}
|
||||
<a class="post-link" href="{{ post.redirect }}" target="_blank">{{ post.title }}</a>
|
||||
{% else %}
|
||||
<a class="post-link" href="{{ post.redirect | relative_url }}">{{ post.title }}</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
@ -1,30 +0,0 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
<div class="post">
|
||||
<header class="post-header">
|
||||
<h1 class="post-title"><i class="fa-solid fa-hashtag fa-sm"></i> {{ page.title }}</h1>
|
||||
<p class="post-description">an archive of posts with this tag</p>
|
||||
</header>
|
||||
|
||||
<article class="archive">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-borderless">
|
||||
{% for post in page.posts %}
|
||||
<tr>
|
||||
<th scope="row">{{ post.date | date: '%b %d, %Y' }}</th>
|
||||
<td>
|
||||
{% if post.redirect == blank %}
|
||||
<a class="post-link" href="{{ post.url | relative_url }}">{{ post.title }}</a>
|
||||
{% elsif post.redirect contains '://' %}
|
||||
<a class="post-link" href="{{ post.redirect }}" target="_blank">{{ post.title }}</a>
|
||||
{% else %}
|
||||
<a class="post-link" href="{{ post.redirect | relative_url }}">{{ post.title }}</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
@ -1,30 +0,0 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
<div class="post">
|
||||
<header class="post-header">
|
||||
<h1 class="post-title"><i class="fa-solid fa-calendar fa-sm"></i> {{ page.date | date: '%Y' }}</h1>
|
||||
<p class="post-description">an archive of posts from this year</p>
|
||||
</header>
|
||||
|
||||
<article class="archive">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-borderless">
|
||||
{% for post in page.posts %}
|
||||
<tr>
|
||||
<th scope="row">{{ post.date | date: '%b %d, %Y' }}</th>
|
||||
<td>
|
||||
{% if post.redirect == blank %}
|
||||
<a class="post-link" href="{{ post.url | relative_url }}">{{ post.title }}</a>
|
||||
{% elsif post.redirect contains '://' %}
|
||||
<a class="post-link" href="{{ post.redirect }}" target="_blank">{{ post.title }}</a>
|
||||
{% else %}
|
||||
<a class="post-link" href="{{ post.redirect | relative_url }}">{{ post.title }}</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
38
_layouts/archive.liquid
Normal file
38
_layouts/archive.liquid
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
<div class="post">
|
||||
<header class="post-header">
|
||||
{% if page.type == 'categories' %}
|
||||
<h1 class="post-title"><i class="fa-solid fa-tag fa-sm"></i> {{ page.title }}</h1>
|
||||
<p class="post-description">an archive of {{ page.collection_name }} in this category</p>
|
||||
{% elsif page.type == 'year' %}
|
||||
<h1 class="post-title"><i class="fa-solid fa-calendar fa-sm"></i> {{ page.date | date: '%Y' }}</h1>
|
||||
<p class="post-description">an archive of {{ page.collection_name }} from this year</p>
|
||||
{% elsif page.type == 'tags' %}
|
||||
<h1 class="post-title"><i class="fa-solid fa-hashtag fa-sm"></i> {{ page.title }}</h1>
|
||||
<p class="post-description">an archive of {{ page.collection_name }} with this tag</p>
|
||||
{% endif %}
|
||||
</header>
|
||||
|
||||
<article class="archive">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-borderless">
|
||||
{% for document in page.documents %}
|
||||
<tr>
|
||||
<th scope="row">{{ document.date | date: '%b %d, %Y' }}</th>
|
||||
<td>
|
||||
{% if document.redirect == blank %}
|
||||
<a class="post-link" href="{{ document.url | relative_url }}">{{ document.title }}</a>
|
||||
{% elsif document.redirect contains '://' %}
|
||||
<a class="post-link" href="{{ document.redirect }}" target="_blank">{{ document.title }}</a>
|
||||
{% else %}
|
||||
<a class="post-link" href="{{ document.redirect | relative_url }}">{{ document.title }}</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
257
_layouts/book-review.liquid
Normal file
257
_layouts/book-review.liquid
Normal file
@ -0,0 +1,257 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
{% assign year = page.started | date: '%Y' %}
|
||||
{% assign tags = page.tags | join: '' %}
|
||||
{% assign categories = page.categories | join: '' %}
|
||||
|
||||
{% if page._styles %}
|
||||
<!-- Page/Post style -->
|
||||
<style type="text/css">
|
||||
{{ page._styles }}
|
||||
</style>
|
||||
{% endif %}
|
||||
|
||||
<div class="post">
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">{{ page.title }}</h1>
|
||||
{% if page.author or page.released %}
|
||||
<p class="post-meta">
|
||||
{% if page.author %}
|
||||
{{ page.author }}
|
||||
{% endif %}
|
||||
{% if page.author and page.released %} · {% endif %}
|
||||
{% if page.released %}
|
||||
{{ page.released }}
|
||||
{% endif %}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
{% if page.started or page.finished or page.stars %}
|
||||
<p class="post-meta">
|
||||
{% if page.started %}
|
||||
<i class="fa-solid fa-play fa-sm" style="color: var(--global-tip-block) !important"></i> <em>{{ page.started }}</em>
|
||||
{% endif %}
|
||||
{% if page.finished %}
|
||||
{% if page.started %}
|
||||
·
|
||||
{% endif %}
|
||||
<i class="fa-solid fa-stop fa-sm" style="color: #e56565 !important"></i> <em>{{ page.finished }}</em>
|
||||
{% endif %}
|
||||
{% if page.stars %}
|
||||
{% if page.started or page.finished %}
|
||||
·
|
||||
{% endif %}
|
||||
{% if page.goodreads_review %}
|
||||
<a target="_blank" href="https://www.goodreads.com/review/show/{{ page.goodreads_review }}"><i class="fa-brands fa-goodreads-g"></i>
|
||||
{% endif %}
|
||||
{% assign full_stars = page.stars | floor %}
|
||||
{% assign half_star = page.stars | minus: full_stars %}
|
||||
{% assign empty_stars = 5 | minus: full_stars %}
|
||||
{% if half_star > 0 %}
|
||||
{% assign empty_stars = empty_stars | minus: 1 %}
|
||||
{% endif %}
|
||||
{% for i in (1..full_stars) -%}
|
||||
<i class="fa-solid fa-star fa-sm"></i>
|
||||
{%- endfor -%}
|
||||
{%- if half_star > 0 %}<i class="fa-solid fa-star-half-stroke fa-sm"></i>{% endif -%}
|
||||
{%- for i in (1..empty_stars) -%}
|
||||
<i class="fa-regular fa-star fa-sm"></i>
|
||||
{%- endfor -%}
|
||||
{% if page.goodreads_review %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if page.buy_link %}
|
||||
{% if page.started or page.finished or page.stars %}
|
||||
·
|
||||
{% endif %}
|
||||
<a target="_blank" href="{{ page.buy_link }}"
|
||||
><i class="fa-solid fa-cart-shopping"></i>
|
||||
{% assign is_amazon_link = page.buy_link | slice: 0, 19 %}
|
||||
{% if is_amazon_link == 'https://www.amazon.' %}
|
||||
<i class="fa-brands fa-amazon"></i>
|
||||
{% endif %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
{% endif %}
|
||||
<p class="post-tags">
|
||||
<a href="{{ year | prepend: '/books/' | relative_url }}"> <i class="fa-solid fa-calendar fa-sm"></i> {{ year }}</a>
|
||||
{% if tags != '' %}
|
||||
·
|
||||
{% for tag in page.tags %}
|
||||
<a href="{{ tag | slugify | prepend: '/books/tag/' | relative_url }}"> <i class="fa-solid fa-hashtag fa-sm"></i> {{ tag }}</a>
|
||||
{% unless forloop.last %}
|
||||
|
||||
{% endunless %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if categories != '' %}
|
||||
·
|
||||
{% for category in page.categories %}
|
||||
<a href="{{ category | slugify | prepend: '/books/category/' | relative_url }}"> <i class="fa-solid fa-tag fa-sm"></i> {{ category }}</a>
|
||||
{% unless forloop.last %}
|
||||
|
||||
{% endunless %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</p>
|
||||
<hr>
|
||||
</header>
|
||||
|
||||
<article>
|
||||
{% if content == '' %}
|
||||
<figure class="empty-review">
|
||||
{% if page.cover %}
|
||||
<img class="empty-review-cover" alt="{{ page.title }} cover" src="{{ site.baseurl }}/{{ page.cover }}">
|
||||
<figcaption class="empty-review-caption">
|
||||
Cover of <em>{{ page.title }}</em>
|
||||
</figcaption>
|
||||
{% elsif page.olid %}
|
||||
<img class="empty-review-cover" alt="{{ page.title }} cover" src="http://covers.openlibrary.org/b/olid/{{ page.olid }}-L.jpg?default=false">
|
||||
<figcaption class="empty-review-caption">
|
||||
Cover of <em>{{ page.title }}</em> on the <a href="https://openlibrary.org/olid/{{ page.olid }}">Open Library</a>.
|
||||
</figcaption>
|
||||
{% elsif page.isbn %}
|
||||
<img class="empty-review-cover" alt="{{ page.title }} cover" src="http://covers.openlibrary.org/b/isbn/{{ page.isbn }}-L.jpg?default=false">
|
||||
<figcaption class="empty-review-caption">
|
||||
Cover of <em>{{ page.title }}</em> on the <a href="https://openlibrary.org/isbn/{{ page.isbn }}">Open Library</a>.
|
||||
</figcaption>
|
||||
{% endif %}
|
||||
</figure>
|
||||
{% assign status = page.status | upcase %}
|
||||
<div class="clearfix">
|
||||
<h4>{{ status }}</h4>
|
||||
</div>
|
||||
{% else %}
|
||||
<figure>
|
||||
{% if page.cover %}
|
||||
<img alt="{{ page.title }} cover" src="{{ site.baseurl }}/{{ page.cover }}">
|
||||
<figcaption>
|
||||
Cover of <em>{{ page.title }}</em>
|
||||
</figcaption>
|
||||
{% elsif page.olid %}
|
||||
<img alt="{{ page.title }} cover" src="http://covers.openlibrary.org/b/olid/{{ page.olid }}-L.jpg?default=false">
|
||||
<figcaption>
|
||||
Cover of <em>{{ page.title }}</em> on the <a href="https://openlibrary.org/olid/{{ page.olid }}">Open Library</a>.
|
||||
</figcaption>
|
||||
{% elsif page.isbn %}
|
||||
<img alt="{{ page.title }} cover" src="http://covers.openlibrary.org/b/isbn/{{ page.isbn }}-L.jpg?default=false">
|
||||
<figcaption>
|
||||
Cover of <em>{{ page.title }}</em> on the <a href="https://openlibrary.org/isbn/{{ page.isbn }}">Open Library</a>.
|
||||
</figcaption>
|
||||
{% endif %}
|
||||
</figure>
|
||||
<br class="mobile-break" clear="right">
|
||||
<h4>
|
||||
{% if page.start %} Start Date: {{ page.start | date: '%-d %B %Y' }}. {% endif %}
|
||||
{% if page.end %} End Date: {{ page.end | date: '%-d %B %Y' }}. {% endif %}
|
||||
</h4>
|
||||
{{ content }}
|
||||
{% endif %}
|
||||
</article>
|
||||
|
||||
{% if site.giscus and page.giscus_comments %}
|
||||
{% include giscus.liquid %}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<style>
|
||||
figure {
|
||||
float: none;
|
||||
width: auto;
|
||||
display: block;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
|
||||
}
|
||||
figure > img {
|
||||
|
||||
vertical-align: top;
|
||||
display: block;
|
||||
margin-right: 0px;
|
||||
margin-left: 0px;
|
||||
padding: 0px;
|
||||
|
||||
}
|
||||
figure figcaption {
|
||||
|
||||
display: block;
|
||||
caption-side: bottom;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 600px) {
|
||||
|
||||
.empty-review{
|
||||
float: left;
|
||||
display: block; /* in-line block; */
|
||||
margin: 0px 0px 0px 0px; /* adjust as needed */
|
||||
padding: 0px 0px 0px 20px;
|
||||
/* top right bottom left */
|
||||
}
|
||||
|
||||
.empty-review-caption {
|
||||
caption-side: left;
|
||||
text-align: left;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.empty-review-cover {
|
||||
width:250px;
|
||||
vertical-align: top;
|
||||
padding-right: 40px;
|
||||
}
|
||||
|
||||
figure {
|
||||
|
||||
float: right;
|
||||
display: in-line block; /* in-line block; */
|
||||
margin: 0px 0px 0px 0px; /* adjust as needed */
|
||||
padding: 0px 0px 0px 20px;
|
||||
/* top right bottom left */
|
||||
}
|
||||
|
||||
figure img {
|
||||
width:300px;
|
||||
vertical-align: top;
|
||||
|
||||
}
|
||||
|
||||
figure figcaption {
|
||||
caption-side: bottom;
|
||||
text-align: left;
|
||||
|
||||
}
|
||||
|
||||
.mobile-break { display: none; }
|
||||
|
||||
/* =Blockquote
|
||||
-------------------------------------------------------------- */
|
||||
blockquote {
|
||||
|
||||
position: relative;
|
||||
marign: 0px;
|
||||
display: table;
|
||||
|
||||
}
|
||||
blockquote:before, blockquote:after {
|
||||
|
||||
/* properties to format the block quotes /*
|
||||
|
||||
}
|
||||
blockquote:before {
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
|
||||
}
|
||||
blockquote:after {
|
||||
top: 0;
|
||||
right: 0;
|
||||
|
||||
}
|
||||
</style>
|
||||
49
_layouts/book-shelf.liquid
Normal file
49
_layouts/book-shelf.liquid
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
{{ content }}
|
||||
|
||||
{% if page.collection and page.collection.size > 0 %}
|
||||
{% assign collection = site[page.collection] %}
|
||||
{% if collection and collection.size > 0 %}
|
||||
{% for item in collection reversed %}
|
||||
{% assign current_year = item.date | date: '%Y' %}
|
||||
{% if current_year != year %}
|
||||
{% unless forloop.first %}
|
||||
</ul>
|
||||
{% endunless %}
|
||||
<h1 id="y{{item.date | date: "%Y"}}">
|
||||
<a href="{{ current_year | prepend: '/books/' | relative_url }}">{{ current_year }}</a>
|
||||
</h1>
|
||||
<ul>
|
||||
{% assign year = current_year %}
|
||||
{% endif %}
|
||||
|
||||
<figure class="cover">
|
||||
<a class="cover-link" href="{{ item.url | relative_url }}">
|
||||
{% if item.cover %}
|
||||
<img alt="{{ item.title }} cover" src="{{ item.cover | prepend: page.covers | relative_url }}" style="height:200px">
|
||||
{% elsif item.olid %}
|
||||
<img alt="{{ item.title }} cover" src="http://covers.openlibrary.org/b/olid/{{ item.olid }}-L.jpg?default=false" style="height:200px">
|
||||
{% elsif item.isbn %}
|
||||
<img alt="{{ item.title }} cover" src="http://covers.openlibrary.org/b/isbn/{{ item.isbn }}-L.jpg?default=false" style="height:200px">
|
||||
{% endif %}
|
||||
{% if item.status %}
|
||||
{% assign statuses = 'abandoned,finished,interested,paused,queued,reading,reread' | split: ',' %}
|
||||
{% assign status = item.status | downcase | strip %}
|
||||
{% if statuses contains status %}
|
||||
<figcaption class="{{ status | downcase }}">{{ status | upcase }}</figcaption>
|
||||
{% else %}
|
||||
<figcaption class="uncategorized">UNCATEGORIZED</figcaption>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<figcaption class="uncategorized">UNCATEGORIZED</figcaption>
|
||||
{% endif %}
|
||||
</a>
|
||||
</figure>
|
||||
{% if forloop.last %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
@ -4,6 +4,7 @@ layout: default
|
||||
{% assign year = page.date | date: '%Y' %}
|
||||
{% assign tags = page.tags | join: '' %}
|
||||
{% assign categories = page.categories | join: '' %}
|
||||
{% assign url_beginning = page.url | slice: 0, 6 %}
|
||||
|
||||
{% if page._styles %}
|
||||
<!-- Page/Post style -->
|
||||
@ -12,8 +13,6 @@ layout: default
|
||||
</style>
|
||||
{% endif %}
|
||||
|
||||
{% assign url_beginning = page.url | slice: 0, 6 %}
|
||||
|
||||
<div class="post">
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">{{ page.title }}</h1>
|
||||
@ -25,7 +24,7 @@ layout: default
|
||||
</p>
|
||||
<p class="post-tags">
|
||||
{% if url_beginning == '/blog/' %}
|
||||
<a href="{{ year | prepend: '/blog/' | prepend: site.baseurl}}"> <i class="fa-solid fa-calendar fa-sm"></i> {{ year }} </a>
|
||||
<a href="{{ year | prepend: '/blog/' | relative_url }}"> <i class="fa-solid fa-calendar fa-sm"></i> {{ year }} </a>
|
||||
{% else %}
|
||||
<i class="fa-solid fa-calendar fa-sm"></i> {{ year }}
|
||||
{% endif %}
|
||||
@ -33,7 +32,7 @@ layout: default
|
||||
·
|
||||
{% for tag in page.tags %}
|
||||
{% if url_beginning == '/blog/' %}
|
||||
<a href="{{ tag | slugify | prepend: '/blog/tag/' | prepend: site.baseurl}}"> <i class="fa-solid fa-hashtag fa-sm"></i> {{ tag }}</a>
|
||||
<a href="{{ tag | slugify | prepend: '/blog/tag/' | relative_url }}"> <i class="fa-solid fa-hashtag fa-sm"></i> {{ tag }}</a>
|
||||
{% else %}
|
||||
<i class="fa-solid fa-hashtag fa-sm"></i> {{ tag }}
|
||||
{% endif %}
|
||||
@ -47,9 +46,7 @@ layout: default
|
||||
·
|
||||
{% for category in page.categories %}
|
||||
{% if url_beginning == '/blog/' %}
|
||||
<a href="{{ category | slugify | prepend: '/blog/category/' | prepend: site.baseurl}}">
|
||||
<i class="fa-solid fa-tag fa-sm"></i> {{ category -}}
|
||||
</a>
|
||||
<a href="{{ category | slugify | prepend: '/blog/category/' | relative_url }}"> <i class="fa-solid fa-tag fa-sm"></i> {{ category -}}</a>
|
||||
{% else %}
|
||||
<i class="fa-solid fa-tag fa-sm"></i> {{ category }}
|
||||
{% endif %}
|
||||
|
||||
@ -85,7 +85,7 @@ pagination:
|
||||
|
||||
<p class="post-meta">
|
||||
{{ read_time }} min read ·
|
||||
<a href="{{ year | prepend: '/blog/' | prepend: site.baseurl}}">
|
||||
<a href="{{ year | prepend: '/blog/' | relative_url }}">
|
||||
<i class="fa-solid fa-calendar fa-sm"></i> {{ year }} </a>
|
||||
</p>
|
||||
</div>
|
||||
@ -148,13 +148,13 @@ pagination:
|
||||
{% endif %}
|
||||
</p>
|
||||
<p class="post-tags">
|
||||
<a href="{{ year | prepend: '/blog/' | prepend: site.baseurl}}">
|
||||
<a href="{{ year | prepend: '/blog/' | relative_url }}">
|
||||
<i class="fa-solid fa-calendar fa-sm"></i> {{ year }} </a>
|
||||
|
||||
{% if tags != "" %}
|
||||
·
|
||||
{% for tag in post.tags %}
|
||||
<a href="{{ tag | slugify | prepend: '/blog/tag/' | prepend: site.baseurl}}">
|
||||
<a href="{{ tag | slugify | prepend: '/blog/tag/' | relative_url }}">
|
||||
<i class="fa-solid fa-hashtag fa-sm"></i> {{ tag }}</a>
|
||||
{% unless forloop.last %}
|
||||
|
||||
@ -165,7 +165,7 @@ pagination:
|
||||
{% if categories != "" %}
|
||||
·
|
||||
{% for category in post.categories %}
|
||||
<a href="{{ category | slugify | prepend: '/blog/category/' | prepend: site.baseurl}}">
|
||||
<a href="{{ category | slugify | prepend: '/blog/category/' | relative_url }}">
|
||||
<i class="fa-solid fa-tag fa-sm"></i> {{ category }}</a>
|
||||
{% unless forloop.last %}
|
||||
|
||||
|
||||
13
_pages/books.md
Normal file
13
_pages/books.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
layout: book-shelf
|
||||
title: bookshelf
|
||||
permalink: /books/
|
||||
nav: false
|
||||
collection: books
|
||||
---
|
||||
|
||||
> What an astonishing thing a book is. It's a flat object made from a tree with flexible parts on which are imprinted lots of funny dark squiggles. But one glance at it and you're inside the mind of another person, maybe somebody dead for thousands of years. Across the millennia, an author is speaking clearly and silently inside your head, directly to you. Writing is perhaps the greatest of human inventions, binding together people who never knew each other, citizens of distant epochs. Books break the shackles of time. A book is proof that humans are capable of working magic.
|
||||
>
|
||||
> -- Carl Sagan, Cosmos, Part 11: The Persistence of Memory (1980)
|
||||
|
||||
## Books that I am reading, have read, or will read
|
||||
@ -5,11 +5,8 @@ nav: true
|
||||
nav_order: 8
|
||||
dropdown: true
|
||||
children:
|
||||
- title: publications
|
||||
permalink: /publications/
|
||||
- title: divider
|
||||
- title: projects
|
||||
permalink: /projects/
|
||||
- title: bookshelf
|
||||
permalink: /books/
|
||||
- title: divider
|
||||
- title: blog
|
||||
permalink: /blog/
|
||||
|
||||
@ -1343,3 +1343,77 @@ ninja-keys::part(ninja-input-wrapper) {
|
||||
background-color: var(--global-theme-color);
|
||||
color: var(--global-text-color);
|
||||
}
|
||||
|
||||
figure.cover {
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
margin: 0.5rem; /* adjust as needed */
|
||||
|
||||
img {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
figcaption.abandoned {
|
||||
font-family: monospace;
|
||||
color: #23212d;
|
||||
text-transform: uppercase;
|
||||
background-color: #ee5f5b;
|
||||
}
|
||||
|
||||
figcaption.finished,
|
||||
figcaption.watched {
|
||||
font-family: monospace;
|
||||
color: #23212d;
|
||||
text-transform: uppercase;
|
||||
background-color: #62c462;
|
||||
}
|
||||
|
||||
figcaption.interested {
|
||||
font-family: monospace;
|
||||
color: #23212d;
|
||||
text-transform: uppercase;
|
||||
background-color: #7691db;
|
||||
}
|
||||
|
||||
figcaption.paused {
|
||||
font-family: monospace;
|
||||
color: #23212d;
|
||||
text-transform: uppercase;
|
||||
background-color: #bdac7e;
|
||||
}
|
||||
|
||||
figcaption.queued {
|
||||
font-family: monospace;
|
||||
color: #23212d;
|
||||
text-transform: uppercase;
|
||||
background-color: #9e76b5;
|
||||
}
|
||||
|
||||
figcaption.reading,
|
||||
figcaption.watching {
|
||||
font-family: monospace;
|
||||
color: #23212d;
|
||||
text-transform: uppercase;
|
||||
background-color: #f89406;
|
||||
}
|
||||
|
||||
figcaption.reread,
|
||||
figcaption.rewatch {
|
||||
font-family: monospace;
|
||||
color: #23212d;
|
||||
text-transform: uppercase;
|
||||
background-color: #a6517d;
|
||||
}
|
||||
|
||||
figcaption.uncategorized {
|
||||
font-family: monospace;
|
||||
color: #23212d;
|
||||
text-transform: uppercase;
|
||||
background-color: #b0abb3;
|
||||
}
|
||||
|
||||
/* mouse over link */
|
||||
a.cover-link:hover {
|
||||
color: #23212d !important;
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@ ninja.data = [
|
||||
{%- unless child.title == 'divider' -%}
|
||||
{
|
||||
{%- assign title = child.title | escape | strip -%}
|
||||
{%- if child.permalink contains "/blog/" -%}{%- assign url = "/blog/" -%} {%- else -%}{%- assign url = child.url -%}{%- endif -%}
|
||||
{%- if child.permalink contains "/blog/" -%}{%- assign url = "/blog/" -%} {%- else -%}{%- assign url = child.permalink -%}{%- endif -%}
|
||||
id: "dropdown-{{ title | slugify }}",
|
||||
title: "{{ title | truncatewords: 13 }}",
|
||||
description: "{{ child.description | strip_html | strip_newlines | escape | strip }}",
|
||||
|
||||
BIN
assets/img/book_covers/the_godfather.jpg
Normal file
BIN
assets/img/book_covers/the_godfather.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 53 KiB |
@ -1,7 +1,7 @@
|
||||
# this file uses prebuilt image in dockerhub
|
||||
services:
|
||||
jekyll:
|
||||
image: amirpourmand/al-folio:v0.13.4
|
||||
image: amirpourmand/al-folio:v0.14.0
|
||||
build: .
|
||||
# uncomment these if you are having this issue with the build:
|
||||
# /usr/local/bundle/gems/jekyll-4.3.4/lib/jekyll/site.rb:509:in `initialize': Permission denied @ rb_sysopen - /srv/jekyll/.jekyll-cache/.gitignore (Errno::EACCES)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user