minduim 1.0.0 → 1.0.2

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: be2ba5c0915ec57fe99fe4568551996904465352c0c41eb8b741dfdd9a6788b3
4
- data.tar.gz: 0a9ef0db120677259b034dd7df18998c69ce2c9f9315fbfce94d0d268c66ab2a
3
+ metadata.gz: 94eddb1fd4c47108552aababa25658b69a4b8b853292da4a912c30913223415e
4
+ data.tar.gz: bf5e5738db766d7ccc6433bfe9b2699eb3b6992302f6c5525262d94f6dfe2ea8
5
5
  SHA512:
6
- metadata.gz: a2913210a0e4e5aa09500766a53b9ba5aaaa7ff6862e0067c3d905b9af6307c5d0b7436528b38c45812f54497d0ef901cbea703a7b144405d3665337bb14f91f
7
- data.tar.gz: ee07b17bd25cc174744c5aa948c31d03d84a539050b5448b91e6cd3101ff71412aa801ab633389f053ff571c47303a0325f869823cccf58f8518cea65d1f18f9
6
+ metadata.gz: 6639fa86ba13a4ef1534772b89e3067ca9106a7d4abbbae5c8acdab2235921d2dc367a4735c30a26bb8245855d57b048cf71bab417a28ee585b24f8b3134f38f
7
+ data.tar.gz: 6a2321938f04718d242394c8745d64f0c4f2b3e79ef5f71056aa3352e710f5a95617b4b9f85daffb19e016431189136f81534b2cca6a342638e60106f4daa86a
data/README.md ADDED
@@ -0,0 +1,228 @@
1
+ # Minduim
2
+
3
+ A charming Jekyll blog theme inspired by the classic Posterous default theme. Named after the Brazilian translation of the _Peanuts_ comic strip, Minduim offers a clean two-column layout with subtle homages to Charlie Brown.
4
+
5
+ ![Minduim Theme Preview](preview.png)
6
+
7
+ ## Features
8
+
9
+ - **Responsive design**: Clean two-column layout that adapts to all screen sizes
10
+ - **Customization**: Easily customize colors and typography
11
+ - **SEO-ready**: Built-in support for SEO tags, sitemaps, and feeds
12
+ - **Archiving**: Automatic archives for dates and tags
13
+ - **Pagination**: Built-in pagination support for blog listings
14
+ - **Sidebar widgets**: Custom sidebar widgets using includes
15
+ - **Multilingual**: Fully translatable using theme configuration
16
+ - **Multiple author support**: Flexible author information system
17
+
18
+ ## Quick Start
19
+
20
+ ### Option 1: Remote Theme (Recommended)
21
+
22
+ Add to your site's `Gemfile`:
23
+
24
+ ```ruby
25
+ gem "jekyll-remote-theme"
26
+ ```
27
+
28
+ Add to your `_config.yml`:
29
+
30
+ ```yaml
31
+ remote_theme: arthrfrts/minduim@latest
32
+
33
+ plugins:
34
+ - jekyll-remote-theme
35
+ ```
36
+
37
+ Then run:
38
+
39
+ ```bash
40
+ bundle install
41
+ bundle exec jekyll serve
42
+ ```
43
+
44
+ ### Option 2: Gem-based Theme
45
+
46
+ Add to your `Gemfile`:
47
+
48
+ ```ruby
49
+ gem "minduim"
50
+ ```
51
+
52
+ Add to your `_config.yml`:
53
+
54
+ ```yaml
55
+ theme: minduim
56
+ ```
57
+
58
+ Then run:
59
+
60
+ ```bash
61
+ bundle install
62
+ bundle exec jekyll serve
63
+ ```
64
+
65
+ ## Configuration
66
+
67
+ Create or update your `_config.yml` with these settings:
68
+
69
+ ```yaml
70
+ title: Your Site Title
71
+ description: Your site description
72
+ tagline: A short tagline
73
+
74
+ lang: en
75
+ logo: /path/to/logo.svg
76
+
77
+ # Build settings
78
+ permalink: "/:year/:month/:day/:title.html"
79
+ slug_mode: latin
80
+
81
+ # Theme settings
82
+ minduim:
83
+ date_formats:
84
+ day: "%v"
85
+ month: "%B, %Y"
86
+ year: "%Y"
87
+ translations:
88
+ jump_to_navigation: "Go to navigation"
89
+ jump_to_content: "Go to content"
90
+ archive_date_title: "Posts from %s"
91
+ archive_tag_title: "Posts with the tag %s"
92
+ post_tagged_with: "Tagged with:"
93
+ blog_pagination_title: "Blog Pagination"
94
+ blog_pagination_next_page: "Older posts"
95
+ blog_pagination_prev_page: "Newer posts"
96
+
97
+ # Navigation menus
98
+ main_menu:
99
+ title: Navigate
100
+ items:
101
+ - label: About
102
+ url: /about/
103
+ - label: Archive
104
+ url: /archive/
105
+
106
+ footer_menu:
107
+ title: Links
108
+ items:
109
+ - label: RSS Feed
110
+ url: /feed.xml
111
+ - label: JSON Feed
112
+ url: /feed.json
113
+ ```
114
+
115
+ ## Customization
116
+
117
+ ### Colors and Styling
118
+
119
+ Create `/assets/css/theme.css` to customize the theme.
120
+
121
+ Copy the default [theme.css](https://github.com/arthrfrts/minduim/blob/main/assets/css/theme.css), and uncomment and modify the CSS variables you want to change.
122
+
123
+ This is the ideal place to customize your site, since it's the last stylesheet loaded. Just add your custom styles at the end of the file and it'll overwrite the theme style rules accordingly.
124
+
125
+ ### Sidebar widgets
126
+
127
+ Create `/_includes/sidebar.html` to add custom widgets. For example:
128
+
129
+ ```liquid
130
+ {% assign widget_title = "About Me" %}
131
+ {% capture widget_content %}
132
+ <p>Welcome to my blog! I write about web development and design.</p>
133
+ {% endcapture %}
134
+ {% include widget.html title=widget_title content=widget_content %}
135
+
136
+ {% assign widget_title = "Recent Posts" %}
137
+ {% capture widget_content %}
138
+ <ul>
139
+ {% for post in site.posts limit:5 %}
140
+ <li><a href="{{ post.url }}">{{ post.title }}</a></li>
141
+ {% endfor %}
142
+ </ul>
143
+ {% endcapture %}
144
+ {% include widget.html title=widget_title content=widget_content %}
145
+ ```
146
+
147
+ This will create two widgets: an about me and a recents posts widget. You can add as many widgets you want!
148
+
149
+ ### Author Information
150
+
151
+ Set up author information in multiple ways:
152
+
153
+ **In post front matter:**
154
+ ```yaml
155
+ ---
156
+ title: My Post
157
+ author:
158
+ name: Charlie Brown
159
+ url: https://charliebrown.blog
160
+ ---
161
+ ```
162
+
163
+ **In `_data/authors.yml`:**
164
+ ```yaml
165
+ charlie:
166
+ name: Charlie Brown
167
+ url: https://charliebrown.blog
168
+ lucy:
169
+ name: Lucy Van Pelt
170
+ url: https://thedoctoris.online
171
+ ```
172
+
173
+ **In `_config.yml`:**
174
+ ```yaml
175
+ author:
176
+ name: Snoopy
177
+ url: https://snoopy.as
178
+ ```
179
+
180
+ If no `authors` object is set in any of these places, the post will show the `post.author` value as is.
181
+
182
+ ## Plugins
183
+
184
+ Minduim adds support for pagination, archives, feeds and SEO tags, so you can configure the settings following these plugins docs:
185
+
186
+ * [jekyll-paginate](https://jekyllrb.com/docs/pagination/)
187
+ * [jekyll-archives](https://github.com/jekyll/jekyll-archives/blob/master/docs/configuration.md)
188
+ * [jekyll-feed](https://github.com/jekyll/jekyll-feed?tab=readme-ov-file#usage)
189
+ * [jekyll-seo-tag](https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md)
190
+ * [jekyll-sitemap](https://github.com/jekyll/jekyll-sitemap)
191
+
192
+ Please refer to the full [`_config.yml`](https://github.com/arthrfrts/minduim/blob/main/_config.yml) for the default plugin settings.
193
+
194
+ ## Development
195
+
196
+ ### Local Development
197
+
198
+ ```bash
199
+ # Install dependencies
200
+ bundle install
201
+
202
+ # Start development server
203
+ bundle exec jekyll serve
204
+
205
+ # Build for production
206
+ bundle exec jekyll build
207
+ ```
208
+
209
+ ### Project Structure
210
+
211
+ ```
212
+ minduim/
213
+ ├── _layouts/ # Page layouts
214
+ ├── _includes/ # Reusable components
215
+ ├── assets/ # CSS, images, and other assets
216
+ ├── _config.yml # Site configuration
217
+ └── about.md # Theme documentation
218
+ ```
219
+
220
+ ## Contributing
221
+
222
+ Bug reports and pull requests are welcome at [https://github.com/arthrfrts/minduim](https://github.com/arthrfrts/minduim).
223
+
224
+ Please note that this theme is primarily maintained for my own personal use, so not all feature requests may be implemented. Feel free to fork and customize for your needs!
225
+
226
+ ## License
227
+
228
+ This theme is available under [MIT License](https://opensource.org/licenses/MIT).
data/_layouts/post.html CHANGED
@@ -43,14 +43,26 @@ layout: default
43
43
  {% if page.previous or page.next -%}
44
44
  <nav class="blog-pagination" aria-label="{{ site.minduim.translations.blog_pagination_title }}">
45
45
  {% if page.next -%}
46
+ {% assign link_title = page.next.title %}
47
+
48
+ {% if page.next.title == "" %}
49
+ {% assign link_title = page.next.content | markdownify | strip_html | strip_newlines | truncatewords: 10 %}
50
+ {% endif %}
51
+
46
52
  <a class="prev-page menu-item" href="{{ page.next.url | relative_url }}" rel="next">
47
- &larr; {{ page.next.title }}
53
+ &larr; {{ link_title }}
48
54
  </a>
49
55
  {%- endif %}
50
56
 
51
57
  {% if page.previous -%}
58
+ {% assign link_title = page.previous.title %}
59
+
60
+ {% if page.previous.title == "" %}
61
+ {% assign link_title = page.previous.content | markdownify | strip_html | strip_newlines | truncatewords: 10 %}
62
+ {% endif %}
63
+
52
64
  <a class="next-page menu-item" href="{{ page.previous.url | relative_url }}" rel="prev">
53
- {{ page.previous.title }} &rarr;
65
+ {{ link_title }} &rarr;
54
66
  </a>
55
67
  {%- endif %}
56
68
  </nav>
data/assets/css/base.css CHANGED
@@ -107,7 +107,11 @@ pre,
107
107
  ul,
108
108
  ol,
109
109
  dl,
110
- figure {
110
+ figure,
111
+ table,
112
+ iframe,
113
+ audio,
114
+ video {
111
115
  line-height: 1.5;
112
116
  margin-bottom: 1rem;
113
117
  }
@@ -189,6 +193,7 @@ a {
189
193
  text-decoration-style: wavy;
190
194
  transition-property: color, text-decoration-color;
191
195
  transition-duration: var(--transition-duration);
196
+ text-decoration-thickness: from-font;
192
197
  }
193
198
 
194
199
  a:hover,
@@ -207,6 +212,10 @@ ul {
207
212
  list-style: square;
208
213
  }
209
214
 
215
+ li::marker {
216
+ color: var(--color-accent-alt);
217
+ }
218
+
210
219
  ul ul {
211
220
  list-style: circle;
212
221
  }
@@ -243,6 +252,19 @@ dl dd + dd {
243
252
  margin-top: 0.5rem;
244
253
  }
245
254
 
255
+ .task-list {
256
+ list-style: none;
257
+ }
258
+
259
+ .task-list-item {
260
+ display: flex;
261
+ flex-flow: row nowrap;
262
+ align-items: center;
263
+ gap: 0.5rem;
264
+ margin-left: 0;
265
+ padding-left: 0;
266
+ }
267
+
246
268
  /* Blockquote */
247
269
  q {
248
270
  quotes: "“" "”" "‘" "’";
@@ -317,7 +339,7 @@ hr {
317
339
  /*
318
340
  Media
319
341
  */
320
- /* Media */
342
+ /* Images */
321
343
  img {
322
344
  max-width: 100%;
323
345
  overflow: hidden;
@@ -348,7 +370,8 @@ img {
348
370
  }
349
371
 
350
372
  img + em,
351
- img + br + em {
373
+ img + br + em,
374
+ figcaption {
352
375
  display: block;
353
376
  width: 10rem;
354
377
  color: var(--color-details);
@@ -359,7 +382,8 @@ img + br + em {
359
382
 
360
383
  @media screen and (width > 690px) {
361
384
  img + em,
362
- img + br + em {
385
+ img + br + em,
386
+ figcaption {
363
387
  position: absolute;
364
388
  top: 0;
365
389
  right: 0;
@@ -377,3 +401,30 @@ iframe[src*="vimeo"] {
377
401
  height: auto;
378
402
  width: 100%;
379
403
  }
404
+
405
+ audio {
406
+ width: 100%;
407
+ border-radius: var(--radius);
408
+ box-shadow: var(--shadow);
409
+ }
410
+
411
+ /*
412
+ Footnotes
413
+ */
414
+ .footnotes {
415
+ margin-top: 1.5rem;
416
+ padding-top: 1.5rem;
417
+ border-top: var(--border);
418
+ font-size: var(--font-size-small);
419
+ }
420
+
421
+ /*
422
+ TODO: Forms
423
+ */
424
+
425
+ input[type="checkbox"] {
426
+ appearance: checkbox;
427
+ width: 1em;
428
+ height: 1em;
429
+ accent-color: var(--color-accent-alt);
430
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minduim
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arthur Freitas
@@ -130,6 +130,7 @@ executables: []
130
130
  extensions: []
131
131
  extra_rdoc_files: []
132
132
  files:
133
+ - README.md
133
134
  - _config.yml
134
135
  - _includes/footer.html
135
136
  - _includes/header.html