book-theme 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a6520f7755ae7ebedbf05144b70692adfd1fe1bc4db914b1fd9ac829d4d19ff
4
- data.tar.gz: 20441a254282632d698a6692a3d1f00011013bb766ce4c72d55e7dc97c528fc3
3
+ metadata.gz: 198863540aee8969455a65d3b5ff4006d542981297a6702c3355a0de59d92a43
4
+ data.tar.gz: 8797c136ed4324d2baa1cdcdec68ba213f79b645d5a3b903b8c6d5fca3982029
5
5
  SHA512:
6
- metadata.gz: e27ae05915cfe309439a2ba621a5824551799e15493e50d35c49a6cea61fde77818340f48ac9f2371a463bc4db8f4ad0ff1450b634fb00377f89d7764c160785
7
- data.tar.gz: ff7318624053570366f1424b92ad004a4d8105223c17c383f913823eb8208b20d0686933eff143eaa6da78398525dbdbf0b6b94886be97540cdf37bb0f7758f3
6
+ metadata.gz: da0b6787a4754829cb1f92dbb518132ca8c727d3ca94d44a701e83bd6bc07d109d0266bbbf516002f6bf82c06aa0835136c68ea10e0fdee4f6a7752f07cb09cd
7
+ data.tar.gz: bab8ca3caa952f198764db8bb77c55660c06e6402cdffb4081be6541d652ae0d25ca6f010dcc4a5649af4620db5a6f9e0d9e03612c7fb8efda7d6331878456d8
@@ -0,0 +1,74 @@
1
+ ---
2
+ title: "Dark Night of the Soul"
3
+ series: "Pandore"
4
+ author: "DA Rasmussen"
5
+ genre: "Occult/Supernatural"
6
+ published: "03/2025"
7
+ pages: "75"
8
+ status: "Completed"
9
+ traits: ["Scary", "Provoking", "Short"]
10
+ cover_image: "/assets/covers/1x01.jpg"
11
+ quote: "That was the one case that should’ve made him Detective but didn’t. Despite the catching and execution of the serial killer."
12
+ about_text: "Clay Donovan, stuck between life and death, stumbles upon dangers he'd never imagine."
13
+ buy_link: "https://amazon.com/dp/B0DXCKSJQC"
14
+ content_warning: "Death, Swearing"
15
+ work_in_progress: false
16
+ ---
17
+
18
+ ## EXT. WOODS – DAY
19
+
20
+ Bare feet pound hard against the ground as a petite young woman, Anna, races through the brush. Her breath, hard and rapid. She dodges the oncoming branches and leaps over sharp-looking stones. Her long dark hair weaves behind, catching the breeze along with the flow of her white summer dress.
21
+
22
+ She takes a peek over her shoulder – just one – and her wide-eyed gaze, frowning lips, and worried brows suggest she’s not doing this as a hobby.
23
+
24
+ _This is a chase._
25
+
26
+ _One she fears she’ll never escape._
27
+
28
+ Deeper into the forest, the sun barely escapes through the leaves. Tiny rays dance around her every movement. But as she slows, a certain presence lingers near. A dark one. She clutches her chest, gasping for air.
29
+
30
+ Her breath becomes short and rapid.
31
+
32
+ **ANNA:** Oh my God! I c-can’t...run... _(winces)_
33
+
34
+ The tightness in her chest buckles her knees. The forest spins in place and a sudden chill fogs her breath. She rubs her shoulders in hope for some warmth, but even her hands were as cold as wet snow, despite it being the middle of the driest summer they’d seen.
35
+
36
+ The sound of crunching sticks creep behind her. Without turning around, her heavy gaze drops off to the side.
37
+
38
+ **UNKNOWN VOICE (O.S.):** Don’t worry. You won’t need either breath nor warmth much longer. _(cackles)_
39
+
40
+ Anna spins on her heels, facing her assailant. The assailant is an Effigy. Exactly as she is, but with all black eyes and ghastly pale skin. Like looking into a fun-house mirror of the future or of something dark within.
41
+
42
+ The Effigy has an uncanny mien about them. A type of confidence most rejected. The kind that’s purely undeserved in a twisted reflection of Anna’s fears.
43
+
44
+ However, Anna has a bit of a glow about her skin, brought upon a soft brim of youth and a successful influencer status. She tosses her arms down into tiny balls of fists.
45
+
46
+ **ANNA:** _(fed up)_ What do you want? Why do you want to kill me? I don’t even know who you are.
47
+
48
+ **EFFIGY:** _(rolls eyes)_ It’s not that I want you dead... _(ominous)_ I need it.
49
+
50
+ **ANNA:** _(begging)_ Why? What did I do? Please, you don’t have to do this. I won’t tell anyone if you let me live, I promise! No one will know. Please!
51
+
52
+ The Effigy backs her up against a tree with a sharp dagger in the shape of an ice pick pointing just below her jugular. The bark stings Anna’s arms.
53
+
54
+ The dagger presses into her skin further, dragging down towards the center of her chest with enough pressure to cause a slight mark, but nothing too abrasive.
55
+
56
+ Her breathing picks back up, more rapidly than before. She shakes her head, eyes watering.
57
+
58
+ **ANNA:** P-please... p-please don’t...
59
+
60
+ She starts gagging, uncertain why her throat aches with a scorched dryness. Her eyes swell as she inspects the back of her arms finding that the bark is covered in poison oak. Harmless to most, deadly to others.
61
+
62
+ They tilt their head with a slight, coy smile. Yet all she can see in their reflection is her face crawling with swollen redness, her mouth agape, and blueish streaks below her own eyes.
63
+
64
+ Tears stream down her face as she grabs out with a single hand, holding herself steady with the other. She pleads without a voice.
65
+
66
+ The Effigy backs away, disgusted.
67
+
68
+ Anna drops to the ground and attempts to grab at their feet to no avail. Slowing, turning more blue, and unable to see anything as clearly as before, her own strength fails, and the side of her face plummets into the dry ground.
69
+
70
+ A final breath puffs from her lips as the twinkle of life flees from her amber eyes, turning them from a golden escape into a blackened abyss.
71
+
72
+ Within her final moments, they acknowledge a familiar face.
73
+
74
+ **CLAY DONOVAN**
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  title: "Example Book"
3
+ cover_image: "/assets/covers/1x02.jpg"
3
4
  # ... other front matter
4
5
  ---
5
6
 
@@ -9,7 +9,7 @@ series: "The Test"
9
9
  pages: "200"
10
10
  status: "Completed"
11
11
  traits: ["Brave", "Smart", "Fast"]
12
- cover_image: "/assets/covers/placeholder.jpg"
12
+ cover_image: "/assets/covers/1x03.jpg"
13
13
  quote: "Testing is for smart people"
14
14
  description: "Sometimes the world needs a test."
15
15
  about_title: ""
@@ -5,7 +5,7 @@ genre: "Crazy Weird"
5
5
  series: "Standalone"
6
6
  status: "Completed"
7
7
  traits: ["Brave", "Funny", "Smart"]
8
- cover_image: "/assets/covers/placeholder.jpg"
8
+ cover_image: "/assets/covers/1x04.jpg"
9
9
  quote: "There are worlds out there that don't take tests"
10
10
  description: "Smart and funny."
11
11
  content_warning: "too smart"
data/_config.yml CHANGED
@@ -1,7 +1,11 @@
1
1
  # Site settings
2
- title: My Little Website
2
+ title: My Little Library
3
3
  tagline: "Changing the world, one uninspired quote at a time"
4
- url: "http://yourwebsite.com" # The base hostname & protocol for your site. Use it if you need absolute URL's
4
+ url: "http://library.darbooks.com" # The base hostname & protocol for your site. Use it if you need absolute URL's
5
+
6
+ # Blog/Posts settings
7
+ permalink: /blog/:year/:month/:day/:title/
8
+ excerpt_separator: "<!-- excerpt -->"
5
9
 
6
10
  collections:
7
11
  books:
@@ -18,6 +22,11 @@ defaults:
18
22
  type: "books"
19
23
  values:
20
24
  layout: "book-profile"
25
+ - scope:
26
+ path: ""
27
+ type: "posts"
28
+ values:
29
+ layout: "post"
21
30
 
22
31
  # Build settings
23
32
  markdown: kramdown
@@ -46,4 +55,4 @@ email: "hello@garrettboatman.com" # This is my real email address. Please don't
46
55
  #sass:
47
56
  # style: compressed
48
57
 
49
- exclude: [.scss, README.md, node_modules, gruntfile.js, package.json]
58
+ exclude: [README.md, node_modules, gruntfile.js, package.json, book-theme.gemspec, Gemfile.lock]
@@ -1,5 +1,5 @@
1
1
  <div class="about-header">
2
- <h3>{{ include.about_title | default: "📖 ABOUT THIS BOOK" }}</h3>
2
+ <h3>{{ include.about_title | default: "ABOUT THIS BOOK" }}</h3>
3
3
  </div>
4
4
  <div class="about-content">
5
5
  {% if include.about_text %}
@@ -1,34 +1,191 @@
1
1
  ---
2
- layout: book-profile
2
+ layout: default # ← Standalone, not wrapped by book-profile
3
3
  ---
4
4
 
5
- <!-- Override the main content area for chapters -->
6
- <div class="chapter-intro">
7
- <div class="chapter-badge-large">Chapter {{ page.chapter }}</div>
8
- <h2 class="chapter-title">{{ page.title }}</h2>
9
- <p class="chapter-book">from <em>{{ page.book }}</em></p>
10
- </div>
11
-
12
- <div class="chapter-content-wrapper">
13
- {{ content }}
14
- </div>
15
-
16
- <!-- Chapter navigation -->
17
- <nav class="chapter-nav">
18
- {% assign book_chapters = site.chapters
19
- | where: "book", page.book
20
- | sort: "chapter"
21
- %}
22
-
23
- {% if book_chapters.size > 1 %}
24
- <div class="chapter-nav-inner">
25
- {% for chap in book_chapters %}
26
- {% if chap.url == page.url %}
27
- <span class="current">● {{ chap.chapter }}</span>
28
- {% else %}
29
- <a href="{{ chap.url | relative_url }}" class="chapter-link">{{ chap.chapter }}</a>
30
- {% endif %}
31
- {% endfor %}
5
+ {% comment %}
6
+ CHAPTER LAYOUT: Look up parent book data for left sidebar
7
+ {% endcomment %}
8
+
9
+ {% assign parent_book = nil %}
10
+
11
+ {% if page.book_slug %}
12
+ {% assign parent_book = site.books | where: "slug", page.book_slug | first %}
13
+ {% elsif page.book %}
14
+ {% assign parent_book = site.books | where: "title", page.book | first %}
15
+ {% endif %}
16
+
17
+ {% comment %}
18
+ Override page values with book values for sidebar display
19
+ {% endcomment %}
20
+ {% if parent_book %}
21
+ {% assign display_title = parent_book.title %}
22
+ {% assign display_author = parent_book.author %}
23
+ {% assign display_cover = parent_book.cover_image %}
24
+ {% assign display_quote = parent_book.quote %}
25
+ {% assign display_traits = parent_book.traits %}
26
+ {% assign display_genre = parent_book.genre %}
27
+ {% assign display_series = parent_book.series %}
28
+ {% assign display_description = parent_book.description %}
29
+ {% assign display_buy_link = parent_book.buy_link %}
30
+ {% assign display_about_title = parent_book.about_title %}
31
+ {% assign display_about_text = parent_book.about_text %}
32
+ {% assign display_content_warning = parent_book.content_warning %}
33
+ {% assign display_wip = parent_book.work_in_progress %}
34
+ {% else %}
35
+ {% assign display_title = page.title %}
36
+ {% assign display_author = page.author %}
37
+ {% assign display_cover = page.cover_image %}
38
+ {% assign display_quote = page.quote %}
39
+ {% assign display_traits = page.traits %}
40
+ {% assign display_genre = page.genre %}
41
+ {% assign display_series = page.series %}
42
+ {% assign display_description = page.description %}
43
+ {% assign display_buy_link = page.buy_link %}
44
+ {% assign display_about_title = page.about_title %}
45
+ {% assign display_about_text = page.about_text %}
46
+ {% assign display_content_warning = page.content_warning %}
47
+ {% assign display_wip = page.work_in_progress %}
48
+ {% endif %}
49
+
50
+ <!-- Pre-compute book identifier for chapter lookup -->
51
+ {% assign book_identifier = page.book_slug | default: page.book | downcase | replace: " ", "-" | replace: '"', "" %}
52
+
53
+ <div class="card-frame">
54
+ <div class="card-corners">
55
+ <span class="corner corner-tl">❧</span>
56
+ <span class="corner corner-tr">❧</span>
57
+ <span class="corner corner-bl">❧</span>
58
+ <span class="corner corner-br">❧</span>
59
+ </div>
60
+
61
+ <div class="main-wrapper">
62
+ <!-- LEFT SIDE - Uses book data for chapters -->
63
+ <aside class="left-sidebar">
64
+ <div class="left-top-cards">
65
+ <!-- Card 1: Image & Quote -->
66
+ <div class="card-image-quote">
67
+ <div class="image-box">
68
+ {% if display_cover %}
69
+ <img src="{{ display_cover }}" alt="{{ display_title }}">
70
+ {% else %}
71
+ <div class="no-image">No Cover</div>
72
+ {% endif %}
73
+ </div>
74
+
75
+ {% if display_buy_link %}
76
+ <a href="{{ display_buy_link }}" target="_blank" class="buy-button">Buy Book</a>
77
+ {% endif %}
78
+
79
+ <div class="quote-box">
80
+ <p class="quote-text">"{{ display_quote | default: 'A quote about this book would go here' }}"</p>
81
+ </div>
82
+ </div>
83
+
84
+ <!-- Card 2: Metadata -->
85
+ <div class="card-meta">
86
+ {% include book-meta.html
87
+ title=display_title
88
+ subtitle=page.subtitle
89
+ author=display_author
90
+ translator=page.translator
91
+ published=page.published
92
+ publisher=page.publisher
93
+ genre=display_genre
94
+ series=display_series
95
+ pages=page.pages
96
+ status=page.status
97
+ %}
98
+ </div>
99
+ </div>
100
+
101
+ <!-- Bottom: About Section -->
102
+ <div class="card-about">
103
+ {% include about-book.html
104
+ about_title=display_about_title
105
+ about_text=display_about_text
106
+ content_warning=display_content_warning
107
+ work_in_progress=display_wip
108
+ %}
109
+ </div>
110
+ </aside>
111
+
112
+ <!-- RIGHT SIDE - Chapter-specific content -->
113
+ <main class="main-content">
114
+ <header class="book-header">
115
+ <h1 class="book-title">{{ display_title | upcase }}</h1>
116
+ {% if display_traits %}
117
+ <div class="book-traits">
118
+ [ {{ display_traits | join: " / " | upcase }} ]
119
+ </div>
120
+ {% endif %}
121
+ <div class="decorative-divider">
122
+ <span class="floral-element">❦</span>
123
+ </div>
124
+ </header>
125
+
126
+ <!-- Chapter Intro -->
127
+ <section class="introduction-section">
128
+ <div class="intro-title-lines">
129
+ <span class="line-solid"></span>
130
+ <h2 class="section-title">
131
+ [ CHAPTER {{ page.chapter }} ]
132
+ </h2>
133
+ <span class="line-solid"></span>
134
+ </div>
135
+
136
+ <!-- Scroll Container -->
137
+ <div class="scroll-container">
138
+ <span class="line-dashed-left"></span>
139
+ <div class="scroll-box">
140
+ <div class="intro-text-wrapper">
141
+ <p class="intro-text">
142
+ <strong>{{ page.title }}</strong> from
143
+ <em>{{ display_title }}</em> by {{ display_author }}.
144
+ </p>
145
+ </div>
146
+ {{ content }}
147
+ </div>
148
+ <span class="line-dashed-right"></span>
149
+ </div>
150
+ </section>
151
+
152
+ <!-- Scroll Label -->
153
+ <div class="scroll-label-container">
154
+ <span class="scroll-label">scroll to read more</span>
155
+ </div>
156
+
157
+ <!-- Chapter Navigation -->
158
+ <section class="related-section">
159
+ <div class="related-scroll-wrapper">
160
+ <span class="line-dashed-left"></span>
161
+ <ul class="bullet-list">
162
+ <li class="book-link">
163
+ <a href="{{ '/' | relative_url }}">Back to Library</a>
164
+ </li>
165
+
166
+ {% assign book_chapters = site.chapters
167
+ | where_exp: "chap", "chap.path contains book_identifier"
168
+ | sort: "chapter"
169
+ %}
170
+
171
+ {% for chap in book_chapters %}
172
+ <li>
173
+ <a href="{{ chap.url | relative_url }}">
174
+ <span class="chapter-badge">Ch. {{ chap.chapter }}</span>
175
+ {{ chap.title | default: chap.display_title }}
176
+ </a>
177
+ </li>
178
+ {% endfor %}
179
+ </ul>
180
+ <span class="line-dashed-right"></span>
181
+ </div>
182
+ </section>
183
+
184
+ <!-- Footer -->
185
+ <footer class="book-footer">
186
+ <p>Code inspired by <a href="https://toyhou.se/Starcorex" target="_blank">Starcorex</a></p>
187
+ <p>Adapted for Jekyll by <a href="https://darbooks.com" target="_blank">DAR</a></p>
188
+ </footer>
189
+ </main>
32
190
  </div>
33
- {% endif %}
34
- </nav>
191
+ </div>
data/_layouts/page.html CHANGED
@@ -1,6 +1,101 @@
1
1
  ---
2
2
  layout: default
3
3
  ---
4
- <div class="profile-container">
5
- {{ content }}
4
+
5
+ <div class="card-frame">
6
+ <div class="card-corners">
7
+ <span class="corner corner-tl">❧</span>
8
+ <span class="corner corner-tr">❧</span>
9
+ <span class="corner corner-bl">❧</span>
10
+ <span class="corner corner-br">❧</span>
11
+ </div>
12
+
13
+ <div class="main-wrapper">
14
+ <!-- LEFT SIDE - Scrollable Blog Post List -->
15
+ <aside class="left-sidebar">
16
+ <div class="left-top-cards">
17
+ <!-- Card: Recent Posts (scrollable) -->
18
+ <div class="card-image-quote blog-sidebar-card">
19
+ <h3 class="sidebar-title">Recent Posts</h3>
20
+ <div class="blog-post-list">
21
+ {% for post in site.posts limit: 15 %}
22
+ <a href="{{ post.url | relative_url }}"
23
+ class="blog-post-link {% if post.url == page.url %}current{% endif %}">
24
+ <span class="post-date">{{ post.date | date: "%m/%d" }}</span>
25
+ <span class="post-title">{{ post.title }}</span>
26
+ </a>
27
+ {% endfor %}
28
+ </div>
29
+ </div>
30
+ </div>
31
+
32
+ <!-- Bottom: About Blog Section -->
33
+ <div class="card-about">
34
+ <div class="about-header">
35
+ <h3>ABOUT THIS BLOG</h3>
36
+ </div>
37
+ <div class="about-content">
38
+ <p>Personal essays, book reviews, and literary reflections from the library.</p>
39
+ <p class="wip-note">New posts added regularly</p>
40
+ </div>
41
+ </div>
42
+ </aside>
43
+
44
+ <!-- RIGHT SIDE - Blog Post Content -->
45
+ <main class="main-content">
46
+ <header class="book-header">
47
+ <h1 class="book-title">{{ page.title | upcase }}</h1>
48
+ <p class="post-date-large">{{ page.date | date: "%B %d, %Y" }}</p>
49
+ <div class="decorative-divider">
50
+ <span class="floral-element">❦</span>
51
+ </div>
52
+ </header>
53
+
54
+ <!-- Scroll Container for Post Content -->
55
+ <section class="introduction-section">
56
+ <div class="intro-title-lines">
57
+ <span class="line-solid"></span>
58
+ <h2 class="section-title">[ POST ]</h2>
59
+ <span class="line-solid"></span>
60
+ </div>
61
+
62
+ <div class="scroll-container">
63
+ <span class="line-dashed-left"></span>
64
+ <div class="scroll-box">
65
+ <div class="intro-text-wrapper">
66
+ <p class="intro-text">
67
+ <strong>{{ page.title }}</strong> — a blog post from the library.
68
+ </p>
69
+ </div>
70
+ {{ content }}
71
+ </div>
72
+ <span class="line-dashed-right"></span>
73
+ </div>
74
+ </section>
75
+
76
+ <!-- Scroll Label -->
77
+ <div class="scroll-label-container">
78
+ <span class="scroll-label">scroll to read more</span>
79
+ </div>
80
+
81
+ <!-- Related Section: Just Back to Library -->
82
+ <section class="related-section">
83
+ <div class="related-scroll-wrapper">
84
+ <span class="line-dashed-left"></span>
85
+ <ul class="bullet-list">
86
+ <li class="book-link" style="width: 100%; display: flex; justify-content: center;">
87
+ <a href="{{ '/' | relative_url }}" style="padding: 12px 30px;">Back to Library</a>
88
+ </li>
89
+ </ul>
90
+ <span class="line-dashed-right"></span>
91
+ </div>
92
+ </section>
93
+
94
+ <!-- Footer -->
95
+ <footer class="book-footer">
96
+ <p>Code inspired by <a href="https://toyhou.se/Starcorex" target="_blank">Starcorex</a></p>
97
+ <p>Adapted for Jekyll by <a href="https://darbooks.com" target="_blank">DAR</a></p>
98
+ </footer>
99
+ </main>
100
+ </div>
6
101
  </div>
data/_layouts/post.html CHANGED
@@ -1,8 +1,101 @@
1
1
  ---
2
2
  layout: default
3
3
  ---
4
- <article class="profile-container">
5
- <h1>{{ page.title }}</h1>
6
- <p class="meta">{{ page.date | date: "%B %d, %Y" }}</p>
7
- {{ content }}
8
- </article>
4
+
5
+ <div class="card-frame">
6
+ <div class="card-corners">
7
+ <span class="corner corner-tl">❧</span>
8
+ <span class="corner corner-tr">❧</span>
9
+ <span class="corner corner-bl">❧</span>
10
+ <span class="corner corner-br">❧</span>
11
+ </div>
12
+
13
+ <div class="main-wrapper">
14
+ <!-- LEFT SIDE - Scrollable Blog Post List -->
15
+ <aside class="left-sidebar">
16
+ <div class="left-top-cards">
17
+ <!-- Card: Recent Posts (scrollable) -->
18
+ <div class="card-image-quote blog-sidebar-card">
19
+ <h3 class="sidebar-title">Recent Posts</h3>
20
+ <div class="blog-post-list">
21
+ {% for post in site.posts limit: 15 %}
22
+ <a href="{{ post.url | relative_url }}"
23
+ class="blog-post-link {% if post.url == page.url %}current{% endif %}">
24
+ <span class="post-date">{{ post.date | date: "%m/%d" }}</span>
25
+ <span class="post-title">{{ post.title }}</span>
26
+ </a>
27
+ {% endfor %}
28
+ </div>
29
+ </div>
30
+ </div>
31
+
32
+ <!-- Bottom: About Blog Section -->
33
+ <div class="card-about">
34
+ <div class="about-header">
35
+ <h3>ABOUT THIS BLOG</h3>
36
+ </div>
37
+ <div class="about-content">
38
+ <p>Personal essays, book reviews, and literary reflections from the library.</p>
39
+ <p class="wip-note">New posts added regularly</p>
40
+ </div>
41
+ </div>
42
+ </aside>
43
+
44
+ <!-- RIGHT SIDE - Blog Post Content -->
45
+ <main class="main-content">
46
+ <header class="book-header">
47
+ <h1 class="book-title">{{ page.title | upcase }}</h1>
48
+ <p class="post-date-large">{{ page.date | date: "%B %d, %Y" }}</p>
49
+ <div class="decorative-divider">
50
+ <span class="floral-element">❦</span>
51
+ </div>
52
+ </header>
53
+
54
+ <!-- Scroll Container for Post Content -->
55
+ <section class="introduction-section">
56
+ <div class="intro-title-lines">
57
+ <span class="line-solid"></span>
58
+ <h2 class="section-title">[ POST ]</h2>
59
+ <span class="line-solid"></span>
60
+ </div>
61
+
62
+ <div class="scroll-container">
63
+ <span class="line-dashed-left"></span>
64
+ <div class="scroll-box">
65
+ <div class="intro-text-wrapper">
66
+ <p class="intro-text">
67
+ <strong>{{ page.title }}</strong> — a blog post from the library.
68
+ </p>
69
+ </div>
70
+ {{ content }}
71
+ </div>
72
+ <span class="line-dashed-right"></span>
73
+ </div>
74
+ </section>
75
+
76
+ <!-- Scroll Label -->
77
+ <div class="scroll-label-container">
78
+ <span class="scroll-label">scroll to read more</span>
79
+ </div>
80
+
81
+ <!-- Related Section: Just Back to Library -->
82
+ <section class="related-section">
83
+ <div class="related-scroll-wrapper">
84
+ <span class="line-dashed-left"></span>
85
+ <ul class="bullet-list">
86
+ <li class="book-link" style="width: 100%; display: flex; justify-content: center;">
87
+ <a href="{{ '/' | relative_url }}" style="padding: 12px 30px;">Back to Library</a>
88
+ </li>
89
+ </ul>
90
+ <span class="line-dashed-right"></span>
91
+ </div>
92
+ </section>
93
+
94
+ <!-- Footer -->
95
+ <footer class="book-footer">
96
+ <p>Code inspired by <a href="https://toyhou.se/Starcorex" target="_blank">Starcorex</a></p>
97
+ <p>Adapted for Jekyll by <a href="https://darbooks.com" target="_blank">DAR</a></p>
98
+ </footer>
99
+ </main>
100
+ </div>
101
+ </div>
@@ -0,0 +1,32 @@
1
+ ---
2
+ title: "Welcome to the Library"
3
+ date: 2024-01-15
4
+ categories: [announcement]
5
+ tags: [welcome, updates]
6
+ layout: post
7
+ ---
8
+
9
+ Hello and welcome to my literary corner of the internet! 📚
10
+
11
+ This space is dedicated to books that move me, challenge me, and stay with me long after the last page. Here you'll find:
12
+
13
+ - Detailed book profiles with cover art and quotes
14
+ - Personal reviews and thematic deep-dives
15
+ - Chapter-by-chapter explorations of select titles
16
+ - Occasional essays on reading, writing, and the life of stories
17
+
18
+ <!-- excerpt -->
19
+
20
+ ### Why This Design?
21
+
22
+ I've always loved the tactile feel of vintage paperbacks—the worn spines, the decorative corners, the promise of stories waiting to be discovered. This site is my attempt to capture that aesthetic in digital form.
23
+
24
+ Every element, from the ornamental ❧ symbols to the scrollable content boxes, is designed to evoke that classic reading experience while providing modern functionality.
25
+
26
+ ### What's Next?
27
+
28
+ I'm currently working on chapter-by-chapter breakdowns for a few select titles. If there's a book you'd like to see featured, or if you have thoughts on a review, please [get in touch](/contact/)!
29
+
30
+ Happy reading,
31
+
32
+ — DAR
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: "Thank you"
3
+ date: 2026-03-26 17:32:08 -0500
4
+ categories: ["announcement"]
5
+ tags: ["welcome", "updates"]
6
+ layout: post
7
+ ---
8
+
9
+ ## Introduction
10
+
11
+ Write your blog post content here...
12
+
data/_sass/_layout.scss CHANGED
@@ -73,7 +73,7 @@ body {
73
73
  /* Library Index Page Styles */
74
74
  .library-header {
75
75
  text-align: center;
76
- margin-bottom: 30px;
76
+ margin-bottom: 20px;
77
77
  padding-bottom: 20px;
78
78
  border-bottom: 2px solid $color-border;
79
79
 
@@ -94,6 +94,32 @@ body {
94
94
  }
95
95
  }
96
96
 
97
+ /* ========================================
98
+ SITE NAVIGATION - VINTAGE STYLE
99
+ ======================================== */
100
+ .site-nav {
101
+ text-align: center;
102
+ margin: 0px 5px;
103
+ padding: 0;
104
+
105
+ .nav-link {
106
+ color: $color-accent-dark; /* Not blue - uses your theme color */
107
+ text-decoration: none;
108
+ font-size: 1.2rem; /* Larger, matches title style */
109
+ font-family: 'Cormorant Garamond', serif; /* Same as titles */
110
+ letter-spacing: 3px;
111
+ text-transform: uppercase;
112
+ margin: 0 10px;
113
+ transition: all 0.2s ease;
114
+
115
+ &:hover,
116
+ &.current {
117
+ color: $color-accent; /* Hover uses accent color */
118
+ text-decoration: none;
119
+ }
120
+ }
121
+ }
122
+
97
123
  .book-grid {
98
124
  display: grid;
99
125
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
@@ -128,7 +154,7 @@ body {
128
154
  img {
129
155
  width: 100%;
130
156
  height: 100%;
131
- object-fit: cover;
157
+ object-fit: fill;
132
158
  }
133
159
 
134
160
  .no-cover {
@@ -240,7 +266,7 @@ body {
240
266
  width: 100%;
241
267
  height: auto;
242
268
  display: block;
243
- object-fit: cover;
269
+ object-fit: fill;
244
270
  }
245
271
 
246
272
  .no-image {
data/about.md ADDED
@@ -0,0 +1,24 @@
1
+ ---
2
+ layout: page
3
+ title: "About"
4
+ permalink: /about/
5
+ ---
6
+
7
+ <div class="page-content">
8
+ <h2 class="page-title">About This Library</h2>
9
+
10
+ <p>Welcome to my curated collection of books, reviews, and literary reflections. This space is dedicated to exploring stories that move, challenge, and inspire.</p>
11
+
12
+ <h3>What You'll Find Here</h3>
13
+ <ul>
14
+ <li>Detailed book profiles with cover art, quotes, and metadata</li>
15
+ <li>Personal reviews and thematic analysis</li>
16
+ <li>Chapter-by-chapter breakdowns for select titles</li>
17
+ <li>Essays on literature, writing, and the reading life</li>
18
+ </ul>
19
+
20
+ <h3>About Me</h3>
21
+ <p>I'm a lifelong reader and writer who believes books are portals to other worlds, other minds, and other versions of ourselves. This library is my way of sharing the stories that have shaped me.</p>
22
+
23
+ <p class="page-note">This site is built with Jekyll and inspired by the vintage paperback aesthetic. Code adapted from the original design by Starcorex.</p>
24
+ </div>
data/blog.html ADDED
@@ -0,0 +1,43 @@
1
+ ---
2
+ layout: default
3
+ title: "Blog"
4
+ permalink: /blog/
5
+ ---
6
+
7
+ <div class="card-frame">
8
+ <div class="card-corners">
9
+ <span class="corner corner-tl">❧</span>
10
+ <span class="corner corner-tr">❧</span>
11
+ <span class="corner corner-bl">❧</span>
12
+ <span class="corner corner-br">❧</span>
13
+ </div>
14
+
15
+ <div class="library-header">
16
+ <h1 class="library-title">{{ page.title | upcase }}</h1>
17
+ <!-- Navigation -->
18
+ <nav class="site-nav">
19
+ <a href="{{ '/' | relative_url }}" class="nav-link">LIBRARY</a>
20
+ <span class="nav-divider">/</span>
21
+ <a href="{{ '/blog' | relative_url }}" class="nav-link current">BLOG</a>
22
+ <span class="nav-divider">/</span>
23
+ <a href="{{ '/about' | relative_url }}" class="nav-link">ABOUT</a>
24
+ <span class="nav-divider">/</span>
25
+ <a href="{{ '/contact' | relative_url }}" class="nav-link">CONTACT</a>
26
+ </nav>
27
+ <p class="library-subtitle">Thoughts, reviews, and literary musings</p>
28
+ </div>
29
+
30
+ <div class="book-grid">
31
+ {% for post in site.posts %}
32
+ <a href="{{ post.url | relative_url }}" class="book-card blog-card">
33
+ <div class="book-card-info">
34
+ <h3 class="book-card-title">{{ post.title }}</h3>
35
+ <p class="book-card-author">{{ post.date | date: "%B %d, %Y" }}</p>
36
+ {% if post.excerpt %}
37
+ <p class="book-card-traits">{{ post.excerpt | strip_html | truncatewords: 12 }}</p>
38
+ {% endif %}
39
+ </div>
40
+ </a>
41
+ {% endfor %}
42
+ </div>
43
+ </div>
data/contact.md ADDED
@@ -0,0 +1,28 @@
1
+ ---
2
+ layout: page
3
+ title: "Contact"
4
+ permalink: /contact/
5
+ ---
6
+
7
+ <div class="page-content">
8
+ <h2 class="page-title">Get In Touch</h2>
9
+
10
+ <p>Have a book recommendation? Want to discuss a review? Or just say hello? I'd love to hear from you.</p>
11
+
12
+ <div class="contact-methods">
13
+ <p><strong>Email:</strong> <a href="mailto:darbookspub@gmail.com">darbookspub@gmail.com</a></p>
14
+ <p><strong>Twitter:</strong> <a href="https://twitter.com/yourhandle" target="_blank">@yourhandle</a></p>
15
+ <p><strong>Goodreads:</strong> <a href="https://goodreads.com/yourprofile" target="_blank">Your Profile</a></p>
16
+ </div>
17
+
18
+ <h3>Book Submissions</h3>
19
+ <p>If you're an author or publisher and would like your book considered for review, please reach out with:</p>
20
+ <ul>
21
+ <li>Book title and author</li>
22
+ <li>Genre and brief synopsis</li>
23
+ <li>Publication date and format</li>
24
+ <li>Cover image (high-res preferred)</li>
25
+ </ul>
26
+
27
+ <p class="page-note">Note: Due to volume, I cannot guarantee reviews for all submissions, but I read every message.</p>
28
+ </div>
data/index.html CHANGED
@@ -13,6 +13,13 @@ title: "My Library"
13
13
 
14
14
  <div class="library-header">
15
15
  <h1 class="library-title">{{ site.title | default: "My Library" }}</h1>
16
+ <nav class="site-nav">
17
+ <a href="{{ 'blog' | relative_url }}" class="nav-link {% if page.url contains '/blog' %}current{% endif %}">BLOG</a>
18
+ <span class="nav-divider">/</span>
19
+ <a href="{{ '/about' | relative_url }}" class="nav-link {% if page.url == '/about' %}current{% endif %}">ABOUT</a>
20
+ <span class="nav-divider">/</span>
21
+ <a href="{{ '/contact' | relative_url }}" class="nav-link {% if page.url == '/contact' %}current{% endif %}">CONTACT</a>
22
+ </nav>
16
23
  <p class="library-subtitle">A curated collection of books, reviews, and reflections</p>
17
24
  </div>
18
25
 
data/new-post.bat ADDED
@@ -0,0 +1,126 @@
1
+ @echo off
2
+ setlocal enabledelayedexpansion
3
+
4
+ echo ============================================
5
+ echo Create New Blog Post
6
+ echo ============================================
7
+ echo.
8
+
9
+ REM Get the folder where this .bat file is located
10
+ cd /d "%~dp0"
11
+
12
+ REM Set posts folder relative to script location
13
+ set POSTS_PATH=%CD%\_posts
14
+
15
+ REM Check if _posts folder exists, create if not
16
+ if not exist "%POSTS_PATH%" (
17
+ echo [INFO] _posts folder not found. Creating it...
18
+ mkdir "%POSTS_PATH%"
19
+ )
20
+
21
+ echo Posts folder: %POSTS_PATH%
22
+ echo.
23
+
24
+ REM Get post details
25
+ set /p title="Enter post title (required): "
26
+ if "%title%"=="" (
27
+ echo ERROR: Title is required!
28
+ pause
29
+ exit /b 1
30
+ )
31
+
32
+ set /p categories="Enter categories (comma-separated, e.g., announcement, reviews): "
33
+ set /p tags="Enter tags (comma-separated, e.g., welcome, updates): "
34
+
35
+ REM Get current date/time formatted for Jekyll
36
+ for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
37
+ set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
38
+ set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
39
+
40
+ set "filenameDate=%YYYY%-%MM%-%DD%"
41
+ set "fullDate=%YYYY%-%MM%-%DD% %HH%:%Min%:%Sec% -0500"
42
+
43
+ REM Create slug
44
+ set "slug=%title%"
45
+ set "slug=%slug: =-%"
46
+ set "slug=%slug:"=%"
47
+
48
+ REM Use absolute path to _posts folder
49
+ set "filename=%POSTS_PATH%\%filenameDate%-%slug%.md"
50
+
51
+ REM Parse categories into YAML array format
52
+ set "categories_yaml=[]"
53
+ if not "%categories%"=="" (
54
+ set "categories_yaml=["
55
+ set "first=true"
56
+ for %%c in (%categories%) do (
57
+ if "!first!"=="true" (
58
+ set "categories_yaml=!categories_yaml!"%%c""
59
+ set "first=false"
60
+ ) else (
61
+ set "categories_yaml=!categories_yaml!, "%%c""
62
+ )
63
+ )
64
+ set "categories_yaml=!categories_yaml!]"
65
+ )
66
+
67
+ REM Parse tags into YAML array format
68
+ set "tags_yaml=[]"
69
+ if not "%tags%"=="" (
70
+ set "tags_yaml=["
71
+ set "first=true"
72
+ for %%t in (%tags%) do (
73
+ if "!first!"=="true" (
74
+ set "tags_yaml=!tags_yaml!"%%t""
75
+ set "first=false"
76
+ ) else (
77
+ set "tags_yaml=!tags_yaml!, "%%t""
78
+ )
79
+ )
80
+ set "tags_yaml=!tags_yaml!]"
81
+ )
82
+
83
+ echo.
84
+ echo Creating file: %filename%
85
+ echo.
86
+
87
+ REM Delete file if it exists (start fresh)
88
+ if exist "%filename%" del "%filename%"
89
+
90
+ REM Write YAML front matter line by line
91
+ echo --- >> "%filename%"
92
+ echo title: "%title%" >> "%filename%"
93
+ echo date: %fullDate% >> "%filename%"
94
+ echo categories: %categories_yaml% >> "%filename%"
95
+ echo tags: %tags_yaml% >> "%filename%"
96
+ echo layout: post >> "%filename%"
97
+ echo --- >> "%filename%"
98
+ echo. >> "%filename%"
99
+ echo ## Introduction >> "%filename%"
100
+ echo. >> "%filename%"
101
+ echo Write your blog post content here... >> "%filename%"
102
+ echo. >> "%filename%"
103
+
104
+ REM Verify file was created
105
+ if exist "%filename%" (
106
+ echo.
107
+ echo [SUCCESS] File created successfully!
108
+ echo.
109
+ echo File contents:
110
+ echo ============================================
111
+ type "%filename%"
112
+ echo ============================================
113
+ echo.
114
+ echo Opening in Notepad...
115
+ notepad "%filename%"
116
+ ) else (
117
+ echo.
118
+ echo [ERROR] File was NOT created!
119
+ echo.
120
+ echo Debug Info:
121
+ echo Script Location: %CD%
122
+ echo Posts Path: %POSTS_PATH%
123
+ echo Filename: %filename%
124
+ )
125
+
126
+ pause
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: book-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - dar
@@ -75,16 +75,15 @@ email:
75
75
  - darbookspub@gmail.com
76
76
  executables: []
77
77
  extensions: []
78
- extra_rdoc_files:
79
- - README.md
78
+ extra_rdoc_files: []
80
79
  files:
81
80
  - 404.html
82
81
  - Gemfile
83
82
  - README.md
84
- - _books/Default-Book.md
85
- - _books/Test-Book-1.md
86
- - _books/Test-Book-2.md
87
- - _books/my-book.md
83
+ - _books/pandore-1x01.md
84
+ - _books/pandore-1x02.md
85
+ - _books/pandore-1x03.md
86
+ - _books/pandore-1x04.md
88
87
  - _books/the-great-gatsby.md
89
88
  - _config.yml
90
89
  - _includes/about-book.html
@@ -99,13 +98,19 @@ files:
99
98
  - _layouts/home.html
100
99
  - _layouts/page.html
101
100
  - _layouts/post.html
101
+ - _posts/2024-01-15-welcome-to-the-library.md
102
+ - _posts/2026-03-26-Thank-you.md
102
103
  - _sass/_base.scss
103
104
  - _sass/_layout.scss
104
105
  - _sass/_variables.scss
106
+ - about.md
105
107
  - assets/covers/gatsby.jpg
106
108
  - assets/css/main.scss
109
+ - blog.html
110
+ - contact.md
107
111
  - index.html
108
112
  - new-book.bat
113
+ - new-post.bat
109
114
  homepage: https://github.com/breakthebull/book-theme
110
115
  licenses:
111
116
  - MIT
@@ -114,10 +119,7 @@ metadata:
114
119
  source_code_uri: https://github.com/breakthebull/book-theme
115
120
  changelog_uri: https://github.com/breakthebull/book-theme/releases
116
121
  rubygems_mfa_required: 'true'
117
- rdoc_options:
118
- - "--charset=UTF-8"
119
- - "--main"
120
- - README.md
122
+ rdoc_options: []
121
123
  require_paths:
122
124
  - lib
123
125
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -1,20 +0,0 @@
1
- ---
2
- title: "Default Book"
3
- author: ""
4
- genre: ""
5
- published: ""
6
- pages: ""
7
- status: "Completed"
8
- traits: ["", "", ""]
9
- cover_image: "/assets/covers/placeholder.jpg"
10
- quote: ""
11
- description: ""
12
- buy_link: ""
13
- content_warning: ""
14
- about_text: ""
15
- work_in_progress: false
16
- ---
17
-
18
- ## Introduction
19
-
20
- Write your book review here...