Skip to content

Repository files navigation

Sarah & Luke — wedding site

A two-page static site: an e-invitation with a dinner-choice survey, and a honeymoon registry. No build step, no dependencies, no server.

index.html the invitation + embedded survey
registry.html the honeymoon registry (edit amounts in the script at the bottom)
create-form.gs one-click Google Form builder
SETUP.md start-to-finish walkthrough - read this first
img/willow-* the linocut artwork
img/map.svg the three places, for the menu section
.nojekyll tells GitHub Pages to serve files as-is

Setting this up for the first time? Read SETUP.md instead — it's the same information as a start-to-finish walkthrough, including the no-command-line route to GitHub Pages. This file is the shorter reference.

1. Make the survey (10 minutes, once)

The site is static, so the form itself lives in Google Forms and gets embedded.

  1. Go to script.google.comNew project
  2. Delete the sample code, paste in the whole of create-form.gs
  3. Click Run. Google will ask for permission the first time — click AdvancedGo to project (unsafe). It's your own script; that warning appears for anything unpublished.
  4. Open the Execution log. It prints three links:
    • the form, for editing
    • the embed URL ← you need this one
    • the responses spreadsheet

If you'd rather not run a script, build the form by hand in Google Forms and get the embed URL from Send → < > → copy the src="…" value. The questions are all written out in create-form.gs.

2. Connect it

Open index.html, scroll to the bottom, and paste the embed URL:

constFORM_URL="https://docs.google.com/forms/d/e/1FAIpQLS…/viewform?embedded=true";

Until you do, the page shows a small "form isn't connected yet" note instead of a broken frame. If the embedded form ends up with its own scrollbar, raise min-height on .formbox iframe in the stylesheet.

3. Put it online

cd site
git init -b main
git add .
git commit -m "Wedding site"
git remote add origin https://github.com/la424/wedding.git
git push -u origin main

Create the empty wedding repo on GitHub first (public). Then in the repo: Settings → Pages → Source: Deploy from a branch → main / / (root) → Save.

It goes live at https://la424.github.io/wedding/ in about a minute.

To email it, link that URL — don't paste the HTML into an email. Gmail and Outlook strip stylesheets and iframes, so an emailed copy would arrive as unstyled text with no survey. A short note plus the link is the way.

4. Editing the registry

Everything lives in the PLAN array at the bottom of registry.html:

{name:"Dinner at The Ebrington Arms",desc:"After the walk to St James' Church.",amount:115}

Change amount, add or delete entries, reorder groups. shares: 4 splits one big item into four equal gifts. Venmo and PayPal links are generated automatically from these two lines:

constVENMO="Luke-Arnce";constPAYPAL="lukearnce";

Before you publish: open https://paypal.me/lukearnce and confirm that handle is actually claimed on your account — PayPal.Me links 404 otherwise. Venmo links work without setup, but test one on your phone; Venmo sometimes ignores a pre-filled amount depending on app version, in which case the guest just types it in.

As written, the registry totals $3,763 if every item and every share is claimed.

5. The artwork

img/ holds the screen version. Print-ready files are in the print/ folder alongside this repo (they're big, so keep them out of git if you'd rather):

FileWhat it's for
willow-color.pdfThe green-and-cream design, 5×7in — a digital keepsake or a printed card
willow-block.pdf / -600dpi.pngPure black-and-white carving guide, reads normally
willow-block-mirrored.*Print this one to transfer to the block
willow-lowcarve*.*Inverted — dark tree on light ground, far less material to remove

Which to carve.willow-block makes the willow negative space — you carve away the tree, every leaf and all the frame channels, leaving the background standing. willow-lowcarve inverts it: remove the background, leave the tree. Far less carving, different but equally good print.

Why there's a mirrored version. A relief print comes out backwards from the block, so the block has to carry a mirrored image for the print to read right. Which file you print depends on the transfer method: -mirrored if you're tracing through graphite paper or copying by eye, the normal one if you're laying a print face-down and transferring with acetone, gel medium or an iron (going face-down flips it for you). Only the lettering is affected — the tree is near enough symmetrical. Full table in SETUP.md.

Sizing. Everything is dimensioned for hand carving at 5×7in. Running make_willow.py prints the check:

leaf 1.44 x 2.62 mm
lino between leaves 1.44 mm
lino between strands 2.19 mm
frame channel 1.52 mm

That's about the floor for a small U-gouge. If you scale the design down, these go with it — at 4×6 the gaps drop to ~1.1mm and it gets fussy. Scaling up is free. If you want it easier still, open make_willow.py and raise LEAF_PITCH and FROND_PITCH; the whole tree regenerates.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - la424/wedding · GitHub
Skip to content

Repository files navigation

Sarah & Luke — wedding site

A two-page static site: an e-invitation with a dinner-choice survey, and a honeymoon registry. No build step, no dependencies, no server.

index.html the invitation + embedded survey
registry.html the honeymoon registry (edit amounts in the script at the bottom)
create-form.gs one-click Google Form builder
SETUP.md start-to-finish walkthrough - read this first
img/willow-* the linocut artwork
img/map.svg the three places, for the menu section
.nojekyll tells GitHub Pages to serve files as-is

Setting this up for the first time? Read SETUP.md instead — it's the same information as a start-to-finish walkthrough, including the no-command-line route to GitHub Pages. This file is the shorter reference.

1. Make the survey (10 minutes, once)

The site is static, so the form itself lives in Google Forms and gets embedded.

  1. Go to script.google.comNew project
  2. Delete the sample code, paste in the whole of create-form.gs
  3. Click Run. Google will ask for permission the first time — click AdvancedGo to project (unsafe). It's your own script; that warning appears for anything unpublished.
  4. Open the Execution log. It prints three links:
    • the form, for editing
    • the embed URL ← you need this one
    • the responses spreadsheet

If you'd rather not run a script, build the form by hand in Google Forms and get the embed URL from Send → < > → copy the src="…" value. The questions are all written out in create-form.gs.

2. Connect it

Open index.html, scroll to the bottom, and paste the embed URL:

constFORM_URL="https://docs.google.com/forms/d/e/1FAIpQLS…/viewform?embedded=true";

Until you do, the page shows a small "form isn't connected yet" note instead of a broken frame. If the embedded form ends up with its own scrollbar, raise min-height on .formbox iframe in the stylesheet.

3. Put it online

cd site
git init -b main
git add .
git commit -m "Wedding site"
git remote add origin https://github.com/la424/wedding.git
git push -u origin main

Create the empty wedding repo on GitHub first (public). Then in the repo: Settings → Pages → Source: Deploy from a branch → main / / (root) → Save.

It goes live at https://la424.github.io/wedding/ in about a minute.

To email it, link that URL — don't paste the HTML into an email. Gmail and Outlook strip stylesheets and iframes, so an emailed copy would arrive as unstyled text with no survey. A short note plus the link is the way.

4. Editing the registry

Everything lives in the PLAN array at the bottom of registry.html:

{name:"Dinner at The Ebrington Arms",desc:"After the walk to St James' Church.",amount:115}

Change amount, add or delete entries, reorder groups. shares: 4 splits one big item into four equal gifts. Venmo and PayPal links are generated automatically from these two lines:

constVENMO="Luke-Arnce";constPAYPAL="lukearnce";

Before you publish: open https://paypal.me/lukearnce and confirm that handle is actually claimed on your account — PayPal.Me links 404 otherwise. Venmo links work without setup, but test one on your phone; Venmo sometimes ignores a pre-filled amount depending on app version, in which case the guest just types it in.

As written, the registry totals $3,763 if every item and every share is claimed.

5. The artwork

img/ holds the screen version. Print-ready files are in the print/ folder alongside this repo (they're big, so keep them out of git if you'd rather):

FileWhat it's for
willow-color.pdfThe green-and-cream design, 5×7in — a digital keepsake or a printed card
willow-block.pdf / -600dpi.pngPure black-and-white carving guide, reads normally
willow-block-mirrored.*Print this one to transfer to the block
willow-lowcarve*.*Inverted — dark tree on light ground, far less material to remove

Which to carve.willow-block makes the willow negative space — you carve away the tree, every leaf and all the frame channels, leaving the background standing. willow-lowcarve inverts it: remove the background, leave the tree. Far less carving, different but equally good print.

Why there's a mirrored version. A relief print comes out backwards from the block, so the block has to carry a mirrored image for the print to read right. Which file you print depends on the transfer method: -mirrored if you're tracing through graphite paper or copying by eye, the normal one if you're laying a print face-down and transferring with acetone, gel medium or an iron (going face-down flips it for you). Only the lettering is affected — the tree is near enough symmetrical. Full table in SETUP.md.

Sizing. Everything is dimensioned for hand carving at 5×7in. Running make_willow.py prints the check:

leaf 1.44 x 2.62 mm
lino between leaves 1.44 mm
lino between strands 2.19 mm
frame channel 1.52 mm

That's about the floor for a small U-gouge. If you scale the design down, these go with it — at 4×6 the gaps drop to ~1.1mm and it gets fussy. Scaling up is free. If you want it easier still, open make_willow.py and raise LEAF_PITCH and FROND_PITCH; the whole tree regenerates.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - la424/wedding · GitHub
Skip to content

Repository files navigation

Sarah & Luke — wedding site

A two-page static site: an e-invitation with a dinner-choice survey, and a honeymoon registry. No build step, no dependencies, no server.

index.html the invitation + embedded survey
registry.html the honeymoon registry (edit amounts in the script at the bottom)
create-form.gs one-click Google Form builder
SETUP.md start-to-finish walkthrough - read this first
img/willow-* the linocut artwork
img/map.svg the three places, for the menu section
.nojekyll tells GitHub Pages to serve files as-is

Setting this up for the first time? Read SETUP.md instead — it's the same information as a start-to-finish walkthrough, including the no-command-line route to GitHub Pages. This file is the shorter reference.

1. Make the survey (10 minutes, once)

The site is static, so the form itself lives in Google Forms and gets embedded.

  1. Go to script.google.comNew project
  2. Delete the sample code, paste in the whole of create-form.gs
  3. Click Run. Google will ask for permission the first time — click AdvancedGo to project (unsafe). It's your own script; that warning appears for anything unpublished.
  4. Open the Execution log. It prints three links:
    • the form, for editing
    • the embed URL ← you need this one
    • the responses spreadsheet

If you'd rather not run a script, build the form by hand in Google Forms and get the embed URL from Send → < > → copy the src="…" value. The questions are all written out in create-form.gs.

2. Connect it

Open index.html, scroll to the bottom, and paste the embed URL:

constFORM_URL="https://docs.google.com/forms/d/e/1FAIpQLS…/viewform?embedded=true";

Until you do, the page shows a small "form isn't connected yet" note instead of a broken frame. If the embedded form ends up with its own scrollbar, raise min-height on .formbox iframe in the stylesheet.

3. Put it online

cd site
git init -b main
git add .
git commit -m "Wedding site"
git remote add origin https://github.com/la424/wedding.git
git push -u origin main

Create the empty wedding repo on GitHub first (public). Then in the repo: Settings → Pages → Source: Deploy from a branch → main / / (root) → Save.

It goes live at https://la424.github.io/wedding/ in about a minute.

To email it, link that URL — don't paste the HTML into an email. Gmail and Outlook strip stylesheets and iframes, so an emailed copy would arrive as unstyled text with no survey. A short note plus the link is the way.

4. Editing the registry

Everything lives in the PLAN array at the bottom of registry.html:

{name:"Dinner at The Ebrington Arms",desc:"After the walk to St James' Church.",amount:115}

Change amount, add or delete entries, reorder groups. shares: 4 splits one big item into four equal gifts. Venmo and PayPal links are generated automatically from these two lines:

constVENMO="Luke-Arnce";constPAYPAL="lukearnce";

Before you publish: open https://paypal.me/lukearnce and confirm that handle is actually claimed on your account — PayPal.Me links 404 otherwise. Venmo links work without setup, but test one on your phone; Venmo sometimes ignores a pre-filled amount depending on app version, in which case the guest just types it in.

As written, the registry totals $3,763 if every item and every share is claimed.

5. The artwork

img/ holds the screen version. Print-ready files are in the print/ folder alongside this repo (they're big, so keep them out of git if you'd rather):

FileWhat it's for
willow-color.pdfThe green-and-cream design, 5×7in — a digital keepsake or a printed card
willow-block.pdf / -600dpi.pngPure black-and-white carving guide, reads normally
willow-block-mirrored.*Print this one to transfer to the block
willow-lowcarve*.*Inverted — dark tree on light ground, far less material to remove

Which to carve.willow-block makes the willow negative space — you carve away the tree, every leaf and all the frame channels, leaving the background standing. willow-lowcarve inverts it: remove the background, leave the tree. Far less carving, different but equally good print.

Why there's a mirrored version. A relief print comes out backwards from the block, so the block has to carry a mirrored image for the print to read right. Which file you print depends on the transfer method: -mirrored if you're tracing through graphite paper or copying by eye, the normal one if you're laying a print face-down and transferring with acetone, gel medium or an iron (going face-down flips it for you). Only the lettering is affected — the tree is near enough symmetrical. Full table in SETUP.md.

Sizing. Everything is dimensioned for hand carving at 5×7in. Running make_willow.py prints the check:

leaf 1.44 x 2.62 mm
lino between leaves 1.44 mm
lino between strands 2.19 mm
frame channel 1.52 mm

That's about the floor for a small U-gouge. If you scale the design down, these go with it — at 4×6 the gaps drop to ~1.1mm and it gets fussy. Scaling up is free. If you want it easier still, open make_willow.py and raise LEAF_PITCH and FROND_PITCH; the whole tree regenerates.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - la424/wedding · GitHub
Skip to content

Repository files navigation

Sarah & Luke — wedding site

A two-page static site: an e-invitation with a dinner-choice survey, and a honeymoon registry. No build step, no dependencies, no server.

index.html the invitation + embedded survey
registry.html the honeymoon registry (edit amounts in the script at the bottom)
create-form.gs one-click Google Form builder
SETUP.md start-to-finish walkthrough - read this first
img/willow-* the linocut artwork
img/map.svg the three places, for the menu section
.nojekyll tells GitHub Pages to serve files as-is

Setting this up for the first time? Read SETUP.md instead — it's the same information as a start-to-finish walkthrough, including the no-command-line route to GitHub Pages. This file is the shorter reference.

1. Make the survey (10 minutes, once)

The site is static, so the form itself lives in Google Forms and gets embedded.

  1. Go to script.google.comNew project
  2. Delete the sample code, paste in the whole of create-form.gs
  3. Click Run. Google will ask for permission the first time — click AdvancedGo to project (unsafe). It's your own script; that warning appears for anything unpublished.
  4. Open the Execution log. It prints three links:
    • the form, for editing
    • the embed URL ← you need this one
    • the responses spreadsheet

If you'd rather not run a script, build the form by hand in Google Forms and get the embed URL from Send → < > → copy the src="…" value. The questions are all written out in create-form.gs.

2. Connect it

Open index.html, scroll to the bottom, and paste the embed URL:

constFORM_URL="https://docs.google.com/forms/d/e/1FAIpQLS…/viewform?embedded=true";

Until you do, the page shows a small "form isn't connected yet" note instead of a broken frame. If the embedded form ends up with its own scrollbar, raise min-height on .formbox iframe in the stylesheet.

3. Put it online

cd site
git init -b main
git add .
git commit -m "Wedding site"
git remote add origin https://github.com/la424/wedding.git
git push -u origin main

Create the empty wedding repo on GitHub first (public). Then in the repo: Settings → Pages → Source: Deploy from a branch → main / / (root) → Save.

It goes live at https://la424.github.io/wedding/ in about a minute.

To email it, link that URL — don't paste the HTML into an email. Gmail and Outlook strip stylesheets and iframes, so an emailed copy would arrive as unstyled text with no survey. A short note plus the link is the way.

4. Editing the registry

Everything lives in the PLAN array at the bottom of registry.html:

{name:"Dinner at The Ebrington Arms",desc:"After the walk to St James' Church.",amount:115}

Change amount, add or delete entries, reorder groups. shares: 4 splits one big item into four equal gifts. Venmo and PayPal links are generated automatically from these two lines:

constVENMO="Luke-Arnce";constPAYPAL="lukearnce";

Before you publish: open https://paypal.me/lukearnce and confirm that handle is actually claimed on your account — PayPal.Me links 404 otherwise. Venmo links work without setup, but test one on your phone; Venmo sometimes ignores a pre-filled amount depending on app version, in which case the guest just types it in.

As written, the registry totals $3,763 if every item and every share is claimed.

5. The artwork

img/ holds the screen version. Print-ready files are in the print/ folder alongside this repo (they're big, so keep them out of git if you'd rather):

FileWhat it's for
willow-color.pdfThe green-and-cream design, 5×7in — a digital keepsake or a printed card
willow-block.pdf / -600dpi.pngPure black-and-white carving guide, reads normally
willow-block-mirrored.*Print this one to transfer to the block
willow-lowcarve*.*Inverted — dark tree on light ground, far less material to remove

Which to carve.willow-block makes the willow negative space — you carve away the tree, every leaf and all the frame channels, leaving the background standing. willow-lowcarve inverts it: remove the background, leave the tree. Far less carving, different but equally good print.

Why there's a mirrored version. A relief print comes out backwards from the block, so the block has to carry a mirrored image for the print to read right. Which file you print depends on the transfer method: -mirrored if you're tracing through graphite paper or copying by eye, the normal one if you're laying a print face-down and transferring with acetone, gel medium or an iron (going face-down flips it for you). Only the lettering is affected — the tree is near enough symmetrical. Full table in SETUP.md.

Sizing. Everything is dimensioned for hand carving at 5×7in. Running make_willow.py prints the check:

leaf 1.44 x 2.62 mm
lino between leaves 1.44 mm
lino between strands 2.19 mm
frame channel 1.52 mm

That's about the floor for a small U-gouge. If you scale the design down, these go with it — at 4×6 the gaps drop to ~1.1mm and it gets fussy. Scaling up is free. If you want it easier still, open make_willow.py and raise LEAF_PITCH and FROND_PITCH; the whole tree regenerates.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - la424/wedding · GitHub
Skip to content

Repository files navigation

Sarah & Luke — wedding site

A two-page static site: an e-invitation with a dinner-choice survey, and a honeymoon registry. No build step, no dependencies, no server.

index.html the invitation + embedded survey
registry.html the honeymoon registry (edit amounts in the script at the bottom)
create-form.gs one-click Google Form builder
SETUP.md start-to-finish walkthrough - read this first
img/willow-* the linocut artwork
img/map.svg the three places, for the menu section
.nojekyll tells GitHub Pages to serve files as-is

Setting this up for the first time? Read SETUP.md instead — it's the same information as a start-to-finish walkthrough, including the no-command-line route to GitHub Pages. This file is the shorter reference.

1. Make the survey (10 minutes, once)

The site is static, so the form itself lives in Google Forms and gets embedded.

  1. Go to script.google.comNew project
  2. Delete the sample code, paste in the whole of create-form.gs
  3. Click Run. Google will ask for permission the first time — click AdvancedGo to project (unsafe). It's your own script; that warning appears for anything unpublished.
  4. Open the Execution log. It prints three links:
    • the form, for editing
    • the embed URL ← you need this one
    • the responses spreadsheet

If you'd rather not run a script, build the form by hand in Google Forms and get the embed URL from Send → < > → copy the src="…" value. The questions are all written out in create-form.gs.

2. Connect it

Open index.html, scroll to the bottom, and paste the embed URL:

constFORM_URL="https://docs.google.com/forms/d/e/1FAIpQLS…/viewform?embedded=true";

Until you do, the page shows a small "form isn't connected yet" note instead of a broken frame. If the embedded form ends up with its own scrollbar, raise min-height on .formbox iframe in the stylesheet.

3. Put it online

cd site
git init -b main
git add .
git commit -m "Wedding site"
git remote add origin https://github.com/la424/wedding.git
git push -u origin main

Create the empty wedding repo on GitHub first (public). Then in the repo: Settings → Pages → Source: Deploy from a branch → main / / (root) → Save.

It goes live at https://la424.github.io/wedding/ in about a minute.

To email it, link that URL — don't paste the HTML into an email. Gmail and Outlook strip stylesheets and iframes, so an emailed copy would arrive as unstyled text with no survey. A short note plus the link is the way.

4. Editing the registry

Everything lives in the PLAN array at the bottom of registry.html:

{name:"Dinner at The Ebrington Arms",desc:"After the walk to St James' Church.",amount:115}

Change amount, add or delete entries, reorder groups. shares: 4 splits one big item into four equal gifts. Venmo and PayPal links are generated automatically from these two lines:

constVENMO="Luke-Arnce";constPAYPAL="lukearnce";

Before you publish: open https://paypal.me/lukearnce and confirm that handle is actually claimed on your account — PayPal.Me links 404 otherwise. Venmo links work without setup, but test one on your phone; Venmo sometimes ignores a pre-filled amount depending on app version, in which case the guest just types it in.

As written, the registry totals $3,763 if every item and every share is claimed.

5. The artwork

img/ holds the screen version. Print-ready files are in the print/ folder alongside this repo (they're big, so keep them out of git if you'd rather):

FileWhat it's for
willow-color.pdfThe green-and-cream design, 5×7in — a digital keepsake or a printed card
willow-block.pdf / -600dpi.pngPure black-and-white carving guide, reads normally
willow-block-mirrored.*Print this one to transfer to the block
willow-lowcarve*.*Inverted — dark tree on light ground, far less material to remove

Which to carve.willow-block makes the willow negative space — you carve away the tree, every leaf and all the frame channels, leaving the background standing. willow-lowcarve inverts it: remove the background, leave the tree. Far less carving, different but equally good print.

Why there's a mirrored version. A relief print comes out backwards from the block, so the block has to carry a mirrored image for the print to read right. Which file you print depends on the transfer method: -mirrored if you're tracing through graphite paper or copying by eye, the normal one if you're laying a print face-down and transferring with acetone, gel medium or an iron (going face-down flips it for you). Only the lettering is affected — the tree is near enough symmetrical. Full table in SETUP.md.

Sizing. Everything is dimensioned for hand carving at 5×7in. Running make_willow.py prints the check:

leaf 1.44 x 2.62 mm
lino between leaves 1.44 mm
lino between strands 2.19 mm
frame channel 1.52 mm

That's about the floor for a small U-gouge. If you scale the design down, these go with it — at 4×6 the gaps drop to ~1.1mm and it gets fussy. Scaling up is free. If you want it easier still, open make_willow.py and raise LEAF_PITCH and FROND_PITCH; the whole tree regenerates.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - la424/wedding · GitHub
Skip to content

Repository files navigation

Sarah & Luke — wedding site

A two-page static site: an e-invitation with a dinner-choice survey, and a honeymoon registry. No build step, no dependencies, no server.

index.html the invitation + embedded survey
registry.html the honeymoon registry (edit amounts in the script at the bottom)
create-form.gs one-click Google Form builder
SETUP.md start-to-finish walkthrough - read this first
img/willow-* the linocut artwork
img/map.svg the three places, for the menu section
.nojekyll tells GitHub Pages to serve files as-is

Setting this up for the first time? Read SETUP.md instead — it's the same information as a start-to-finish walkthrough, including the no-command-line route to GitHub Pages. This file is the shorter reference.

1. Make the survey (10 minutes, once)

The site is static, so the form itself lives in Google Forms and gets embedded.

  1. Go to script.google.comNew project
  2. Delete the sample code, paste in the whole of create-form.gs
  3. Click Run. Google will ask for permission the first time — click AdvancedGo to project (unsafe). It's your own script; that warning appears for anything unpublished.
  4. Open the Execution log. It prints three links:
    • the form, for editing
    • the embed URL ← you need this one
    • the responses spreadsheet

If you'd rather not run a script, build the form by hand in Google Forms and get the embed URL from Send → < > → copy the src="…" value. The questions are all written out in create-form.gs.

2. Connect it

Open index.html, scroll to the bottom, and paste the embed URL:

constFORM_URL="https://docs.google.com/forms/d/e/1FAIpQLS…/viewform?embedded=true";

Until you do, the page shows a small "form isn't connected yet" note instead of a broken frame. If the embedded form ends up with its own scrollbar, raise min-height on .formbox iframe in the stylesheet.

3. Put it online

cd site
git init -b main
git add .
git commit -m "Wedding site"
git remote add origin https://github.com/la424/wedding.git
git push -u origin main

Create the empty wedding repo on GitHub first (public). Then in the repo: Settings → Pages → Source: Deploy from a branch → main / / (root) → Save.

It goes live at https://la424.github.io/wedding/ in about a minute.

To email it, link that URL — don't paste the HTML into an email. Gmail and Outlook strip stylesheets and iframes, so an emailed copy would arrive as unstyled text with no survey. A short note plus the link is the way.

4. Editing the registry

Everything lives in the PLAN array at the bottom of registry.html:

{name:"Dinner at The Ebrington Arms",desc:"After the walk to St James' Church.",amount:115}

Change amount, add or delete entries, reorder groups. shares: 4 splits one big item into four equal gifts. Venmo and PayPal links are generated automatically from these two lines:

constVENMO="Luke-Arnce";constPAYPAL="lukearnce";

Before you publish: open https://paypal.me/lukearnce and confirm that handle is actually claimed on your account — PayPal.Me links 404 otherwise. Venmo links work without setup, but test one on your phone; Venmo sometimes ignores a pre-filled amount depending on app version, in which case the guest just types it in.

As written, the registry totals $3,763 if every item and every share is claimed.

5. The artwork

img/ holds the screen version. Print-ready files are in the print/ folder alongside this repo (they're big, so keep them out of git if you'd rather):

FileWhat it's for
willow-color.pdfThe green-and-cream design, 5×7in — a digital keepsake or a printed card
willow-block.pdf / -600dpi.pngPure black-and-white carving guide, reads normally
willow-block-mirrored.*Print this one to transfer to the block
willow-lowcarve*.*Inverted — dark tree on light ground, far less material to remove

Which to carve.willow-block makes the willow negative space — you carve away the tree, every leaf and all the frame channels, leaving the background standing. willow-lowcarve inverts it: remove the background, leave the tree. Far less carving, different but equally good print.

Why there's a mirrored version. A relief print comes out backwards from the block, so the block has to carry a mirrored image for the print to read right. Which file you print depends on the transfer method: -mirrored if you're tracing through graphite paper or copying by eye, the normal one if you're laying a print face-down and transferring with acetone, gel medium or an iron (going face-down flips it for you). Only the lettering is affected — the tree is near enough symmetrical. Full table in SETUP.md.

Sizing. Everything is dimensioned for hand carving at 5×7in. Running make_willow.py prints the check:

leaf 1.44 x 2.62 mm
lino between leaves 1.44 mm
lino between strands 2.19 mm
frame channel 1.52 mm

That's about the floor for a small U-gouge. If you scale the design down, these go with it — at 4×6 the gaps drop to ~1.1mm and it gets fussy. Scaling up is free. If you want it easier still, open make_willow.py and raise LEAF_PITCH and FROND_PITCH; the whole tree regenerates.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - la424/wedding · GitHub
Skip to content

Repository files navigation

Sarah & Luke — wedding site

A two-page static site: an e-invitation with a dinner-choice survey, and a honeymoon registry. No build step, no dependencies, no server.

index.html the invitation + embedded survey
registry.html the honeymoon registry (edit amounts in the script at the bottom)
create-form.gs one-click Google Form builder
SETUP.md start-to-finish walkthrough - read this first
img/willow-* the linocut artwork
img/map.svg the three places, for the menu section
.nojekyll tells GitHub Pages to serve files as-is

Setting this up for the first time? Read SETUP.md instead — it's the same information as a start-to-finish walkthrough, including the no-command-line route to GitHub Pages. This file is the shorter reference.

1. Make the survey (10 minutes, once)

The site is static, so the form itself lives in Google Forms and gets embedded.

  1. Go to script.google.comNew project
  2. Delete the sample code, paste in the whole of create-form.gs
  3. Click Run. Google will ask for permission the first time — click AdvancedGo to project (unsafe). It's your own script; that warning appears for anything unpublished.
  4. Open the Execution log. It prints three links:
    • the form, for editing
    • the embed URL ← you need this one
    • the responses spreadsheet

If you'd rather not run a script, build the form by hand in Google Forms and get the embed URL from Send → < > → copy the src="…" value. The questions are all written out in create-form.gs.

2. Connect it

Open index.html, scroll to the bottom, and paste the embed URL:

constFORM_URL="https://docs.google.com/forms/d/e/1FAIpQLS…/viewform?embedded=true";

Until you do, the page shows a small "form isn't connected yet" note instead of a broken frame. If the embedded form ends up with its own scrollbar, raise min-height on .formbox iframe in the stylesheet.

3. Put it online

cd site
git init -b main
git add .
git commit -m "Wedding site"
git remote add origin https://github.com/la424/wedding.git
git push -u origin main

Create the empty wedding repo on GitHub first (public). Then in the repo: Settings → Pages → Source: Deploy from a branch → main / / (root) → Save.

It goes live at https://la424.github.io/wedding/ in about a minute.

To email it, link that URL — don't paste the HTML into an email. Gmail and Outlook strip stylesheets and iframes, so an emailed copy would arrive as unstyled text with no survey. A short note plus the link is the way.

4. Editing the registry

Everything lives in the PLAN array at the bottom of registry.html:

{name:"Dinner at The Ebrington Arms",desc:"After the walk to St James' Church.",amount:115}

Change amount, add or delete entries, reorder groups. shares: 4 splits one big item into four equal gifts. Venmo and PayPal links are generated automatically from these two lines:

constVENMO="Luke-Arnce";constPAYPAL="lukearnce";

Before you publish: open https://paypal.me/lukearnce and confirm that handle is actually claimed on your account — PayPal.Me links 404 otherwise. Venmo links work without setup, but test one on your phone; Venmo sometimes ignores a pre-filled amount depending on app version, in which case the guest just types it in.

As written, the registry totals $3,763 if every item and every share is claimed.

5. The artwork

img/ holds the screen version. Print-ready files are in the print/ folder alongside this repo (they're big, so keep them out of git if you'd rather):

FileWhat it's for
willow-color.pdfThe green-and-cream design, 5×7in — a digital keepsake or a printed card
willow-block.pdf / -600dpi.pngPure black-and-white carving guide, reads normally
willow-block-mirrored.*Print this one to transfer to the block
willow-lowcarve*.*Inverted — dark tree on light ground, far less material to remove

Which to carve.willow-block makes the willow negative space — you carve away the tree, every leaf and all the frame channels, leaving the background standing. willow-lowcarve inverts it: remove the background, leave the tree. Far less carving, different but equally good print.

Why there's a mirrored version. A relief print comes out backwards from the block, so the block has to carry a mirrored image for the print to read right. Which file you print depends on the transfer method: -mirrored if you're tracing through graphite paper or copying by eye, the normal one if you're laying a print face-down and transferring with acetone, gel medium or an iron (going face-down flips it for you). Only the lettering is affected — the tree is near enough symmetrical. Full table in SETUP.md.

Sizing. Everything is dimensioned for hand carving at 5×7in. Running make_willow.py prints the check:

leaf 1.44 x 2.62 mm
lino between leaves 1.44 mm
lino between strands 2.19 mm
frame channel 1.52 mm

That's about the floor for a small U-gouge. If you scale the design down, these go with it — at 4×6 the gaps drop to ~1.1mm and it gets fussy. Scaling up is free. If you want it easier still, open make_willow.py and raise LEAF_PITCH and FROND_PITCH; the whole tree regenerates.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - la424/wedding · GitHub
Skip to content

Repository files navigation

Sarah & Luke — wedding site

A two-page static site: an e-invitation with a dinner-choice survey, and a honeymoon registry. No build step, no dependencies, no server.

index.html the invitation + embedded survey
registry.html the honeymoon registry (edit amounts in the script at the bottom)
create-form.gs one-click Google Form builder
SETUP.md start-to-finish walkthrough - read this first
img/willow-* the linocut artwork
img/map.svg the three places, for the menu section
.nojekyll tells GitHub Pages to serve files as-is

Setting this up for the first time? Read SETUP.md instead — it's the same information as a start-to-finish walkthrough, including the no-command-line route to GitHub Pages. This file is the shorter reference.

1. Make the survey (10 minutes, once)

The site is static, so the form itself lives in Google Forms and gets embedded.

  1. Go to script.google.comNew project
  2. Delete the sample code, paste in the whole of create-form.gs
  3. Click Run. Google will ask for permission the first time — click AdvancedGo to project (unsafe). It's your own script; that warning appears for anything unpublished.
  4. Open the Execution log. It prints three links:
    • the form, for editing
    • the embed URL ← you need this one
    • the responses spreadsheet

If you'd rather not run a script, build the form by hand in Google Forms and get the embed URL from Send → < > → copy the src="…" value. The questions are all written out in create-form.gs.

2. Connect it

Open index.html, scroll to the bottom, and paste the embed URL:

constFORM_URL="https://docs.google.com/forms/d/e/1FAIpQLS…/viewform?embedded=true";

Until you do, the page shows a small "form isn't connected yet" note instead of a broken frame. If the embedded form ends up with its own scrollbar, raise min-height on .formbox iframe in the stylesheet.

3. Put it online

cd site
git init -b main
git add .
git commit -m "Wedding site"
git remote add origin https://github.com/la424/wedding.git
git push -u origin main

Create the empty wedding repo on GitHub first (public). Then in the repo: Settings → Pages → Source: Deploy from a branch → main / / (root) → Save.

It goes live at https://la424.github.io/wedding/ in about a minute.

To email it, link that URL — don't paste the HTML into an email. Gmail and Outlook strip stylesheets and iframes, so an emailed copy would arrive as unstyled text with no survey. A short note plus the link is the way.

4. Editing the registry

Everything lives in the PLAN array at the bottom of registry.html:

{name:"Dinner at The Ebrington Arms",desc:"After the walk to St James' Church.",amount:115}

Change amount, add or delete entries, reorder groups. shares: 4 splits one big item into four equal gifts. Venmo and PayPal links are generated automatically from these two lines:

constVENMO="Luke-Arnce";constPAYPAL="lukearnce";

Before you publish: open https://paypal.me/lukearnce and confirm that handle is actually claimed on your account — PayPal.Me links 404 otherwise. Venmo links work without setup, but test one on your phone; Venmo sometimes ignores a pre-filled amount depending on app version, in which case the guest just types it in.

As written, the registry totals $3,763 if every item and every share is claimed.

5. The artwork

img/ holds the screen version. Print-ready files are in the print/ folder alongside this repo (they're big, so keep them out of git if you'd rather):

FileWhat it's for
willow-color.pdfThe green-and-cream design, 5×7in — a digital keepsake or a printed card
willow-block.pdf / -600dpi.pngPure black-and-white carving guide, reads normally
willow-block-mirrored.*Print this one to transfer to the block
willow-lowcarve*.*Inverted — dark tree on light ground, far less material to remove

Which to carve.willow-block makes the willow negative space — you carve away the tree, every leaf and all the frame channels, leaving the background standing. willow-lowcarve inverts it: remove the background, leave the tree. Far less carving, different but equally good print.

Why there's a mirrored version. A relief print comes out backwards from the block, so the block has to carry a mirrored image for the print to read right. Which file you print depends on the transfer method: -mirrored if you're tracing through graphite paper or copying by eye, the normal one if you're laying a print face-down and transferring with acetone, gel medium or an iron (going face-down flips it for you). Only the lettering is affected — the tree is near enough symmetrical. Full table in SETUP.md.

Sizing. Everything is dimensioned for hand carving at 5×7in. Running make_willow.py prints the check:

leaf 1.44 x 2.62 mm
lino between leaves 1.44 mm
lino between strands 2.19 mm
frame channel 1.52 mm

That's about the floor for a small U-gouge. If you scale the design down, these go with it — at 4×6 the gaps drop to ~1.1mm and it gets fussy. Scaling up is free. If you want it easier still, open make_willow.py and raise LEAF_PITCH and FROND_PITCH; the whole tree regenerates.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages