[{"data":1,"prerenderedAt":328},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fkontribusi":32,"\u002Fdocs\u002Fkontribusi-surround":324},[4,24],{"title":5,"path":6,"stem":7,"children":8,"icon":23},"Panduan","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[9,11,15,19],{"title":10,"path":6,"stem":7,"icon":-1,"children":-1},"Mengenal Majalengka Tech",{"title":12,"path":13,"stem":14,"icon":-1,"children":-1},"Pamerkan proyek","\u002Fdocs\u002Fgetting-started\u002Fpamerkan-karya","1.docs\u002F1.getting-started\u002F2.pamerkan-karya",{"title":16,"path":17,"stem":18,"icon":-1,"children":-1},"Profil kreator","\u002Fdocs\u002Fgetting-started\u002Fprofil-kreator","1.docs\u002F1.getting-started\u002F3.profil-kreator",{"title":20,"path":21,"stem":22,"icon":-1,"children":-1},"Apresiasi dan komentar","\u002Fdocs\u002Fgetting-started\u002Fapresiasi-dan-komentar","1.docs\u002F1.getting-started\u002F4.apresiasi-dan-komentar","i-lucide-compass",{"title":25,"path":26,"stem":27,"children":28,"icon":31},"Kontribusi","\u002Fdocs\u002Fkontribusi","1.docs\u002F2.kontribusi\u002F1.index",[29],{"title":30,"path":26,"stem":27,"icon":-1,"children":-1},"Kontribusi kode","i-lucide-git-pull-request",{"id":33,"title":30,"body":34,"description":318,"extension":319,"meta":320,"navigation":321,"path":26,"seo":322,"stem":27,"__hash__":323},"docs\u002F1.docs\u002F2.kontribusi\u002F1.index.md",{"type":35,"value":36,"toc":312},"minimark",[37,49,54,130,134,203,216,220,244,247,278,282,289,305,308],[38,39,40,41,48],"p",{},"Kode situs ini terbuka dengan lisensi MIT di ",[42,43,47],"a",{"href":44,"rel":45},"https:\u002F\u002Fgithub.com\u002Fmajalengkatech\u002Fmajalengka.tech",[46],"nofollow","github.com\u002Fmajalengkatech\u002Fmajalengka.tech",". Kirim laporan bug, usulan, atau pull request lewat repositori itu.",[50,51,53],"h2",{"id":52},"teknologi-yang-dipakai","Teknologi yang dipakai",[55,56,57,70],"table",{},[58,59,60],"thead",{},[61,62,63,67],"tr",{},[64,65,66],"th",{},"Bagian",[64,68,69],{},"Teknologi",[71,72,73,82,90,98,106,114,122],"tbody",{},[61,74,75,79],{},[76,77,78],"td",{},"Framework",[76,80,81],{},"Nuxt 4",[61,83,84,87],{},[76,85,86],{},"Komponen UI",[76,88,89],{},"Nuxt UI 4 dengan Tailwind CSS 4",[61,91,92,95],{},[76,93,94],{},"Konten (panduan, changelog)",[76,96,97],{},"Nuxt Content 3",[61,99,100,103],{},[76,101,102],{},"Database",[76,104,105],{},"NuxtHub dengan SQLite, lewat Drizzle ORM",[61,107,108,111],{},[76,109,110],{},"Penyimpanan gambar",[76,112,113],{},"Cloudinary",[61,115,116,119],{},[76,117,118],{},"Login",[76,120,121],{},"Better Auth (email dan kata sandi, GitHub, Google)",[61,123,124,127],{},[76,125,126],{},"Package manager",[76,128,129],{},"Bun",[50,131,133],{"id":132},"menjalankan-di-komputermu","Menjalankan di komputermu",[135,136,137,165,180],"ol",{},[138,139,140,141],"li",{},"Clone repositori, lalu pasang dependensi:\n",[142,143,149],"pre",{"className":144,"code":145,"filename":146,"language":147,"meta":148,"style":148},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bun install\n","Terminal","bash","",[150,151,152],"code",{"__ignoreMap":148},[153,154,157,161],"span",{"class":155,"line":156},"line",1,[153,158,160],{"class":159},"sBMFI","bun",[153,162,164],{"class":163},"sfazB"," install\n",[138,166,167,168,171,172,175,176,179],{},"Salin ",[150,169,170],{},".env.example"," menjadi ",[150,173,174],{},".env",", lalu isi ",[150,177,178],{},"NUXT_BETTER_AUTH_SECRET"," dengan teks acak minimal 32 karakter. Kolom OAuth GitHub dan Google boleh kosong kalau kamu cukup masuk dengan email.",[138,181,182,183,198,199,202],{},"Jalankan server pengembangan:\n",[142,184,186],{"className":144,"code":185,"filename":146,"language":147,"meta":148,"style":148},"bun run dev\n",[150,187,188],{"__ignoreMap":148},[153,189,190,192,195],{"class":155,"line":156},[153,191,160],{"class":159},[153,193,194],{"class":163}," run",[153,196,197],{"class":163}," dev\n","\nServer pengembangan membuat database SQLite di ",[150,200,201],{},".data\u002F"," dan menjalankan migrasinya sendiri.",[204,205,206],"note",{},[38,207,208,209,211,212,215],{},"Unggah gambar bisa dicoba di komputer lokal. Kalau kolom Cloudinary di ",[150,210,174],{}," kosong, gambar tersimpan di folder ",[150,213,214],{},".data\u002Fblob",".",[50,217,219],{"id":218},"sebelum-mengirim-pull-request","Sebelum mengirim pull request",[142,221,223],{"className":144,"code":222,"filename":146,"language":147,"meta":148,"style":148},"bun run lint\nbun run typecheck\n",[150,224,225,234],{"__ignoreMap":148},[153,226,227,229,231],{"class":155,"line":156},[153,228,160],{"class":159},[153,230,194],{"class":163},[153,232,233],{"class":163}," lint\n",[153,235,237,239,241],{"class":155,"line":236},2,[153,238,160],{"class":159},[153,240,194],{"class":163},[153,242,243],{"class":163}," typecheck\n",[38,245,246],{},"Kalau perubahanmu besar, coba juga build produksi. Build membutuhkan memori lebih besar dari bawaan Node:",[142,248,250],{"className":144,"code":249,"filename":146,"language":147,"meta":148,"style":148},"NODE_OPTIONS=--max-old-space-size=8192 bun run build\n",[150,251,252],{"__ignoreMap":148},[153,253,254,258,262,265,267,270,273,275],{"class":155,"line":156},[153,255,257],{"class":256},"sTEyZ","NODE_OPTIONS",[153,259,261],{"class":260},"sMK4o","=",[153,263,264],{"class":256},"--max-old-space-size",[153,266,261],{"class":260},[153,268,269],{"class":163},"8192",[153,271,272],{"class":159}," bun",[153,274,194],{"class":163},[153,276,277],{"class":163}," build\n",[50,279,281],{"id":280},"mengubah-struktur-database","Mengubah struktur database",[38,283,284,285,288],{},"Ubah ",[150,286,287],{},"server\u002Fdb\u002Fschema.ts",", lalu buat file migrasi dengan:",[142,290,292],{"className":144,"code":291,"filename":146,"language":147,"meta":148,"style":148},"bunx nuxt-db generate\n",[150,293,294],{"__ignoreMap":148},[153,295,296,299,302],{"class":155,"line":156},[153,297,298],{"class":159},"bunx",[153,300,301],{"class":163}," nuxt-db",[153,303,304],{"class":163}," generate\n",[38,306,307],{},"Jangan menulis atau mengubah tabel lewat skrip manual. Setelah pull request digabungkan, pengelola situs menjalankan migrasinya di server produksi.",[309,310,311],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":148,"searchDepth":236,"depth":236,"links":313},[314,315,316,317],{"id":52,"depth":236,"text":53},{"id":132,"depth":236,"text":133},{"id":218,"depth":236,"text":219},{"id":280,"depth":236,"text":281},"Menjalankan majalengka.tech di komputermu dan mengirim perbaikan lewat GitHub.","md",{},{"title":30},{"title":30,"description":318},"pxMvRxuRrfsC-OnX92-Lvejmj_7Z6bLD6Emh-QRZPoM",[325,327],{"title":20,"path":21,"stem":22,"description":326,"children":-1},"Cara memberi apresiasi dan komentar, dan siapa saja yang bisa menghapus komentar.",null,1793113504036]