jekyll-social-share 0.1.0 → 0.2.1

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: 24ac5ee5e3a6b80333f4997ffdea6c2d14721fbd4ffd8434cbdac2e575e429c9
4
- data.tar.gz: 6ce2d84654fcd7edb050be02c5e0dcfe59c5bc9cc8ee77055a6c0aa5159975be
3
+ metadata.gz: cae7a797f7e712e755823503851227882c5b9b9242c6564864bb788ab969184a
4
+ data.tar.gz: fdb155741b8fd6bfb43d395dc1e49288d148228026aaf1c6ae69fe17c850825e
5
5
  SHA512:
6
- metadata.gz: b65879cfa35c2adcf2f7e7b6ab6e5b099791bdd871d1a02f328ac10b677c470ab15f5f653edbce70c3824620c23b8530d451c7d58fc83207b1e4c66095dcaf23
7
- data.tar.gz: 0d8152c3726d88d0a5eade4e65eaaea9c07f8e3959d4672fb9f51c56a5bac8a81adea4982b7c38f58f50089ee16ab5521bfda03356cd0266e5cf7f7de17d9e18
6
+ metadata.gz: 3b04f780d394f9e69394b8c3f6f027b98620f3c05f820090acc548a0633da1a20177b49e2539d5f7584ca462ae51ba322ff69a1da1272c733137ea646a1af7a7
7
+ data.tar.gz: 5e64667bafa6a4d208cb397296a6f4169be562de3864bbec8ab4b32c2e46364c4f0ed0a5f94e30c4aabef70c234f4ddc8ff776fa36a702f48b419533f39a7961
data/README.md ADDED
@@ -0,0 +1,221 @@
1
+ # jekyll-social-share
2
+
3
+ A Jekyll plugin that renders social share buttons for 18 platforms: Bluesky, Mastodon, Facebook, Reddit, LinkedIn, X, Threads, WhatsApp, Telegram, Hacker News, Pinterest, Pocket, Tumblr, Flipboard, LINE, email, copy-link, and print. Icons are inline SVGs from [Simple Icons](https://simpleicons.org) (CC0) — no external icon library required.
4
+
5
+ ## Installation
6
+
7
+ Add to your `Gemfile`:
8
+
9
+ ```ruby
10
+ gem "jekyll-social-share"
11
+ ```
12
+
13
+ Add to `_config.yml`:
14
+
15
+ ```yaml
16
+ plugins:
17
+ - jekyll-social-share
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ Add the tag anywhere in your layout or post:
23
+
24
+ ```liquid
25
+ {% social_share %}
26
+ ```
27
+
28
+ ### Override per-use
29
+
30
+ ```liquid
31
+ {% social_share services="bluesky,linkedin,email" %}
32
+ {% social_share title="Custom share text" %}
33
+ {% social_share label="Spread the word" %}
34
+ {% social_share icon_only="true" %}
35
+ ```
36
+
37
+ ### Suppress on a specific page
38
+
39
+ Add to frontmatter:
40
+
41
+ ```yaml
42
+ share: false
43
+ ```
44
+
45
+ ## Configuration
46
+
47
+ All options go under `social_share:` in `_config.yml`:
48
+
49
+ ```yaml
50
+ social_share:
51
+ services:
52
+ - linkedin
53
+ - facebook
54
+ - reddit
55
+ - threads
56
+ - x
57
+ - bluesky
58
+ - mastodon
59
+ - whatsapp
60
+ - telegram
61
+ - email
62
+ - copy
63
+ - hackernews
64
+ - pinterest
65
+ - pocket
66
+ - tumblr
67
+ - flipboard
68
+ - line
69
+ - print
70
+ mastodon_instance: "https://toot.kytta.dev" # relay or your own instance
71
+ label: "Share" # section heading; set to false to hide
72
+ icon_only: false # show icons only, text in sr-only span
73
+ text_only: false # show text labels only, no SVG icons
74
+ ```
75
+
76
+ ### Sort Order
77
+
78
+ The **order of services in the `services:` array determines the order buttons appear** on your site. Rearrange them to match your preference:
79
+
80
+ ```yaml
81
+ social_share:
82
+ services:
83
+ - linkedin
84
+ - facebook
85
+ - x
86
+ - bluesky
87
+ - email
88
+ - copy
89
+ ```
90
+
91
+ This displays buttons in exactly that order: LinkedIn, Facebook, X, Bluesky, Email, Copy.
92
+
93
+ ### Available services
94
+
95
+ | Key | Platform | Share method |
96
+ |-----|----------|--------------|
97
+ | `linkedin` | LinkedIn | Share offsite |
98
+ | `facebook` | Facebook | Share dialog |
99
+ | `reddit` | Reddit | Submit link |
100
+ | `threads` | Threads | Post intent |
101
+ | `x` | X (Twitter) | Tweet intent |
102
+ | `bluesky` | Bluesky | Compose intent |
103
+ | `mastodon` | Mastodon | Via configurable relay |
104
+ | `whatsapp` | WhatsApp | Send to contact |
105
+ | `telegram` | Telegram | Send to chat |
106
+ | `email` | Email | mailto link |
107
+ | `copy` | — | Copy to clipboard |
108
+ | `hackernews` | Hacker News | Submit link |
109
+ | `pinterest` | Pinterest | Pin it |
110
+ | `pocket` | Pocket | Save for later |
111
+ | `tumblr` | Tumblr | Share to blog |
112
+ | `flipboard` | Flipboard | Add to Flipboard |
113
+ | `line` | LINE | Send message |
114
+ | `print` | — | Print page |
115
+
116
+ ### Mastodon
117
+
118
+ Mastodon has no universal share URL. By default the plugin uses the [toot.kytta.dev](https://toot.kytta.dev) relay which prompts the user to enter their instance. Set `mastodon_instance` to your own instance URL to skip the picker.
119
+
120
+ ## Styling
121
+
122
+ The plugin outputs unstyled semantic HTML. Use the BEM classes to style it:
123
+
124
+ ```
125
+ .social-share — wrapper div
126
+ .social-share__label — "Share" heading span
127
+ .social-share__list — <ul> of buttons
128
+ .social-share__item — <li> for each service
129
+ .social-share__item--{svc} — per-service modifier (e.g. --bluesky)
130
+ .social-share__link — <a> or <button> element
131
+ .social-share__icon — SVG icon wrapper
132
+ .social-share__text — text label span
133
+ .social-share__copy — copy-link button
134
+ .social-share__copy--copied — added briefly after successful copy
135
+ ```
136
+
137
+ ### Default Styling
138
+
139
+ The `jasonchance.com` site includes a complete SCSS stylesheet for all 18 services with brand colors. You can reference or customize it:
140
+
141
+ ```scss
142
+ // Outline state (default)
143
+ .social-share__item--linkedin .social-share__link { color: #0a66c2; }
144
+ .social-share__item--facebook .social-share__link { color: #1877f2; }
145
+ .social-share__item--x .social-share__link { color: #000; }
146
+ .social-share__item--bluesky .social-share__link { color: #0085ff; }
147
+ .social-share__item--mastodon .social-share__link { color: #6364ff; }
148
+ .social-share__item--whatsapp .social-share__link { color: #25d366; }
149
+ .social-share__item--telegram .social-share__link { color: #0088cc; }
150
+ .social-share__item--email .social-share__link { color: #555; }
151
+ .social-share__item--copy .social-share__link { color: #888; }
152
+ .social-share__item--hackernews .social-share__link { color: #ff6600; }
153
+ .social-share__item--pinterest .social-share__link { color: #e60023; }
154
+ .social-share__item--pocket .social-share__link { color: #ef4056; }
155
+ .social-share__item--tumblr .social-share__link { color: #36465d; }
156
+ .social-share__item--flipboard .social-share__link { color: #e12828; }
157
+ .social-share__item--line .social-share__link { color: #00b900; }
158
+ .social-share__item--print .social-share__link { color: #666; }
159
+ .social-share__item--reddit .social-share__link { color: #ff4500; }
160
+ .social-share__item--threads .social-share__link { color: #000; }
161
+
162
+ // Filled state (hover/focus)
163
+ .social-share__item--linkedin .social-share__link:hover,
164
+ .social-share__item--linkedin .social-share__link:focus-visible {
165
+ background: #0a66c2;
166
+ color: #fff;
167
+ }
168
+ // ... (repeat for all 18 services)
169
+ ```
170
+
171
+ ### Dark Mode
172
+
173
+ X and Threads use near-black brand colors (`#000`/`#111`) that are invisible in dark mode. Add a `prefers-color-scheme: dark` block to lighten them and any other low-contrast services:
174
+
175
+ ```scss
176
+ @media (prefers-color-scheme: dark) {
177
+ .social-share__item--x .social-share__link { color: #e1e8ed; &:hover, &:focus-visible { background: #e1e8ed; color: #111 !important; } }
178
+ .social-share__item--threads .social-share__link { color: #d0d0d0; &:hover, &:focus-visible { background: #d0d0d0; color: #111 !important; } }
179
+ .social-share__item--email .social-share__link { color: #ccc; &:hover, &:focus-visible { background: #ccc; color: #111 !important; } }
180
+ .social-share__item--copy .social-share__link { color: #999; &:hover, &:focus-visible { background: #999; color: #111 !important; } }
181
+ .social-share__item--tumblr .social-share__link { color: #8899aa; &:hover, &:focus-visible { background: #8899aa; color: #fff !important; } }
182
+ .social-share__item--print .social-share__link { color: #999; &:hover, &:focus-visible { background: #999; color: #111 !important; } }
183
+ }
184
+ ```
185
+
186
+ ### Custom Styling
187
+
188
+ To customize colors, override the CSS per-service:
189
+
190
+ ```scss
191
+ // Use your own colors
192
+ .social-share__item--linkedin .social-share__link { color: #my-blue; }
193
+ .social-share__item--linkedin .social-share__link:hover {
194
+ background: #my-blue;
195
+ color: #fff;
196
+ }
197
+
198
+ // Remove hover effect
199
+ .social-share__item--linkedin .social-share__link:hover { background: transparent; }
200
+
201
+ // Add border outline
202
+ .social-share__item--linkedin .social-share__link { border: 2px solid currentColor; }
203
+ ```
204
+
205
+ Minimal example (simple flex layout with no colors):
206
+
207
+ ```css
208
+ .social-share__list { display: flex; gap: 0.5rem; list-style: none; padding: 0; }
209
+ .social-share__link { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.4rem 0.75rem; border-radius: 4px; text-decoration: none; border: 1px solid #ccc; }
210
+ .social-share__icon svg { width: 1em; height: 1em; fill: currentColor; }
211
+ .social-share__link:hover { background: #f5f5f5; }
212
+ ```
213
+
214
+ ## Requirements
215
+
216
+ - Ruby >= 2.7
217
+ - Jekyll >= 4.0
218
+
219
+ ## License
220
+
221
+ MIT © Jason Chance. Social icons from [Simple Icons](https://simpleicons.org) (CC0).
@@ -8,15 +8,24 @@ module Jekyll
8
8
  DEFAULT_SERVICES = %w[bluesky mastodon facebook reddit linkedin x threads email copy].freeze
9
9
 
10
10
  SERVICE_CONFIG = {
11
- "bluesky" => { label: "Bluesky", url_template: "https://bsky.app/intent/compose?text=%<title>s%%20%<url>s" },
12
- "mastodon" => { label: "Mastodon", url_template: :mastodon },
13
- "facebook" => { label: "Facebook", url_template: "https://www.facebook.com/sharer/sharer.php?u=%<url>s" },
14
- "reddit" => { label: "Reddit", url_template: "https://www.reddit.com/submit?url=%<url>s&title=%<title>s" },
15
- "linkedin" => { label: "LinkedIn", url_template: "https://www.linkedin.com/sharing/share-offsite/?url=%<url>s" },
16
- "x" => { label: "X", url_template: "https://twitter.com/intent/tweet?url=%<url>s&text=%<title>s" },
17
- "threads" => { label: "Threads", url_template: "https://www.threads.net/intent/post?text=%<title>s%%20%<url>s" },
18
- "email" => { label: "Email", url_template: :email },
19
- "copy" => { label: "Copy link", url_template: :copy },
11
+ "bluesky" => { label: "Bluesky", url_template: "https://bsky.app/intent/compose?text=%<title>s%%20%<url>s" },
12
+ "mastodon" => { label: "Mastodon", url_template: :mastodon },
13
+ "facebook" => { label: "Facebook", url_template: "https://www.facebook.com/sharer/sharer.php?u=%<url>s" },
14
+ "reddit" => { label: "Reddit", url_template: "https://www.reddit.com/submit?url=%<url>s&title=%<title>s" },
15
+ "linkedin" => { label: "LinkedIn", url_template: "https://www.linkedin.com/sharing/share-offsite/?url=%<url>s" },
16
+ "x" => { label: "X", url_template: "https://twitter.com/intent/tweet?url=%<url>s&text=%<title>s" },
17
+ "threads" => { label: "Threads", url_template: "https://www.threads.net/intent/post?text=%<title>s%%20%<url>s" },
18
+ "email" => { label: "Email", url_template: :email },
19
+ "copy" => { label: "Copy link", url_template: :copy },
20
+ "whatsapp" => { label: "WhatsApp", url_template: "https://wa.me/?text=%<title>s%%20%<url>s" },
21
+ "telegram" => { label: "Telegram", url_template: "https://t.me/share/url?url=%<url>s&text=%<title>s" },
22
+ "hackernews" => { label: "Hacker News", url_template: "https://news.ycombinator.com/submitlink?u=%<url>s&t=%<title>s" },
23
+ "pinterest" => { label: "Pinterest", url_template: "https://pinterest.com/pin/create/button/?url=%<url>s&description=%<title>s" },
24
+ "pocket" => { label: "Pocket", url_template: "https://getpocket.com/edit?url=%<url>s&title=%<title>s" },
25
+ "tumblr" => { label: "Tumblr", url_template: "https://www.tumblr.com/widgets/share/tool?canonicalUrl=%<url>s&title=%<title>s" },
26
+ "flipboard" => { label: "Flipboard", url_template: "https://share.flipboard.com/?v=flipit&title=%<title>s&url=%<url>s" },
27
+ "line" => { label: "LINE", url_template: "https://social-plugins.line.me/lineit/share?url=%<url>s" },
28
+ "print" => { label: "Print", url_template: :print },
20
29
  }.freeze
21
30
 
22
31
  def initialize(tag_name, markup, tokens)
@@ -34,7 +43,7 @@ module Jekyll
34
43
  services = resolve_services(@params["services"] || config["services"] || DEFAULT_SERVICES)
35
44
  icon_only = bool_param(@params, config, "icon_only", false)
36
45
  text_only = bool_param(@params, config, "text_only", false)
37
- label = @params["label"] || config["label"] || "Share"
46
+ label = @params.key?("label") ? @params["label"] : (config.key?("label") ? config["label"] : "Share")
38
47
  show_label = label != false && label != "false"
39
48
  mastodon_relay = config["mastodon_instance"] || "https://toot.kytta.dev"
40
49
 
@@ -90,6 +99,8 @@ module Jekyll
90
99
  subject = URI.encode_www_form_component(URI.decode_www_form_component(page_title))
91
100
  body = URI.encode_www_form_component(URI.decode_www_form_component(page_url))
92
101
  "mailto:?subject=#{subject}&body=#{body}"
102
+ when :print
103
+ "javascript:window.print()"
93
104
  when :copy
94
105
  "#copy-link"
95
106
  else
@@ -100,6 +111,8 @@ module Jekyll
100
111
  def render_item(svc, label, href, icon, icon_only, text_only)
101
112
  if svc == "copy"
102
113
  render_copy_item(icon, label, icon_only, text_only)
114
+ elsif svc == "print"
115
+ render_print_item(icon, label, icon_only, text_only)
103
116
  else
104
117
  target = %(target="_blank" rel="noopener noreferrer")
105
118
  icon_html = text_only ? "" : %(<span class="social-share__icon">#{icon}</span>)
@@ -130,6 +143,12 @@ module Jekyll
130
143
  %(<li class="social-share__item social-share__item--copy"><button id="social-share-copy" class="social-share__link social-share__copy" aria-label="Copy link">#{icon_html}#{label_html}</button></li>#{script})
131
144
  end
132
145
 
146
+ def render_print_item(icon, label, icon_only, text_only)
147
+ icon_html = text_only ? "" : %(<span class="social-share__icon">#{icon}</span>)
148
+ label_html = icon_only ? %(<span class="social-share__text sr-only">#{label}</span>) : %(<span class="social-share__text">#{label}</span>)
149
+ %(<li class="social-share__item social-share__item--print"><button class="social-share__link" onclick="window.print()" aria-label="Print page">#{icon_html}#{label_html}</button></li>)
150
+ end
151
+
133
152
  def render_wrapper(label, show_label, items)
134
153
  label_html = show_label ? %(<span class="social-share__label">#{label}</span>) : ""
135
154
  <<~HTML
@@ -13,6 +13,15 @@ module Jekyll
13
13
  "threads" => '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M18.263 11.097c-.03-3.486-1.92-5.586-5.111-5.586-2.13 0-3.922.963-4.863 2.499l2.062 1.438c.535-.843 1.272-1.543 2.628-1.543 1.528 0 2.318.85 2.544 2.431a15 15 0 0 0-2.236-.173c-4.125 0-6.068 1.867-6.068 4.336s1.943 3.99 4.804 3.99c3.139 0 5.013-2.115 5.781-4.735.798.361 1.348 1.204 1.348 2.47 0 3.387-3.907 5.232-7.22 5.232-4.885 0-8.077-3.207-8.077-8.424 0-6.392 4.223-10.487 9.9-10.487 3.808 0 5.69 1.671 6.97 3.914l2.108-1.475C21.44 2.078 18.331 0 13.663 0 6.227 0 1.168 5.277 1.168 12.934c0 7 4.953 11.066 10.856 11.066 4.878 0 9.809-2.846 9.809-7.716 0-2.545-1.46-4.231-3.569-5.187m-6.33 4.855c-1.077 0-2.026-.512-2.026-1.453 0-1.483 1.822-1.934 3.606-1.934.678 0 1.34.045 1.927.173-.422 1.927-1.671 3.215-3.508 3.214Z"/></svg>',
14
14
  "email" => '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z"/></svg>',
15
15
  "copy" => '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>',
16
+ "whatsapp" => '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M17.675 13.889c-.375-.187-2.223-1.098-2.566-1.223-.343-.126-.593-.187-.843.187-.25.375-1.011 1.223-1.236 1.473-.225.25-.45.281-.825.094-.375-.187-1.582-.583-3.011-1.856-.112-.098-.2-.21-.28-.325-.073-.103-.129-.217-.169-.34.168-.226.281-.436.422-.65.141-.215.187-.358.281-.594.094-.236.047-.422-.047-.593-.094-.171-.843-2.034-1.156-2.787-.304-.724-.614-.626-.843-.638-.219-.011-.469-.013-.719-.013s-.656.094-.999.469c-.343.375-1.31 1.281-1.31 3.125 0 1.844 1.338 3.625 1.522 3.875.183.25 2.566 3.92 6.215 5.5.868.375 1.546.6 2.073.768.869.276 1.66.237 2.284.144.696-.102 2.145-.877 2.447-1.725.303-.85.303-1.577.212-1.726-.091-.149-.342-.237-.716-.412"/></svg>',
17
+ "telegram" => '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a11.955 11.955 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.385-1.373.365-.566-.034-1.653-.195-2.461-.286-.9-.122-1.614-.561-1.615-1.562-.001-1.003.671-1.565 1.708-1.568.745-.003 1.482.13 2.622.26 1.476.21 2.589.881 2.589 1.443 0 .652-.567 1.218-1.754 1.653-.731.275-1.141.374-1.141.374"/></svg>',
18
+ "hackernews" => '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M0 24V0h24v24H0zM6.951 5.896l2.112 3.652h1.736V5.278h-1.58v3.423L7.581 5.896H6.95zm-1.789 7.514h1.585v-5.962H5.162zm5.737 0h1.656v-2.766c0-.532.115-1.579.767-1.579.588 0 .85.57.85 1.141v3.204h1.618v-3.678c0-1.402-.725-2.174-1.773-2.174-.741 0-1.306.346-1.523.676h-.056V7.41h-1.539zm7.733-1.287c-.419-1.286-2.237-2.675-4.586-2.675-2.768 0-4.778 1.707-4.778 4.632 0 2.904 2.01 4.645 4.778 4.645 2.349 0 4.167-1.389 4.586-2.675h-1.677c-.36.72-1.126 1.363-2.909 1.363-1.855 0-3.102-.984-3.102-2.333h4.823c.014-.095.027-.19.04-.289.012-.1.024-.2.024-.301 0-.495-.035-.898-.118-1.267zm-4.546-1.733c1.562 0 2.765.672 3.096 1.65H9.905c.33-.978 1.534-1.65 3.096-1.65z"/></svg>',
19
+ "pinterest" => '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M12.017 0C5.396 0 .029 5.367.029 11.983c0 5.059 3.768 9.418 8.855 10.434.646.060 1.203.048 1.496-.422.196-.306.196-.616.0-.916-.519-1.594-.735-2.236-.926-4.041C6.031 15.672 5.72 13.6 5.72 11.983c0-3.900 3.433-7.330 7.296-7.330 3.863.001 7.296 3.431 7.296 7.330 0 1.993-.268 3.961 1.055 5.218s3.694 1.23 4.785.745c.552-.377.905-.615.905-1.457-.029-4.668-3.519-8.702-8.100-8.702-.384 0-.763.032-1.142.110 1.327-1.363 2.537-3.432 2.537-5.556 0-1.886-.784-3.637-2.039-4.752-.393-.383-.928-.516-1.466-.387-.539.128-1.022.545-1.022 1.297-.029 1.305-.277 2.571-.824 3.886-1.804-1.860-2.368-2.724-2.752-4.56-.282-1.331-.638-2.305-1.346-2.952C11.646.204 11.838 0 12.017 0z"/></svg>',
20
+ "pocket" => '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M21.727 0H2.273C.981 0 0 .981 0 2.273v9.818c0 2.586 2.138 5.045 5.045 5.45l5.909 5.909 5.909-5.909c2.907-.405 5.045-2.864 5.045-5.45V2.273C24 .981 23.019 0 21.727 0zm-2.136 10.591a.818.818 0 0 1-.818.818h-4.09a.818.818 0 0 1-.818-.818V7.364a.818.818 0 0 1 .818-.818h4.09a.818.818 0 0 1 .818.818z"/></svg>',
21
+ "tumblr" => '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M20.445 20.452c-.975.976-2.924 1.462-5.313 1.462-5.922 0-7.381-4.433-7.381-7.637V9.249h-3.04V6.161c3.041-.97 4.753-3.432 4.97-5.973h3.268v5.304h4.182v3.088h-4.182v4.848c0 1.583.772 2.652 2.262 2.652.633 0 1.322-.133 1.834-.452v3.164Z"/></svg>',
22
+ "flipboard" => '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M0 2v20h24V2H0zm10.5 18.5H2v-7.5h8.5v7.5zm0-9H2v-7h8.5v7zm9 9h-7.5v-7.5H19.5v7.5zm0-9h-7.5v-7h7.5v7z"/></svg>',
23
+ "line" => '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M19.365 9.863c.349-1.89.111-3.734-.684-5.195-1.229-2.274-3.806-3.41-7.243-3.41-6.279 0-11.441 3.22-11.441 7.195 0 2.149 1.747 4.129 4.57 5.348-.178.58-.574 1.899-.664 2.174-.141.519-.733.638-.733.638l-5.385.304c-.733.042-.766.639-.057 1.027 0 0 8.369 6.213 15.731 6.213 5.505 0 9.364-2.725 9.364-5.958 0-2.593-2.036-4.856-4.858-5.336z"/></svg>',
24
+ "print" => '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"/></svg>',
16
25
  }.freeze
17
26
  end
18
27
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Jekyll
4
4
  module SocialShare
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.1"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-social-share
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Chance
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-08-21 00:00:00.000000000 Z
10
+ date: 2026-08-22 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: jekyll
@@ -32,6 +32,7 @@ executables: []
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
+ - README.md
35
36
  - lib/jekyll-social-share.rb
36
37
  - lib/jekyll-social-share/icons.rb
37
38
  - lib/jekyll-social-share/version.rb