Ny øvelse hver dag
Skriveverksted ✍️
Interaktivt verksted + artikkelbibliotek: øvelser, prompts, maler, inspirasjon og fordypende guider. Bygg skrivevanen én dag av gangen.
Start her – 3 steg til flyt
Sett et lite mål (100–300 ord), og trykk «Loggfør» når du er ferdig. Vi husker streaken lokalt i nettleseren.
Dagens øvelse
Tema settes automatisk hver dag kl 00:00.
…
Tilfeldig prompt
Trykk på knappen for å få en idé.
Verktøykasse
Maler og sjekklister.
Mål & fremdrift
Ingen mål satt.
Artikler & guider
${it.title}
${it.meta}
`; return a; } function render(items, append=false){ if(!append) grid.innerHTML=''; items.forEach(it=>grid.appendChild(buildCard(it))); } function applyClientFilters(){ const cards = Array.from(grid.querySelectorAll('.sgah-card')); const q = (lastQuery || '').toLowerCase(); cards.forEach(c=>{ const temaOk = active.tema==='*' || c.dataset.tema.split(' ').includes(active.tema); const nivaOk = active.niva==='*' || c.dataset.niva.split(' ').includes(active.niva); const formatOk = active.format==='*' || c.dataset.format.split(' ').includes(active.format); const textOk = !q || c.textContent.toLowerCase().includes(q); c.style.display = (temaOk && nivaOk && formatOk && textOk) ? '' : 'none'; }); } async function fetchPosts(append=false){ info.textContent = append ? 'Laster inn flere…' : 'Laster …'; const body = new URLSearchParams({ action: 'sgah_fetch', security: nonce, cats: catsIds, page: page, per_page: currentPerPage(), // VIKTIG orderby: orderby, order: order, s: lastQuery, tema: active.tema, // VIKTIG: send valgt tema niva: active.niva, format: active.format }); const res = await fetch('https://www.skriveguiden.com/wp-admin/admin-ajax.php', { method:'POST', headers:{'Content-Type':'application/x-www-form-urlencoded'}, body }); const data = await res.json(); if(!data || data.success === false){ info.textContent = (data && data.data) ? data.data : 'Fant ingen.'; loadMore.hidden = true; if(!append) grid.innerHTML=''; return; } render(data.items, append); info.textContent = data.total_formatted + (lastQuery ? ` • søk: “${lastQuery}”` : ''); loadMore.hidden = (currentPerPage() === -1) ? true : !data.has_more; // skjul ved tema applyClientFilters(); } // Klikk på chips groups.forEach(g=>{ g.addEventListener('click', e=>{ if(!e.target.classList.contains('chip')) return; g.querySelectorAll('.chip').forEach(c=>c.classList.remove('is-active')); e.target.classList.add('is-active'); const grp = g.dataset.group; active[grp] = e.target.dataset.filter || '*'; page = 1; fetchPosts(false); }); }); // Søk btnSearch.addEventListener('click', ()=>{ page=1; lastQuery=input.value.trim(); fetchPosts(false); }); input.addEventListener('keydown', e=>{ if(e.key==='Enter'){ e.preventDefault(); btnSearch.click(); } }); // “Vis flere” loadMore.addEventListener('click', ()=>{ page += 1; fetchPosts(true); }); // Første last fetchPosts(false); })();Inspirasjonshjørnet
Ukas sitat
“You can always edit a bad page. You can’t edit a blank page.” – Jodi Picoult
Mikroleksjon
Show, don’t tell: byt ut “han var nervøs” med konkrete tegn: ristet på foten, klam håndflate, tørre lepper.
Mini-analyse
Første scene i The Hunger Games setter mål, konflikt og tone på få avsnitt.