squidpress 0.1.0 → 0.2.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: 41e972bea385d1d20ea77353733f0f9f25069d14535075ab5e8079252b1f85db
4
- data.tar.gz: 6b07e6c6bafd91851fb9fb032e6c4d546d7e12ee20ccb163cc9be8e9972aec64
3
+ metadata.gz: 69a1edc7ef6f116a0140b3fe10dbfa4e0276c18885b9848ea1979895f2620c02
4
+ data.tar.gz: 659827d5eab6f349d67cc71850ce23944c161526d9b247b97cae2aeb2c230d6b
5
5
  SHA512:
6
- metadata.gz: b3652ac34ff09de3ce96df1146e7c9d4e6ae3b0396426b9f97eee8a826e29f723022577a365df227afae76eba99d78ca4cf39487eae11c81566e9efba95aea61
7
- data.tar.gz: 90eeeb49eb3046d0cf0330f23ae6e5d34ce6eeaa8f76989d26e125a2bd84e4498a2ba08fe7d216f7ecbc1b16e9d89e971e47702c4ce8a21c49825d077989de1f
6
+ metadata.gz: '0282759af2e8824a307355645787c074474f16060b4463e451f76b8a5332afafc280ab81672e7b4b8c65d4ded45af0f77d95cadd120d937b023f4ac6432cfbc7'
7
+ data.tar.gz: c5227520f2e9913410769353de6a863d473d9291ae414f02548223f7d9fc3ec93c2cdbacbf2ed612b637f4f562fd302707f588ed6b899671cdf427220753c1bd
data/README.markdown CHANGED
@@ -2,31 +2,131 @@
2
2
 
3
3
  ## What is Squidpress?
4
4
 
5
- Squidpress is a fork of [Octopress 2.0](https://github.com/imathis/octopress), a [Jekyll](https://github.com/mojombo/jekyll) theme/distribution, refactored into a Jekyll theme that works with modern versions of Jekyll.
5
+ Squidpress is a fork of [Octopress 2.0](https://github.com/imathis/octopress), a [Jekyll](https://jekyllrb.com) theme/distribution, refactored into a Jekyll theme that works with modern versions of Jekyll.
6
6
 
7
7
  (If you don't know what any of that means, you probably don't need this project!)
8
8
 
9
- Octopress was structured as a prebuilt blog template, Rakefile, and plugins, which made it hard to update blogs built with it to newer versions of Jekyll or Jekyll's plugins. Squidpress breaks Octopress's theme out into a separate Jekyll theme that you can add to your own repo; you no longer need to maintain a fork of the Octopress repo or worry about
9
+ Octopress was structured as a prebuilt blog template, Rakefile, and plugins, which made it hard to update blogs built with it to newer versions of Jekyll or Jekyll's plugins. Squidpress breaks Octopress's theme out into a separate [Jekyll gem theme](https://jekyllrb.com/docs/themes/#understanding-gem-based-themes) that you can add to your own repo; you no longer need to maintain a fork of the Octopress repo or worry about how to upgrade to newer Jekyll versions. You can just use this theme as a plugin without keeping a full copy of Octopress in your own repo.
10
+
11
+ ## Installation for new users
12
+
13
+ 1. Add `gem "squidpress", "~> 0.1"` to your Gemfile.
14
+ 2. Add `theme: squidpress` to your `_config.yml`.
15
+ 3. Add the following plugins to the `plugins:` config in your `_config.yml`: `squidpress-plugins` and `jekyll-paginate`.
16
+
17
+ You will also need to copy some static assets and templates from this repository into your repo. These should go in the same directory as your blog content.
18
+
19
+ - `atom.xml`
20
+ - `favicon.png`
21
+ - `index.html`
22
+ - `robots.txt`
23
+ - `_includes/asides`
24
+ - `_includes/custom`
25
+ - `_layouts`
26
+ - `blog`
27
+
28
+ ## Migration
29
+
30
+ Migrating an existing Octopress blog to Squidpress takes a bit of extra work. Since Octopress installs a number of theme files straight into your git repository alongside your content, you'll need to clear those out first before copying in the static files. You'll also need to make some tweaks to your configuration. This repo includes a migration script to automate that. **Please make sure you've committed all the content of your repo to git before running the migration script, since it deletes files.**
31
+
32
+ To use the migration script, do the following:
33
+
34
+ - Clone this repo
35
+ - In a terminal, `cd` into the repository
36
+ - Run `rake migrate[/path/to/your/repo]`
37
+
38
+ Once you've done this, your site should be good to test out. You can try using it by running `bundle install` in your blog repo, then running `jekyll serve`. If everything looks good, you should be good to go! Make sure to commit all of the changes that the migration script did to your repo. If you encounter issues, you can back the changes out - and then open an issue to let me know what went wrong for you, so I can fix it.
39
+
40
+ If you see an error about the Ruby version you have installed, you may need to install a newer version of Ruby. Octopress required a version of Ruby older than 3.0, while modern Jekyll dependencies require more recent versions of Ruby. You can install a newer version of Ruby using [rbenv](https://rbenv.org).
41
+
42
+ ### Replacing Octopress's Rakefile tasks
43
+
44
+ Octopress included a `Rakefile` with tasks to manage your blog. These are no longer necessary after you upgrade to a newer version of Jekyll, since Jekyll ships a commandline tool which can do all of the same tasks. For more information, see [Jekyll's docs](https://jekyllrb.com/docs/usage/). A quick cheat sheet:
45
+
46
+ - Instead of `rake preview`, use `jekyll serve`
47
+ - Instead of `rake generate`, use `jekyll build`
48
+
49
+ ### Deploying after switching to Squidpress
50
+
51
+ While Octopress uses a bespoke `rake deploy`/`rake gen_deploy` task for deployments to GitHub Pages, Squidpress doesn't handle deploying your site for you. I recommend switching to whatever your hosting provider recommends. For GitHub Pages, I recommend checking its [official documentation for Jekyll deployments](https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll). I also recommend taking a look at [Codeberg Pages](https://codeberg.page/) if you're interested in git-based deploys using a non-GitHub host.
52
+
53
+ ### Manual migration steps
54
+
55
+ If you'd like to do the migration yourself, you can read the `Rakefile` and do what it does for you. To summarize:
56
+
57
+ 1. Remove all contents from the `source` directory that are also located in `.themes/classic/source`, then remove the `.themes` directory and all its contents.
58
+ 2. Remove the `plugins`, `sass`, and `source/_includes` directories.
59
+ 3. Remove the `Rakefile`.
60
+ 4. Copy the assets listed in the "Installation for new users" section above into your `source` directory.
61
+ 5. Remove your `Gemfile` and `Gemfile.lock`, then create a new `Gemfile` with a dependency on `gem "squidpress", "~> 0.1"`.
62
+ 6. Remove the `plugins:`, `highlighter:`, `markdown:` and `rdiscount:` sections from your `_config.yml`.
63
+ 7. Add the lines `theme: squidpress` and `plugins: ['squidpress-plugins', 'jekyll-paginate']` to your `_config.yml`.
10
64
 
11
65
  ## FAQ
12
66
 
67
+ Q: Why did you do this, anyway?
68
+
69
+ A: I just wanted to.
70
+
71
+ More seriously, it's because my blog has used the Octopress theme ever since I switched to Jekyll and it feels like it's part of the site identity at this point. I didn't want to be stuck on older versions of Jekyll forever, but I wanted the ability to keep using the theme. Because I've heard from other people who felt the same way, I decided to package this up in a way that would be usable by other people.
72
+
13
73
  Q: Why did you fork the older version of Octopress instead of Octopress 3.0?
14
74
 
15
75
  A: My blog uses the older version, I imagine like most holdout Octopress users do, and I wanted a clean upgrade path.
16
76
 
77
+ Q: Why "Squidpress"?
78
+
79
+ A: Octopress was named after the mascot of GitHub, but I didn't want to tie this theme to any particular git hosting platform. The *Splatoon* game series has octopus-inspired characters and squid-inspired characters, so I decided it would make sense for the counterpart for "Octopress" to be "Squidpress"[^inkling].
80
+
17
81
  ## Contributing
18
82
 
19
- We love to see people contributing to Octopress, whether it's a bug report, feature suggestion or a pull request. At the moment, we try to keep the core slick and lean, focusing on basic blogging needs, so some of your suggestions might not find their way into Octopress. For those ideas, we started a [list of 3rd party plug-ins](https://github.com/imathis/octopress/wiki/3rd-party-plugins), where you can link your own Octopress plug-in repositories. For the future, we're thinking about ways to easier add them into our main releases.
83
+ If you encounter any bugs, please [report them here on Codeberg](https://codeberg.org/mistydemeo/squidpress/issues). I'll be happy to look into them. Squidpress is largely feature-complete at this point, but I'm happy to review any [pull requests](https://codeberg.org/mistydemeo/squidpress/pulls) if you do have something you'd like to contribute.
84
+
85
+ Because Squidpress is hosted on Codeberg, which has a policy not to permit LLM-generated content, AI/LLM-generated contributions to this project will not be accepted.
20
86
 
21
87
 
22
88
  ## License
23
89
  (The MIT License)
24
90
 
25
- Copyright © 2009-2013 Brandon Mathis
26
- Copyright © 2026 Misty De Méo
91
+ > Copyright © 2009-2013 Brandon Mathis
92
+ > Copyright © 2026 Misty De Méo
93
+ >
94
+ > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ‘Software’), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
95
+ >
96
+ > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
97
+ >
98
+ > THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27
99
 
28
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ‘Software’), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
100
+ This project also incorporates portions of the [Compass CSS library](https://github.com/Compass/compass).
29
101
 
30
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
102
+ > Copyright (c) 2009-2014 Christopher M. Eppstein
103
+ >
104
+ > Permission is hereby granted, free of charge, to any person obtaining
105
+ > a copy of this software and associated documentation files (the
106
+ > "Software"), to deal in the Software without restriction, including
107
+ > without limitation the rights to use, copy, modify, merge, publish,
108
+ > distribute, sublicense, and/or sell copies of the Software, and to
109
+ > permit persons to whom the Software is furnished to do so, subject to
110
+ > the following conditions:
111
+ >
112
+ > The above copyright notice and this permission notice shall be
113
+ > included in all copies or substantial portions of the Software.
114
+ > No attribution is required by products that make use of this software.
115
+ >
116
+ > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
117
+ > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
118
+ > MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
119
+ > NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
120
+ > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
121
+ > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
122
+ > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
123
+ >
124
+ > Except as contained in this notice, the name(s) of the above copyright
125
+ > holders shall not be used in advertising or otherwise to promote the sale,
126
+ > use or other dealings in this Software without prior written authorization.
127
+ >
128
+ > Contributors to this project agree to grant all rights to the copyright
129
+ > holder of the primary product. Attribution is maintained in the source
130
+ > control history of the product.
31
131
 
32
- THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
132
+ [^inkling]: The right reader will note that the *Splatoon* characters are called "octolings" and "inklings", not "octolings" and "squidlings". The "Inkpress" name is taken many times over, so I decided not to use it in order to avoid any confusion.
data/_includes/head.html CHANGED
@@ -7,8 +7,9 @@
7
7
  <title>{% if page.title %}{% if site.titlecase %}{{ page.title | titlecase }}{% else %}{{ page.title }}{% endif %} - {% endif %}{{ site.title }}</title>
8
8
  <meta name="author" content="{{ site.author }}">
9
9
 
10
- {% capture description %}{% if page.description %}{{ page.description }}{% else %}{{ content | raw_content }}{% endif %}{% endcapture %}
11
- <meta name="description" content="{{ description | strip_html | condense_spaces | truncate:150 }}">
10
+ {% capture excerpt %}{% if page.excerpt %}{{ page.excerpt }}{% else %}{{ content | raw_content }}{% endif %}{% endcapture %}
11
+ {% capture description %}{{ excerpt | strip_html | lstrip | condense_spaces | truncate:150 }}{% endcapture %}
12
+ <meta name="description" content="{{ description }}">
12
13
  {% if page.keywords %}<meta name="keywords" content="{{ page.keywords }}">{% endif %}
13
14
 
14
15
  <!-- http://t.co/dKP3o1e -->
@@ -16,6 +17,13 @@
16
17
  <meta name="MobileOptimized" content="320">
17
18
  <meta name="viewport" content="width=device-width, initial-scale=1">
18
19
 
20
+ <meta property="og:title" content="{{ page.title }}"/>
21
+ {% if page.image %}<meta property="og:image" content="{{ page.image | absolute_url }}"/>{% endif %}
22
+ <meta property="og:url" content="{{ site.url }}{{ page.url }}"/>
23
+ {% if page.is_post %}<meta property="og:type" content="article">{% endif %}
24
+ <meta property="og:site_name" content="{{ site.title }}"/>
25
+ <meta property="og:description" content="{{ description }}"/>
26
+
19
27
  {% capture canonical %}{{ site.url }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url | remove:'index.html' }}{% endif %}{% endcapture %}
20
28
  <link rel="canonical" href="{{ canonical }}">
21
29
  <link href="{{ '/favicon.png' | relative_url }}" rel="icon">
@@ -1,5 +1,5 @@
1
- {% if page.date %}{% capture time %}{{ page.date_time_html }}{% endcapture %}{% endif %}
2
- {% if post.date %}{% capture time %}{{ post.date_time_html }}{% endcapture %}{% endif %}
1
+ {% if page.date %}{% capture time %}{{ page.date | date_html }}{% endcapture %}{% endif %}
2
+ {% if post.date %}{% capture time %}{{ post.date | date_html }}{% endcapture %}{% endif %}
3
3
 
4
- {% if page.updated %}{% capture updated %}{{ page.date_time_updated_html }}{% endcapture %}{% endif %}
5
- {% if post.updated %}{% capture updated %}{{ post.date_time_updated_html }}{% endcapture %}{% endif %}
4
+ {% if page.updated %}{% capture updated %}{{ page.date | date_updated_html }}{% endcapture %}{% endif %}
5
+ {% if post.updated %}{% capture updated %}{{ post.date | date_updated_html }}{% endcapture %}{% endif %}
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: squidpress
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Misty De Méo
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2026-09-26 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: jekyll
@@ -44,15 +43,14 @@ dependencies:
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: '0.1'
46
+ version: '0.2'
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: '0.1'
55
- description:
53
+ version: '0.2'
56
54
  email:
57
55
  - squidpress@mistydemeo.com
58
56
  executables: []
@@ -189,7 +187,6 @@ homepage: https://codeberg.org/mistydemeo/squidpress
189
187
  licenses:
190
188
  - MIT
191
189
  metadata: {}
192
- post_install_message:
193
190
  rdoc_options: []
194
191
  require_paths:
195
192
  - lib
@@ -204,8 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
201
  - !ruby/object:Gem::Version
205
202
  version: '0'
206
203
  requirements: []
207
- rubygems_version: 3.0.3.1
208
- signing_key:
204
+ rubygems_version: 4.0.20
209
205
  specification_version: 4
210
206
  summary: Port of Octopress's theme to modern Jekyll.
211
207
  test_files: []