jekyll-highlight-cards 1.0.1 → 1.1.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: 2ae453a5cc13375b8c6836ac97a49dc4c16010e567c7a6d4d353221e2e052384
4
- data.tar.gz: c0d7fbdafb90d2437d5da7994cd0a8d3b50939486ecbd5659dd0a266496edc3c
3
+ metadata.gz: df6fe4fd7e9cfc9a2f4b27458264487b636501a524f4552dbb5869eec96f297d
4
+ data.tar.gz: e02dfd7d8bcd15e0ff00f2d99b849bda1567c018c821a33690e94f623998e10c
5
5
  SHA512:
6
- metadata.gz: 16ee34d32fd36309ac871a36b0f8e4b77d2fc1d1747c92f33f3d635cbaa1547dbf0dc04a544503c198a1607a4ef70d53adaaa31d85a3b8864bb9d4d9aebf5677
7
- data.tar.gz: b73a098b4db006abbbd82ba64390b5570e035193a8f7fa06daea568b7a81797078e109855e44b64024bfbd8629dce426fe34a1e7e9555f1070ec624bb6d102f4
6
+ metadata.gz: e90a1491c24fcf3862d5a7a7b003a78e5bdbe8ddf6a5e053c096f5ea310f1648d20a7bfdb8f3fe4bfe98d2d1bc3ddb7a3cea7785b47269f1b5a133c7582d2b85
7
+ data.tar.gz: 4b4088145935116bfa94ca4376ce42f2c4c3fec943a46f2f6680eebd1d8e844944b9ee092f124e38b19218bb3d135dab68ae377d367881d0c05c16136c8170e6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.1.0](https://github.com/Texarkanine/jekyll-highlight-cards/compare/v1.0.1...v1.1.0) (2025-12-20)
4
+
5
+
6
+ ### Features
7
+
8
+ * split SCSS into structure and colors for flexible customization ([#17](https://github.com/Texarkanine/jekyll-highlight-cards/issues/17)) ([aa7271d](https://github.com/Texarkanine/jekyll-highlight-cards/commit/aa7271deeb4666f0ba41ecf389b876a3de479d03))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **build:** Do not include unnecessary files in the gem ([aa7271d](https://github.com/Texarkanine/jekyll-highlight-cards/commit/aa7271deeb4666f0ba41ecf389b876a3de479d03))
14
+
3
15
  ## [1.0.1](https://github.com/Texarkanine/jekyll-highlight-cards/compare/v1.0.0...v1.0.1) (2025-12-12)
4
16
 
5
17
 
data/README.md CHANGED
@@ -150,18 +150,36 @@ export JEKYLL_HIGHLIGHT_CARDS_ARCHIVE=1
150
150
 
151
151
  ### CSS Styles
152
152
 
153
- Import defaults and override specific properties:
153
+ **Default usage:**
154
+
155
+ Import the default styles which include both structure and colors:
154
156
 
155
157
  ```scss
156
158
  @import "highlight-cards";
159
+ ```
160
+
161
+ This provides a complete, ready-to-use appearance.
157
162
 
158
- .link-card {
159
- border-color: red; // Override
163
+ **Full customization:**
164
+
165
+ For complete control over colors and visual effects, import only the structural styles and define your own colors:
166
+
167
+ ```scss
168
+ @import "highlight-cards-structure";
169
+
170
+ // Define your own color styles
171
+ .polaroid {
172
+ border-color: var(--link-color);
173
+ background-color: var(--body-bg);
174
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
175
+
176
+ .polaroid-image {
177
+ border-color: var(--link-color);
178
+ }
160
179
  }
161
180
  ```
162
181
 
163
- The default style are structural only - they create the shapes but don't set colors, fonts, etc.
164
- The recommended approach is to use the default styles and then add aesthetics to the provided classes.
182
+ The structure file contains only layout, positioning, and sizing - no colors, borders, or visual effects. This allows you to fully customize the appearance while maintaining the structural layout.
165
183
 
166
184
  ### Template Customization
167
185
 
@@ -0,0 +1,39 @@
1
+ /*
2
+ * jekyll-highlight-cards Color Styles
3
+ *
4
+ * This file contains color, border-color, background-color, and visual effect styles.
5
+ * Use this file along with the structure file for the default visual appearance.
6
+ *
7
+ * To use these styles, add to your site's main SCSS:
8
+ * @import "highlight-cards-structure";
9
+ * @import "highlight-cards-colors";
10
+ *
11
+ * Or simply import the default file which includes both.
12
+ */
13
+
14
+ /* ============================================================================
15
+ Polaroid Color Styles
16
+ ========================================================================= */
17
+
18
+ .polaroid {
19
+ border-color: #333;
20
+ background-color: #fff;
21
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
22
+
23
+ .polaroid-image {
24
+ border-color: #333;
25
+ }
26
+ }
27
+
28
+ /* ============================================================================
29
+ Print Styles
30
+ ========================================================================= */
31
+
32
+ @media print {
33
+ .link-card,
34
+ .polaroid {
35
+ box-shadow: none;
36
+ border-color: #333;
37
+ }
38
+ }
39
+
@@ -0,0 +1,86 @@
1
+ /*
2
+ * jekyll-highlight-cards Structural Styles
3
+ *
4
+ * This file contains only structural/layout styles - no colors, borders, or visual effects.
5
+ * Use this file when you want full control over the visual appearance.
6
+ *
7
+ * To use these styles, add to your site's main SCSS:
8
+ * @import "highlight-cards-structure";
9
+ *
10
+ * Then define your own color styles for the provided classes.
11
+ */
12
+
13
+ /* ============================================================================
14
+ Linkcard Styles
15
+ ========================================================================= */
16
+
17
+ .link-card {
18
+ padding: 1em 1.25em 1.5em 1.25em;
19
+ text-align: center;
20
+ position: relative;
21
+ }
22
+
23
+ .link-card-archive {
24
+ position: absolute;
25
+ right: 0.75rem;
26
+ bottom: 0.5rem;
27
+ }
28
+
29
+ /* ============================================================================
30
+ Polaroid Styles
31
+ ========================================================================= */
32
+
33
+ .polaroid-container {
34
+ display: block;
35
+ width: 100%;
36
+ text-align: center;
37
+ }
38
+
39
+ .polaroid {
40
+ display: inline-block;
41
+ position: relative;
42
+ border: 1px solid; /* Width and style only - color set in colors file */
43
+ padding: 10px 10px 25px 10px;
44
+ margin: 1em;
45
+ text-align: center;
46
+ max-width: 100%;
47
+ transition: box-shadow 0.2s ease, transform 0.2s ease;
48
+
49
+ .polaroid-image {
50
+ display: block;
51
+ max-width: 100%;
52
+ height: auto;
53
+ border: 1px solid; /* Width and style only - color set in colors file */
54
+ margin: 0 auto;
55
+ }
56
+
57
+ .polaroid-title {
58
+ margin-top: 5px;
59
+ padding: 0 10px;
60
+ }
61
+
62
+ .polaroid-link {
63
+ margin-top: 5px;
64
+ padding: 0 10px;
65
+ word-break: break-all;
66
+ }
67
+
68
+ .polaroid-archive {
69
+ position: absolute;
70
+ right: 0.75rem;
71
+ bottom: 0.5rem;
72
+ }
73
+ }
74
+
75
+ /* ============================================================================
76
+ Print Styles
77
+ ========================================================================= */
78
+
79
+ @media print {
80
+ .link-card,
81
+ .polaroid {
82
+ page-break-inside: avoid;
83
+ border: 1px solid; /* Width and style only - color set in colors file */
84
+ }
85
+ }
86
+
@@ -1,93 +1,18 @@
1
1
  /*
2
2
  * jekyll-highlight-cards Default Styles
3
3
  *
4
- * These styles provide a sensible default appearance for linkcard and polaroid tags.
5
- * You can override these styles in your Jekyll site by:
6
- * 1. Not importing this file (fully custom CSS)
7
- * 2. Importing and overriding specific classes
8
- * 3. Using higher specificity selectors
4
+ * This file imports both structural and color styles to provide a complete
5
+ * default appearance for linkcard and polaroid tags.
9
6
  *
10
- * To use these styles, add to your site's _config.yml or main SCSS:
11
- * @use "highlight-cards";
7
+ * For the default experience, import this file:
8
+ * @import "highlight-cards";
9
+ *
10
+ * For full customization control, import only the structure file:
11
+ * @import "highlight-cards-structure";
12
+ * // Then define your own color styles
12
13
  *
13
14
  * All styles use low specificity for easy customization.
14
15
  */
15
16
 
16
- /* ============================================================================
17
- Linkcard Styles
18
- ========================================================================= */
19
-
20
- .link-card {
21
- padding: 1em 1.25em 1.5em 1.25em;
22
- text-align: center;
23
- position: relative;
24
- }
25
-
26
- .link-card-archive {
27
- position: absolute;
28
- right: 0.75rem;
29
- bottom: 0.5rem;
30
- }
31
-
32
- /* ============================================================================
33
- Polaroid Styles
34
- ========================================================================= */
35
-
36
-
37
- .polaroid-container {
38
- display: block;
39
- width: 100%;
40
- text-align: center;
41
- }
42
-
43
- .polaroid {
44
- display: inline-block;
45
- position: relative;
46
- border: 1px solid #333;
47
- padding: 10px 10px 25px 10px;
48
- margin: 1em;
49
- background-color: #fff;
50
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
51
- text-align: center;
52
- max-width: 100%;
53
- transition: box-shadow 0.2s ease, transform 0.2s ease;
54
-
55
- .polaroid-image {
56
- display: block;
57
- max-width: 100%;
58
- height: auto;
59
- border: 1px solid #333;
60
- margin: 0 auto;
61
- }
62
-
63
- .polaroid-title {
64
- margin-top: 5px;
65
- padding: 0 10px;
66
- }
67
-
68
- .polaroid-link {
69
- margin-top: 5px;
70
- padding: 0 10px;
71
- word-break: break-all;
72
- }
73
-
74
- .polaroid-archive {
75
- position: absolute;
76
- right: 0.75rem;
77
- bottom: 0.5rem;
78
- }
79
- }
80
-
81
- /* ============================================================================
82
- Print Styles
83
- ========================================================================= */
84
-
85
- @media print {
86
- .link-card,
87
- .polaroid {
88
- box-shadow: none;
89
- border: 1px solid #333;
90
- page-break-inside: avoid;
91
- }
92
- }
93
-
17
+ @import "highlight-cards-structure";
18
+ @import "highlight-cards-colors";
@@ -22,12 +22,15 @@ Gem::Specification.new do |spec|
22
22
  spec.metadata["rubygems_mfa_required"] = "true"
23
23
 
24
24
  # Specify which files should be added to the gem when it is released.
25
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
26
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
27
- `git ls-files -z`.split("\x0").reject do |f|
28
- f.match(%r{^(test|spec|features|planning|examples)/})
29
- end
30
- end
25
+ spec.files = Dir[
26
+ "*.gemspec",
27
+ "lib/**/*.rb",
28
+ "_sass/**/*.scss",
29
+ "_includes/**/*.html",
30
+ "LICENSE",
31
+ "README.md",
32
+ "CHANGELOG.md"
33
+ ]
31
34
 
32
35
  spec.require_paths = ["lib"]
33
36
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JekyllHighlightCards
4
- VERSION = "1.0.1"
4
+ VERSION = "1.1.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-highlight-cards
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Texarkanine
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-12-12 00:00:00.000000000 Z
11
+ date: 2025-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -185,29 +185,14 @@ executables: []
185
185
  extensions: []
186
186
  extra_rdoc_files: []
187
187
  files:
188
- - ".cursorignore"
189
- - ".github/dependabot.yaml"
190
- - ".github/workflows/ci.yaml"
191
- - ".github/workflows/release-please.yaml"
192
- - ".github/workflows/update-gemfile-lock.yaml"
193
- - ".gitignore"
194
- - ".release-please-manifest.json"
195
- - ".rspec"
196
- - ".rubocop.yml"
197
- - ".ruby-version"
198
188
  - CHANGELOG.md
199
- - CONTRIBUTING.md
200
- - Gemfile
201
- - Gemfile.lock
202
189
  - LICENSE
203
190
  - README.md
204
191
  - _includes/highlight-cards/linkcard.html
205
192
  - _includes/highlight-cards/polaroid.html
193
+ - _sass/_highlight-cards-colors.scss
194
+ - _sass/_highlight-cards-structure.scss
206
195
  - _sass/_highlight-cards.scss
207
- - docs/linkcard-example.jpg
208
- - docs/polaroid-example.jpg
209
- - docs/polaroid-sidebyside-example.jpg
210
- - docs/polaroid-stacked-example.jpg
211
196
  - jekyll-highlight-cards.gemspec
212
197
  - lib/jekyll-highlight-cards.rb
213
198
  - lib/jekyll-highlight-cards/archive_helper.rb
@@ -218,7 +203,6 @@ files:
218
203
  - lib/jekyll-highlight-cards/polaroid_tag.rb
219
204
  - lib/jekyll-highlight-cards/template_renderer.rb
220
205
  - lib/jekyll-highlight-cards/version.rb
221
- - release-please-config.json
222
206
  homepage: https://github.com/texarkanine/jekyll-highlight-cards
223
207
  licenses:
224
208
  - AGPL-3.0-or-later
data/.cursorignore DELETED
@@ -1 +0,0 @@
1
- !.cursor/rules/**/*
@@ -1,46 +0,0 @@
1
- version: 2
2
- updates:
3
- # bundler's rubygem dependencies
4
- - package-ecosystem: 'bundler'
5
- directory: '/'
6
- schedule:
7
- interval: 'weekly'
8
- day: 'monday'
9
- time: '09:00'
10
- groups:
11
- deps-minor-patch:
12
- dependency-type: 'production'
13
- update-types:
14
- - 'minor'
15
- - 'patch'
16
- dev-deps-minor-patch:
17
- dependency-type: 'development'
18
- update-types:
19
- - 'minor'
20
- - 'patch'
21
- open-pull-requests-limit: 10
22
- assignees:
23
- - 'Texarkanine'
24
- commit-message:
25
- prefix: 'fix'
26
- include: 'scope'
27
-
28
- # GitHub Actions dependencies
29
- - package-ecosystem: 'github-actions'
30
- directory: '/'
31
- schedule:
32
- interval: 'weekly'
33
- day: 'monday'
34
- time: '09:00'
35
- groups:
36
- github-actions-minor-patch:
37
- patterns:
38
- - '*'
39
- update-types:
40
- - 'minor'
41
- - 'patch'
42
- open-pull-requests-limit: 5
43
- assignees:
44
- - 'Texarkanine'
45
- commit-message:
46
- prefix: 'chore(deps-ci)'
@@ -1,21 +0,0 @@
1
- name: "PR"
2
-
3
- on:
4
- pull_request:
5
- branches:
6
- - main
7
-
8
- jobs:
9
- test:
10
- name: "Test"
11
- runs-on: ubuntu-latest
12
- steps:
13
- - uses: actions/checkout@v6
14
- - name: Setup Ruby
15
- uses: ruby/setup-ruby@v1
16
- with:
17
- bundler-cache: true
18
- - name: Install dependencies
19
- run: bundle install
20
- - name: Run tests
21
- run: bundle exec rspec
@@ -1,69 +0,0 @@
1
- name: Release Please
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
-
8
- permissions:
9
- contents: write
10
- pull-requests: write
11
- issues: write
12
- id-token: write # Required for OIDC trusted publishing
13
-
14
- concurrency:
15
- group: ${{ github.workflow }}-${{ github.ref }}
16
- cancel-in-progress: false
17
-
18
- env:
19
- GEM_NAME: jekyll-highlight-cards
20
-
21
- jobs:
22
- release-please:
23
- runs-on: ubuntu-latest
24
- outputs:
25
- release_created: ${{ steps.release.outputs.release_created }}
26
- version: ${{ steps.release.outputs.version }}
27
- steps:
28
- - name: Generate GitHub App Token
29
- id: generate-token
30
- uses: actions/create-github-app-token@v2
31
- with:
32
- app-id: ${{ vars.HELPER_APP_ID }}
33
- private-key: ${{ secrets.HELPER_APP_PRIVATE_KEY }}
34
-
35
- - uses: googleapis/release-please-action@v4
36
- id: release
37
- with:
38
- token: ${{ steps.generate-token.outputs.token }}
39
-
40
- publish-gem:
41
- needs: release-please
42
- if: ${{ needs.release-please.outputs.release_created }}
43
- runs-on: ubuntu-latest
44
- environment: rubygems.org
45
- steps:
46
- - uses: actions/checkout@v6
47
-
48
- - name: Set up Ruby
49
- uses: ruby/setup-ruby@v1
50
- with:
51
- bundler-cache: true
52
-
53
- - name: Run tests with coverage
54
- run: bundle exec rspec
55
-
56
- - name: Upload coverage to Codecov
57
- uses: codecov/codecov-action@v5
58
- with:
59
- token: ${{ secrets.CODECOV_TOKEN }}
60
- fail_ci_if_error: false
61
-
62
- - name: Build gem
63
- run: gem build ${{ env.GEM_NAME }}.gemspec
64
-
65
- - name: Configure RubyGems credentials
66
- uses: rubygems/configure-rubygems-credentials@v1.0.0
67
-
68
- - name: Publish to RubyGems
69
- run: gem push ${{ env.GEM_NAME }}-${{ needs.release-please.outputs.version }}.gem
@@ -1,52 +0,0 @@
1
- name: "Release PR"
2
-
3
- on:
4
- pull_request:
5
- paths:
6
- - 'lib/jekyll-highlight-cards/version.rb'
7
-
8
- permissions:
9
- contents: write
10
-
11
- jobs:
12
- update-gemfile-lock:
13
- name: "Update Gemfile.lock"
14
- # Only run on Release Please PRs
15
- if: startsWith(github.head_ref, 'release-please--')
16
- runs-on: ubuntu-latest
17
- steps:
18
- - name: Generate GitHub App Token
19
- id: generate-token
20
- uses: actions/create-github-app-token@v2
21
- with:
22
- app-id: ${{ vars.HELPER_APP_ID }}
23
- private-key: ${{ secrets.HELPER_APP_PRIVATE_KEY }}
24
-
25
- - uses: actions/checkout@v6
26
- with:
27
- ref: ${{ github.head_ref }}
28
- token: ${{ steps.generate-token.outputs.token }}
29
-
30
- - name: Set up Ruby
31
- uses: ruby/setup-ruby@v1
32
- with:
33
- bundler-cache: false
34
-
35
- - name: Update Gemfile.lock
36
- run: bundle install
37
-
38
- - name: Commit updated Gemfile.lock
39
- uses: nick-fields/retry@v3
40
- with:
41
- timeout_minutes: 2
42
- max_attempts: 3
43
- retry_wait_seconds: 5
44
- command: |
45
- git config user.name "${{ github.event.pull_request.user.login }}"
46
- git config user.email "${{ github.event.pull_request.user.id }}+${{ github.event.pull_request.user.login }}@users.noreply.github.com"
47
- if ! git diff --quiet Gemfile.lock; then
48
- git pull --rebase origin ${{ github.head_ref }}
49
- git add Gemfile.lock
50
- git commit -m "chore(deps): update Gemfile.lock for new version"
51
- git push
52
- fi
data/.gitignore DELETED
@@ -1,59 +0,0 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /coverage/
5
- /InstalledFiles
6
- /pkg/
7
- /spec/reports/
8
- /spec/examples.txt
9
- /test/tmp/
10
- /test/version_tmp/
11
- /tmp/
12
- .rspec_status
13
-
14
- # Used by dotenv library to load environment variables.
15
- # .env
16
-
17
- # Ignore Byebug command history file.
18
- .byebug_history
19
-
20
- ## Specific to RubyMotion:
21
- .dat*
22
- .repl_history
23
- build/
24
- *.bridgesupport
25
- build-iPhoneOS/
26
- build-iPhoneSimulator/
27
-
28
- ## Specific to RubyMotion (use of CocoaPods):
29
- #
30
- # We recommend against adding the Pods directory to your .gitignore. However
31
- # you should judge for yourself, the pros and cons are mentioned at:
32
- # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
33
- #
34
- # vendor/Pods/
35
-
36
- ## Documentation cache and generated files:
37
- /.yardoc/
38
- /_yardoc/
39
- /doc/
40
- /rdoc/
41
-
42
- ## Environment normalization:
43
- /.bundle/
44
- /vendor/bundle
45
- /lib/bundler/man/
46
-
47
- # for a library or gem, you might want to ignore these files since the code is
48
- # intended to run in multiple environments; otherwise, check them in:
49
- # Gemfile.lock
50
- # .ruby-version
51
- # .ruby-gemset
52
-
53
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
54
- .rvmrc
55
-
56
- # Used by RuboCop. Remote config files pulled in from inherit_from directive.
57
- # .rubocop-https?--*
58
-
59
- planning/
@@ -1,3 +0,0 @@
1
- {
2
- ".": "1.0.1"
3
- }
data/.rspec DELETED
@@ -1,5 +0,0 @@
1
- --require spec_helper
2
- --format documentation
3
- --color
4
-
5
-
data/.rubocop.yml DELETED
@@ -1,64 +0,0 @@
1
- # RuboCop configuration for jekyll-highlight-cards
2
-
3
- require:
4
- - rubocop-rake
5
- - rubocop-rspec
6
-
7
- AllCops:
8
- TargetRubyVersion: 3.1
9
- NewCops: enable
10
- Exclude:
11
- - 'vendor/**/*'
12
- - 'spec/fixtures/**/*'
13
- - 'examples/**/*'
14
- - 'planning/**/*'
15
-
16
- # Style preferences
17
- Style/StringLiterals:
18
- Enabled: true
19
- EnforcedStyle: double_quotes
20
-
21
- Style/StringLiteralsInInterpolation:
22
- Enabled: true
23
- EnforcedStyle: double_quotes
24
-
25
- Style/Documentation:
26
- Enabled: false # Will enable after adding YARD documentation
27
-
28
- Style/FrozenStringLiteralComment:
29
- Enabled: true
30
- EnforcedStyle: always
31
-
32
- # Metrics - relaxed for initial development
33
- Metrics/MethodLength:
34
- Max: 25
35
- Exclude:
36
- - 'spec/**/*'
37
-
38
- Metrics/BlockLength:
39
- Exclude:
40
- - 'spec/**/*'
41
- - '*.gemspec'
42
-
43
- Metrics/ClassLength:
44
- Max: 200
45
-
46
- Metrics/ModuleLength:
47
- Max: 200
48
-
49
- # Layout preferences
50
- Layout/LineLength:
51
- Max: 120
52
- AllowedPatterns: ['^\s*#']
53
-
54
- # RSpec-specific
55
- RSpec/ExampleLength:
56
- Max: 15
57
-
58
- RSpec/MultipleExpectations:
59
- Max: 5
60
-
61
- RSpec/NestedGroups:
62
- Max: 5
63
-
64
-
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 3.1.7
data/CONTRIBUTING.md DELETED
@@ -1,219 +0,0 @@
1
- # Contributing to jekyll-highlight-cards
2
-
3
- ## Development Setup
4
-
5
- ### Prerequisites
6
-
7
- - Ruby 3.1 or higher
8
- - Bundler
9
-
10
- ### Clone and Setup
11
-
12
- ```bash
13
- git clone https://github.com/texarkanine/jekyll-highlight-cards.git
14
- cd jekyll-highlight-cards
15
- bundle install
16
- ```
17
-
18
- ### Running Tests
19
-
20
- Run the full test suite:
21
-
22
- ```bash
23
- bundle exec rspec
24
- ```
25
-
26
- Run specific test file:
27
-
28
- ```bash
29
- bundle exec rspec spec/linkcard_tag_spec.rb
30
- ```
31
-
32
- Run with documentation format:
33
-
34
- ```bash
35
- bundle exec rspec --format documentation
36
- ```
37
-
38
- ### Code Quality
39
-
40
- Check code style:
41
-
42
- ```bash
43
- bundle exec rubocop
44
- ```
45
-
46
- Auto-fix style issues:
47
-
48
- ```bash
49
- bundle exec rubocop --autocorrect
50
- ```
51
-
52
- ### Building the Gem
53
-
54
- ```bash
55
- gem build jekyll-highlight-cards.gemspec
56
- ```
57
-
58
- This creates `jekyll-highlight-cards-VERSION.gem`.
59
-
60
- ### Installing Locally
61
-
62
- ```bash
63
- gem install ./jekyll-highlight-cards-*.gem
64
- ```
65
-
66
- Or in a test Jekyll site's Gemfile:
67
-
68
- ```ruby
69
- gem 'jekyll-highlight-cards', path: '/path/to/jekyll-highlight-cards'
70
- ```
71
-
72
- ## Project Structure
73
-
74
- ```
75
- jekyll-highlight-cards/
76
- ├── lib/
77
- │ ├── jekyll-highlight-cards.rb # Main entry point
78
- │ └── jekyll-highlight-cards/
79
- │ ├── version.rb # Version constant
80
- │ ├── archive_helper.rb # Archive integration
81
- │ ├── dimension_parser.rb # Image sizing utilities
82
- │ ├── expression_evaluator.rb # Liquid expression evaluation
83
- │ ├── template_renderer.rb # Template rendering
84
- │ ├── linkcard_tag.rb # Linkcard Liquid tag
85
- │ ├── polaroid_tag.rb # Polaroid Liquid tag
86
- │ └── image_sizing_hooks.rb # Markdown image sizing
87
- ├── _includes/highlight-cards/
88
- │ ├── linkcard.html # Default linkcard template
89
- │ └── polaroid.html # Default polaroid template
90
- ├── assets/css/
91
- │ └── highlight-cards.scss # Default styles
92
- ├── spec/ # Test files
93
- │ ├── spec_helper.rb
94
- │ ├── *_spec.rb # Tests for each module
95
- │ └── fixtures/ # Test fixtures
96
- └── jekyll-highlight-cards.gemspec # Gem specification
97
- ```
98
-
99
- ## Development Workflow
100
-
101
- ### TDD Approach
102
-
103
- This project follows Test-Driven Development:
104
-
105
- 1. **Write tests first** - Define expected behavior in specs
106
- 2. **Run tests** - Watch them fail (red)
107
- 3. **Write code** - Implement to make tests pass (green)
108
- 4. **Refactor** - Improve code while keeping tests green
109
- 5. **Verify** - Run full suite and Rubocop
110
-
111
- ### Adding Features
112
-
113
- 1. Create feature branch: `git checkout -b feature/my-feature`
114
- 2. Write tests in `spec/`
115
- 3. Implement feature in `lib/`
116
- 4. Run tests: `bundle exec rspec`
117
- 5. Check style: `bundle exec rubocop`
118
- 6. Commit with descriptive message
119
- 7. Push and create pull request
120
-
121
- ### Commit Messages
122
-
123
- Use conventional commit format:
124
-
125
- - `feat: Add new feature`
126
- - `fix: Fix bug in XYZ`
127
- - `docs: Update README`
128
- - `test: Add tests for ABC`
129
- - `refactor: Improve XYZ`
130
- - `style: Fix Rubocop issues`
131
-
132
- ## Testing Guidelines
133
-
134
- ### Test Coverage
135
-
136
- - Aim for >95% line coverage
137
- - Cover happy paths and edge cases
138
- - Test error handling
139
- - Mock external dependencies (HTTP requests, file I/O)
140
-
141
- ### Test Structure
142
-
143
- ```ruby
144
- RSpec.describe MyModule do
145
- describe ".method_name" do
146
- context "with valid input" do
147
- it "returns expected result" do
148
- # test code
149
- end
150
- end
151
-
152
- context "with invalid input" do
153
- it "raises appropriate error" do
154
- # test code
155
- end
156
- end
157
- end
158
- end
159
- ```
160
-
161
- ### Running Specific Tests
162
-
163
- ```bash
164
- # Run single test file
165
- bundle exec rspec spec/linkcard_tag_spec.rb
166
-
167
- # Run single test (by line number)
168
- bundle exec rspec spec/linkcard_tag_spec.rb:42
169
-
170
- # Run tests matching pattern
171
- bundle exec rspec spec/linkcard_tag_spec.rb -e "renders with title"
172
- ```
173
-
174
- ## Code Style
175
-
176
- ### Ruby Style Guide
177
-
178
- Follow standard Ruby conventions:
179
-
180
- - 2 space indentation
181
- - Snake_case for methods and variables
182
- - CamelCase for classes and modules
183
- - SCREAMING_SNAKE_CASE for constants
184
- - Maximum 120 characters per line
185
-
186
- ### Module Organization
187
-
188
- - One class/module per file
189
- - File names match class names (snake_case)
190
- - Public methods documented with YARD comments
191
- - Private methods below `private` keyword
192
-
193
- ## Troubleshooting
194
-
195
- ### Tests failing after changes
196
-
197
- 1. Run full suite: `bundle exec rspec`
198
- 2. Check specific failing test
199
- 3. Review recent changes
200
- 4. Verify test fixtures are correct
201
-
202
- ### Rubocop errors
203
-
204
- ```bash
205
- bundle exec rubocop --autocorrect
206
- ```
207
-
208
- If auto-correct doesn't work, manually fix reported issues.
209
-
210
- ### Gem won't build
211
-
212
- 1. Check `jekyll-highlight-cards.gemspec` for errors
213
- 2. Verify all required files exist
214
- 3. Check Ruby version compatibility
215
-
216
- ## Questions?
217
-
218
- Open an issue on GitHub for questions, bug reports, or feature requests.
219
-
data/Gemfile DELETED
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- gemspec
data/Gemfile.lock DELETED
@@ -1,190 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- jekyll-highlight-cards (1.0.1)
5
- jekyll (>= 4.0, < 5.0)
6
- liquid (>= 4.0, < 5.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- addressable (2.8.8)
12
- public_suffix (>= 2.0.2, < 8.0)
13
- ast (2.4.3)
14
- base64 (0.3.0)
15
- bigdecimal (3.3.1)
16
- colorator (1.1.0)
17
- concurrent-ruby (1.3.5)
18
- crack (1.0.1)
19
- bigdecimal
20
- rexml
21
- csv (3.3.5)
22
- diff-lcs (1.6.2)
23
- docile (1.4.1)
24
- em-websocket (0.5.3)
25
- eventmachine (>= 0.12.9)
26
- http_parser.rb (~> 0)
27
- eventmachine (1.2.7)
28
- ffi (1.17.2)
29
- ffi (1.17.2-arm64-darwin)
30
- ffi (1.17.2-x86-linux-gnu)
31
- ffi (1.17.2-x86-linux-musl)
32
- ffi (1.17.2-x86_64-darwin)
33
- ffi (1.17.2-x86_64-linux-gnu)
34
- forwardable-extended (2.6.0)
35
- google-protobuf (4.33.2)
36
- bigdecimal
37
- rake (>= 13)
38
- google-protobuf (4.33.2-arm64-darwin)
39
- bigdecimal
40
- rake (>= 13)
41
- google-protobuf (4.33.2-x86-linux-gnu)
42
- bigdecimal
43
- rake (>= 13)
44
- google-protobuf (4.33.2-x86-linux-musl)
45
- bigdecimal
46
- rake (>= 13)
47
- google-protobuf (4.33.2-x86_64-darwin)
48
- bigdecimal
49
- rake (>= 13)
50
- google-protobuf (4.33.2-x86_64-linux-gnu)
51
- bigdecimal
52
- rake (>= 13)
53
- hashdiff (1.2.1)
54
- http_parser.rb (0.8.0)
55
- i18n (1.14.7)
56
- concurrent-ruby (~> 1.0)
57
- jekyll (4.4.1)
58
- addressable (~> 2.4)
59
- base64 (~> 0.2)
60
- colorator (~> 1.0)
61
- csv (~> 3.0)
62
- em-websocket (~> 0.5)
63
- i18n (~> 1.0)
64
- jekyll-sass-converter (>= 2.0, < 4.0)
65
- jekyll-watch (~> 2.0)
66
- json (~> 2.6)
67
- kramdown (~> 2.3, >= 2.3.1)
68
- kramdown-parser-gfm (~> 1.0)
69
- liquid (~> 4.0)
70
- mercenary (~> 0.3, >= 0.3.6)
71
- pathutil (~> 0.9)
72
- rouge (>= 3.0, < 5.0)
73
- safe_yaml (~> 1.0)
74
- terminal-table (>= 1.8, < 4.0)
75
- webrick (~> 1.7)
76
- jekyll-sass-converter (3.1.0)
77
- sass-embedded (~> 1.75)
78
- jekyll-watch (2.2.1)
79
- listen (~> 3.0)
80
- json (2.17.1)
81
- kramdown (2.5.1)
82
- rexml (>= 3.3.9)
83
- kramdown-parser-gfm (1.1.0)
84
- kramdown (~> 2.0)
85
- language_server-protocol (3.17.0.5)
86
- lint_roller (1.1.0)
87
- liquid (4.0.4)
88
- listen (3.9.0)
89
- rb-fsevent (~> 0.10, >= 0.10.3)
90
- rb-inotify (~> 0.9, >= 0.9.10)
91
- mercenary (0.4.0)
92
- parallel (1.27.0)
93
- parser (3.3.10.0)
94
- ast (~> 2.4.1)
95
- racc
96
- pathutil (0.16.2)
97
- forwardable-extended (~> 2.6)
98
- prism (1.6.0)
99
- public_suffix (6.0.2)
100
- racc (1.8.1)
101
- rainbow (3.1.1)
102
- rake (13.3.1)
103
- rb-fsevent (0.11.2)
104
- rb-inotify (0.11.1)
105
- ffi (~> 1.0)
106
- regexp_parser (2.11.3)
107
- rexml (3.4.4)
108
- rouge (4.6.1)
109
- rspec (3.13.2)
110
- rspec-core (~> 3.13.0)
111
- rspec-expectations (~> 3.13.0)
112
- rspec-mocks (~> 3.13.0)
113
- rspec-core (3.13.6)
114
- rspec-support (~> 3.13.0)
115
- rspec-expectations (3.13.5)
116
- diff-lcs (>= 1.2.0, < 2.0)
117
- rspec-support (~> 3.13.0)
118
- rspec-mocks (3.13.7)
119
- diff-lcs (>= 1.2.0, < 2.0)
120
- rspec-support (~> 3.13.0)
121
- rspec-support (3.13.6)
122
- rubocop (1.81.7)
123
- json (~> 2.3)
124
- language_server-protocol (~> 3.17.0.2)
125
- lint_roller (~> 1.1.0)
126
- parallel (~> 1.10)
127
- parser (>= 3.3.0.2)
128
- rainbow (>= 2.2.2, < 4.0)
129
- regexp_parser (>= 2.9.3, < 3.0)
130
- rubocop-ast (>= 1.47.1, < 2.0)
131
- ruby-progressbar (~> 1.7)
132
- unicode-display_width (>= 2.4.0, < 4.0)
133
- rubocop-ast (1.48.0)
134
- parser (>= 3.3.7.2)
135
- prism (~> 1.4)
136
- rubocop-rake (0.7.1)
137
- lint_roller (~> 1.1)
138
- rubocop (>= 1.72.1)
139
- rubocop-rspec (3.8.0)
140
- lint_roller (~> 1.1)
141
- rubocop (~> 1.81)
142
- ruby-progressbar (1.13.0)
143
- safe_yaml (1.0.5)
144
- sass-embedded (1.95.0)
145
- google-protobuf (~> 4.31)
146
- rake (>= 13)
147
- sass-embedded (1.95.0-arm64-darwin)
148
- google-protobuf (~> 4.31)
149
- sass-embedded (1.95.0-x86_64-darwin)
150
- google-protobuf (~> 4.31)
151
- simplecov (0.22.0)
152
- docile (~> 1.1)
153
- simplecov-html (~> 0.11)
154
- simplecov_json_formatter (~> 0.1)
155
- simplecov-cobertura (3.1.0)
156
- rexml
157
- simplecov (~> 0.19)
158
- simplecov-html (0.13.2)
159
- simplecov_json_formatter (0.1.4)
160
- terminal-table (3.0.2)
161
- unicode-display_width (>= 1.1.1, < 3)
162
- unicode-display_width (2.6.0)
163
- webmock (3.26.1)
164
- addressable (>= 2.8.0)
165
- crack (>= 0.3.2)
166
- hashdiff (>= 0.4.0, < 2.0.0)
167
- webrick (1.9.2)
168
-
169
- PLATFORMS
170
- arm64-darwin
171
- ruby
172
- x86-linux-gnu
173
- x86-linux-musl
174
- x86_64-darwin
175
- x86_64-linux
176
-
177
- DEPENDENCIES
178
- bundler (~> 2.0)
179
- jekyll-highlight-cards!
180
- rake (~> 13.0)
181
- rspec (~> 3.12)
182
- rubocop (~> 1.50)
183
- rubocop-rake (~> 0.6)
184
- rubocop-rspec (~> 3.8)
185
- simplecov (~> 0.22)
186
- simplecov-cobertura (~> 3.1)
187
- webmock (~> 3.18)
188
-
189
- BUNDLED WITH
190
- 2.6.9
Binary file
Binary file
Binary file
Binary file
@@ -1,12 +0,0 @@
1
- {
2
- "release-type": "ruby",
3
- "bump-minor-pre-major": true,
4
- "bump-patch-for-minor-pre-major": false,
5
- "include-component-in-tag": false,
6
- "packages": {
7
- ".": {
8
- "version-file": "lib/jekyll-highlight-cards/version.rb",
9
- "pull-request-header": ":service_dog: I have created a release \\*bark\\* \\*woof\\*"
10
- }
11
- }
12
- }