Recently Written · git

sbm-sync

Sync server for sbm bookmark files: one small Go program, plain files, AGPL

git clone https://github.com/equwal/sbm-sync

Log | Files | Refs


commit 2888a9184edbf60d5f6429f18c23dd9c475bb4ee
equwal <truex@equwal.com>
2026-09-22 18:30:48 -0700

Terms of sale: cancel by email is a method of its own

Without SBM_MANAGE_URL, the page said "You can also write" after no
other method. Now it says "To cancel by email, write to".

 pages.html     | 2 +-
 server_test.go | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/pages.html b/pages.html
index c00082f..eb67173 100644
--- a/pages.html
+++ b/pages.html
@@ -147,7 +147,7 @@ Stripe takes the payments. This server never sees your card.</p>
 <p>You can cancel a subscription at any time.{{if .Billing}} For sync, use
 Manage billing on your account page or in the add-on.{{end}}{{with .Manage}}
 For a supporter subscription, use <a href="{{.}}">this page</a>.{{end}}{{with .Contact}}
-You can also write to <a href="mailto:{{.}}">{{.}}</a>.{{end}} A subscription
+To cancel by email, write to <a href="mailto:{{.}}">{{.}}</a>.{{end}} A subscription
 that you cancel stays active to the end of the period that you paid for.
 Then the charges stop.</p>
 <h2>Refunds</h2>
diff --git a/server_test.go b/server_test.go
index 82a5836..4c1c013 100644
--- a/server_test.go
+++ b/server_test.go
@@ -535,7 +535,7 @@ func TestTerms(t *testing.T) {
 	e.s.contact, e.s.support, e.s.manage = "me@example.org", "https://buy.stripe.com/support", "https://billing.stripe.com/p/login/x"
 	page := e.body(http.DefaultClient, "/terms")
 	for _, want := range []string{"Terms of sale", "not Google", "$30 a year", "supporter subscription",
-		`<a href="https://billing.stripe.com/p/login/x">`, "within 30 days", `<a href="mailto:me@example.org">`} {
+		`<a href="https://billing.stripe.com/p/login/x">`, "within 30 days", `To cancel by email, write to <a href="mailto:me@example.org">`} {
 		if !strings.Contains(page, want) {
 			t.Errorf("the terms lack %q", want)
 		}