Keep source URLs in plans and expose an editable source field
Test and deploy / test-and-deploy (push) Successful in 1m15s
Test and deploy / test-and-deploy (push) Successful in 1m15s
This commit is contained in:
1 parent
a9358048ef
commit
1fd53091ac
5 files changed
+15
-1
No files matched your search
@@ -18,6 +18,7 @@ export function blankPlan() {
|
||||
|
||||
return {
|
||||
schemaVersion: 1,
|
||||
sourceUrl: "",
|
||||
fields,
|
||||
blendComponents: [
|
||||
{ cultivar: "", group: "", process: "", sharePct: "", fcAnchor: "" },
|
||||
|
||||
+1
-1
@@ -135,7 +135,7 @@ export function renderReportBody(plan, name = "") {
|
||||
.join("")}</tbody></table>
|
||||
<h2>After the roast</h2><div class="cards">${card("Roasted out", after.out ? after.out + " g" : "________ g")}${card("Weight loss", after.weightLossPct ? after.weightLossPct + "%" : "________ %")}${card("Rest before tasting", after.restedDays ? after.restedDays + " days" : "________ days")}</div>
|
||||
<div class="record-notes"><div><h2>Cup / brew notes</h2><div class="notes">${e([after.cupNotes, after.cupNotesLine2].filter(Boolean).join("\n"))}</div></div><div><h2>One change for the next batch</h2><div class="notes">${e(after.oneChange)}</div></div></div>
|
||||
<h2>Sources & interpretation</h2><p><a href="https://library.sweetmarias.com/first-crack-faq-what-is-first-crack-what-is-second-crack/">Sweet Maria’s: First Crack FAQ</a> — audible event and temperature context.</p><p><a href="https://www.scottrao.com/blog/2020/3/29/coffee-roasting-fundamentals">Scott Rao: Coffee Roasting Fundamentals</a> — probe readings do not transfer directly; time and DTR alone do not establish quality.</p><p>Cultivar timings, the 1:15 light-development suggestion floor and the illustrated curve are planning heuristics. Your explicit development override takes precedence.</p><div class="footer">Roast record · Grams & Fahrenheit</div></section></div>`;
|
||||
<h2>Sources & interpretation</h2>${plan.sourceUrl ? `<p style="overflow-wrap:anywhere"><b>Coffee source:</b> ${e(plan.sourceUrl)}</p>` : ""}<p><a href="https://library.sweetmarias.com/first-crack-faq-what-is-first-crack-what-is-second-crack/">Sweet Maria’s: First Crack FAQ</a> — audible event and temperature context.</p><p><a href="https://www.scottrao.com/blog/2020/3/29/coffee-roasting-fundamentals">Scott Rao: Coffee Roasting Fundamentals</a> — probe readings do not transfer directly; time and DTR alone do not establish quality.</p><p>Cultivar timings, the 1:15 light-development suggestion floor and the illustrated curve are planning heuristics. Your explicit development override takes precedence.</p><div class="footer">Roast record · Grams & Fahrenheit</div></section></div>`;
|
||||
}
|
||||
export function renderReportHtml(plan, name = "") {
|
||||
return `<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>${e(name || plan.fields?.["0.1"] || "Roast plan")}</title><style>body{margin:0}${REPORT_CSS}</style></head><body>${renderReportBody(plan, name)}</body></html>`;
|
||||
|
||||
Reference in new issue
Block a user