Skip to content

Commit

Permalink
Prepare service release
Browse files Browse the repository at this point in the history
  • Loading branch information
qwtel committed Sep 4, 2024
1 parent c2345ce commit 949a70b
Show file tree
Hide file tree
Showing 12 changed files with 55 additions and 75 deletions.
2 changes: 1 addition & 1 deletion #jekyll-theme-hydejack
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@ layout: plain
* this list will be replaced by the toc
{:toc .large-only}

## v9.1.7
Sep 03 2024
{:.heading.post-date}

* Fixed deprecation warnings
* Updated Ruby dependencies
* Fixed browser chrome (e.g. scrollbar) not matching dark mode

## v9.1.6
Feb 07 2022
{:.heading.post-date}
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ selected_projects:
- /showcase/shawn-yeager/
projects_page: showcase.md
selected_posts:
- /blog/hydejack/2021-02-13-whats-new-in-hydejack-9-1/
- hydejack/_posts/2024-09-03-service-release-9-1-7.md
- hydejack/_posts/2020-07-03-introducing-hydejack-9.md
- /blog/hydejack/2018-09-01-introducing-dark-mode/
- hydejack/_posts/2018-06-01-example-content-iii.md
Expand Down
1 change: 1 addition & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,7 @@ exclude:
- vendor
- Gemfile
- Gemfile.lock
- .ruby-lsp
include:
- .well-known
- LICENSE.md
Expand Down
32 changes: 2 additions & 30 deletions _data/authors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,40 +18,12 @@ qwtel:
|:------------------------------|:-------------------:|:-------------------:|
| [Features][fea] | ✔ | ✔ |
| [PRO Features][pro] | | ✔ |
| __Price__ | __Free__ | <span class="price"><del>$99</del> <strong class="new-price">$69</strong> <small>One-Time Payment</small></span> [^22] |
| __Price__ | __Free__ | __$99__ <small>One-Time Payment</small> [^22] |
|===============================+=====================+=====================|
| | [__Download__][kit] | [__Buy PRO__][buy]{:.gumroad-button data-gumroad-single-product="true"} |
{:.stretch-table.dl-table}
[^22]: Price now permanently reduced by <strong class="discount">30%</strong>! Use the offer code <strong class="code">QR0TW8M</strong> to apply this discount later.
{:.ppi}
If you're upgrading from Hydejack 8, find your upgrade discount code in the latest zip download.
<script type="module">
document.querySelectorAll('.ppi').forEach(async el => {
if (!el.dataset.done) {
const { name, emoji, code, discount } = await window._ppiData;
if (!code) return;
el.querySelectorAll('.name').forEach(el => { el.innerText = name });
el.querySelectorAll('.emoji').forEach(el => { el.innerText = emoji; el.title = name });
el.querySelectorAll('.code').forEach(el => { el.innerText = code.toUpperCase() });
el.querySelectorAll('.discount').forEach(el => { el.innerText = `${discount * 100}%` });
el.dataset.done = '';
}
});
document.querySelectorAll('.price').forEach(async el => {
if (!el.dataset.done) {
const { name, emoji, code, discount } = await window._ppiData;
if (!code) return;
el.querySelectorAll('.name').forEach(el => { el.innerText = name });
el.querySelectorAll('.emoji').forEach(el => { el.innerText = emoji; el.title = name });
el.querySelectorAll('.code').forEach(el => { el.innerText = code.toUpperCase() });
el.querySelectorAll('.new-price').forEach(el => { el.innerText = `$${99 - discount * 100}` });
el.dataset.done = '';
}
});
</script>
[^22]: Discounts may apply, check [Gumroad][buy]{:data-gumroad-single-product="true"} for up-to-date pricing.
[fea]: /#features
[pro]: /download/
Expand Down
19 changes: 4 additions & 15 deletions _includes/my-head.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
Left here for reference, feel free to delete.
-->
<link rel="dns-prefetch" href="https://assets.gumroad.com">
{% unless jekyll.environment == 'development' %}
<script defer data-domain="hydejack.com" src="https://plausible.io/js/plausible.js"></script>
<script>(function () { window.counterscale = { q: [["set", "siteId", "hydejack.com"], ["trackPageview"]] } })()</script>
<script id="counterscale-script" src="https://counterscale-bio.pages.dev/tracker.js" defer></script>
{% endunless %}
<script type="module">
const ppiData = window._ppiData = fetch('https://hydejack-ppi.qwtel.workers.dev', { mode: 'cors'}).then(res => res.json()).catch(() => ({}));
const promisify = f => x => new Promise(r => f(x).addEventListener('load', r));
const loadJS = promisify(window.loadJS);
let p1, p2, embedCreated, overlayCreated;
Expand All @@ -16,12 +17,7 @@
const io1 = new IntersectionObserver(async (entries) => {
if (entries.some(x => x.isIntersecting)) {
p1 = p1 || loadJS('https://gumroad.com/js/gumroad-embed.js');
const [{ code }] = await Promise.all([ppiData, p1]);
document.querySelectorAll('.gumroad-product-embed').forEach(el => {
if (!el.dataset.gumroadParams) {
el.dataset.gumroadParams = 'offer_code=' + (code || 'qr0tw8m');
}
});
await p1;
!embedCreated && await new Promise(function check1(res) {
if (typeof createGumroadEmbed !== 'undefined') {
embedCreated = 1;
Expand All @@ -39,14 +35,7 @@
const io2 = new IntersectionObserver(async (entries) => {
if (entries.some(x => x.isIntersecting)) {
p2 = p2 || loadJS('https://gumroad.com/js/gumroad.js');
const [{ code }] = await Promise.all([ppiData, p2]);
if (code) {
document.querySelectorAll('.gumroad-button').forEach(el => {
if (!el.href.endsWith(code)) {
el.href = el.href + '/' + (code || 'qr0tw8m');
}
});
}
await p2;
!overlayCreated && await new Promise(function check(res) {
if (typeof createGumroadOverlay !== 'undefined') {
overlayCreated = 1;
Expand Down
30 changes: 2 additions & 28 deletions _includes/table.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,14 @@ The table below shows what's included in each version:
| No Hydejack Branding | | &#x2714; |
| License | [GPL-3.0][lic] | [PRO] |
| Source | [GitHub][src] | Included |
| __Price__ | __Free__ | <span class="price"><del>$99</del> <strong class="new-price">$69</strong> <small>One-Time Payment</small></span> [^22] |
| __Price__ | __Free__ | __$99__ <small>One-Time Payment</small> [^22] |
|===============================+=====================+=====================|
| | [__Download__][kit] | [__Buy PRO__][buy]{:.gumroad-button data-gumroad-single-product="true"} |
{:.stretch-table.dl-table}

[^21]: Large screens (> 1664px width) only.

[^22]: Price now permanently reduced by <strong class="discount">30%</strong>! Use the offer code <strong class="code">QR0TW8M</strong> to apply this discount later.
{:.ppi}
If you're upgrading from Hydejack 8, find your upgrade discount code in the latest zip download.
[^22]: Discounts may apply, check [Gumroad][buy]{:data-gumroad-single-product="true"} for up-to-date pricing.

<script type="module">
document.querySelectorAll('a[href="#_search-input"]').forEach(el => {
Expand All @@ -40,28 +38,4 @@ The table below shows what's included in each version:
el.dataset.done = '';
}
});

document.querySelectorAll('.ppi').forEach(async el => {
if (!el.dataset.done) {
const { name, emoji, code, discount } = await window._ppiData;
if (!code) return;
el.querySelectorAll('.name').forEach(el => { el.innerText = name });
el.querySelectorAll('.emoji').forEach(el => { el.innerText = emoji; el.title = name });
el.querySelectorAll('.code').forEach(el => { el.innerText = code.toUpperCase() });
el.querySelectorAll('.discount').forEach(el => { el.innerText = `${discount * 100}%` });
el.dataset.done = '';
}
});

document.querySelectorAll('.price').forEach(async el => {
if (!el.dataset.done) {
const { name, emoji, code, discount } = await window._ppiData;
if (!code) return;
el.querySelectorAll('.name').forEach(el => { el.innerText = name });
el.querySelectorAll('.emoji').forEach(el => { el.innerText = emoji; el.title = name });
el.querySelectorAll('.code').forEach(el => { el.innerText = code.toUpperCase() });
el.querySelectorAll('.new-price').forEach(el => { el.innerText = `$${99 - discount * 100}` });
el.dataset.done = '';
}
});
</script>
Binary file added assets/img/blog/deprecation-warnings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 36 additions & 0 deletions hydejack/_posts/2024-09-03-service-release-9-1-7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
layout: post
title: Hydejack, Stripe-ified
image:
path: /assets/img/blog/nick-wright-Cp19i8IOjk4-unsplash.jpg
srcset:
1920w: /assets/img/blog/nick-wright-Cp19i8IOjk4-unsplash.jpg
960w: /assets/img/blog/nick-wright-Cp19i8IOjk4-unsplash@0,5x.jpg
480w: /assets/img/blog/nick-wright-Cp19i8IOjk4-unsplash@0,25x.jpg
description: >
Hydejack is back from the dead with a few long overdue bugfixes.
---

# Service Release 9.1.7

<!-- __Hydejack is back from the dead__ with a few long overdue bugfixes. -->

A full-time job and focus to my many other side projects meant that Hydejack has been effectively abandoned for the last couple of years.

Recently I've used Hydejack myself to blog on my personal site, and while it may sound silly, __I came away impressed with my own product__.

When I was actively working on Hydejack, all I could see were its flaws, but looking at it with fresh eyes, it struck me as a pretty good product and in many ways ahead of its time:
Just recently the [View Transitions API][vta] has landed in major browsers, enabling the kinds of animations that have been the bread and butter of Hydejack for years (back then painstakingly hand-coded using JavaScript).

While I can't go back to working full-time on this project --- the economics of a niche one-time purchase like this hard to justify --- I'm going to dedicate 1-2 weeks to brushing it up, starting with __a service release that removes the annoying deprecation warnings__ that you've likely encountered:

![Deprecation Warnings](/assets/img/blog/deprecation-warnings.png){:.border}

Another thing I want to improve is the documentation for deployments. Things have changed since I wrote the original docs. There are now much better ways of deploying to GitHub Pages and from GitHub Actions in general.

The deployment experience for PRO customers could also be improved. Upgrading from Free to PRO hasn't been as smooth as it could be due to the need to manually manage source files. Instead, it would be possible to create a GitHub Organization for all customers which would allow pulling PRO code directly from a private repository in must CI pipelines.

Adding dark mode images has been requested a couple of times. The solution is most likely documentation on how to do it using HTML, but it deserves a closer look. If there's time left, I will also look into deleting 100s of lines of custom JS code in favor of the View Transitions API.


[vta]: https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API

0 comments on commit 949a70b

Please sign in to comment.