[{"data":1,"prerenderedAt":11540},["ShallowReactive",2],{"articles-seo":3,"blog-posts":6520},[4,336,2882,3219,3689,3708,4875,6208,6478],{"id":5,"title":6,"body":7,"date":324,"description":325,"extension":326,"meta":327,"navigation":328,"path":329,"seo":330,"stem":331,"tags":332,"__hash__":335},"blog\u002Fblog\u002Fmigrasi-next-mdx-ke-nuxt-content.md","Migrasi dari Next MDX ke Nuxt Content",{"type":8,"value":9,"toc":314},"minimark",[10,15,24,35,39,53,111,118,122,136,144,200,204,207,265,269,286,295,299],[11,12,14],"h2",{"id":13},"a-story","A Story",[16,17,18,19,23],"p",{},"Website ini sebelumnya dibangun menggunakan Next.js dengan MDX untuk menulis artikel. Idenya menarik di awal — menulis Markdown yang bisa diselipi komponen React. Karena saat itu baru lulus sekolah dan \"",[20,21,22],"em",{},"cuman bisa React","\", fitur terbaru Next 13 soal App router itu juga lagi hype, akhirnya saya tertarik membuat personal site dengan Next - MDX.",[16,25,26,27,34],{},"Versi lama bisa dilihat di sini: ",[28,29,33],"a",{"href":30,"rel":31},"https:\u002F\u002Fgithub.com\u002Frdwansch\u002Fpersonal-site-old\u002F",[32],"nofollow","personal-site-old",".",[11,36,38],{"id":37},"masalah-dengan-next-mdx","Masalah dengan Next MDX",[16,40,41,42,47,48,52],{},"React itu unopinionated. Apalagi 4-5 tahun yang lalu saat baru belajar dan menonton tutorial di YouTube, itu tiap channel punya style berbeda. Saat itu belum ada AI dan browsing alakadarnya anak SMA, stackoverflow, forum\u002Fdiskusi, sampai DM pak ",[28,43,46],{"href":44,"rel":45},"https:\u002F\u002Fwww.instagram.com\u002Fsandhikagalih\u002F",[32],"Sandhika Galih"," buat minta bantuan. Bahkan yang paling ngeselin, masuk ke ",[49,50,51],"code",{},"Github Issue"," dan ternyata masih open.",[54,55,56,73,92],"ul",{},[57,58,59,64,65,68,69,72],"li",{},[60,61,63],"h4",{"id":62},"versi-baru-tidak-support","Versi baru, tidak support","\nMDX tidak jalan di Next.js versi terbaru 13. Saya harus downgrade ke versi yang ",[20,66,67],{},"compatible",", dan berdoa ",[20,70,71],{},"upgrade"," berikutnya tidak merusak apa-apa.",[57,74,75,79,80,83,84,87,88,91],{},[60,76,78],{"id":77},"debugging-untuk-hal-yang-sia-sia","Debugging untuk hal yang sia-sia","\nBanyak waktu habis untuk ",[20,81,82],{},"debugging error"," yang sumbernya dari ",[20,85,86],{},"package"," itu sendiri. Jika beruntung kita akan menemukan ",[49,89,90],{},"github issue"," yang masih open, atau yang kita orang pertama yang melaporkan issue ini.",[57,93,94,98,99,102,103,106,107,110],{},[60,95,97],{"id":96},"status-package","Status package","\nTidak ada ",[20,100,101],{},"fix",", tidak ada ",[20,104,105],{},"release",", hanya ",[20,108,109],{},"issue"," yang menumpuk di GitHub. Project open source memang mulia, tapi maintener memprioritaskan pekerjaan utama yang sudah pasti punya value lebih (uang) dibanding meluangkan waktu untuk open source yang kurang dana.",[16,112,113,114,117],{},"Intinya, saya menghabiskan lebih banyak waktu testing - error - debugging - fixing ",[20,115,116],{},"tooling"," daripada menulis konten.",[11,119,121],{"id":120},"kenapa-nuxt-content","Kenapa Nuxt Content",[16,123,124,125,128,129,132,133,34],{},"Titik baliknya datang dari pengalaman kerja. Di perusahaan sebelumnya, kami punya ",[20,126,127],{},"internal platform"," yang awalnya ditulis dengan Next.js lalu dimigrasi ke Nuxt. Dari situ saya merasa pengalaman ",[20,130,131],{},"development"," dengan Vue, khususnya Nuxt, jauh lebih ",[20,134,135],{},"magical",[16,137,138,143],{},[28,139,142],{"href":140,"rel":141},"https:\u002F\u002Fcontent.nuxt.com\u002F",[32],"Nuxt Content"," minim konfigurasi:",[54,145,146,161,173,190],{},[57,147,148,152,153,156,157,160],{},[60,149,151],{"id":150},"file-based-langsung-jalan","File-based, langsung jalan","\nTulis Markdown di folder ",[49,154,155],{},"content\u002F",", langsung bisa di-",[20,158,159],{},"query",". Tidak perlu konfigurasi versi yang ribet.",[57,162,163,167,168,172],{},[60,164,166],{"id":165},"markdown-yang-diperkaya-mdc","Markdown yang diperkaya (MDC)","\nBisa menyisipkan komponen Vue di dalam Markdown lewat sintaks ",[169,170,171],"strong",{},"MDC",", mirip semangat MDX tapi lebih rapi dan terintegrasi.",[57,174,175,179,180,182,183,186,187,34],{},[60,176,178],{"id":177},"query-layaknya-database","Query layaknya database","\nKonten bisa di-",[20,181,159],{}," dengan ",[20,184,185],{},"API"," yang ekspresif untuk filter, sort, dan pagination tanpa ",[20,188,189],{},"boilerplate",[57,191,192,196,197,199],{},[60,193,195],{"id":194},"maintained-dan-first-party","Maintained dan first-party","\nIni bagian terpenting. Nuxt Content dirawat sebagai bagian dari ekosistem resmi Nuxt, bukan ",[20,198,86],{}," pihak ketiga yang sewaktu-waktu bisa archived di repo nya.",[11,201,203],{"id":202},"proses-migrasi","Proses Migrasi",[16,205,206],{},"Migrasinya ternyata lebih mulus dari ekspektasi.",[54,208,209,220,240,247],{},[57,210,211,212,215,216,219],{},"File ",[49,213,214],{},".mdx"," saya konversi ke ",[49,217,218],{},".md"," biasa. Sebagian besar artikel saya memang Markdown murni tanpa banyak komponen, jadi prosesnya cepat.",[57,221,222,225,226,229,230,229,233,229,236,239],{},[20,223,224],{},"Frontmatter"," tetap dipertahankan — ",[49,227,228],{},"title",", ",[49,231,232],{},"date",[49,234,235],{},"description",[49,237,238],{},"tags",". Nuxt Content membacanya tanpa perlu setup tambahan.",[57,241,242,243,246],{},"Komponen kustom yang dulu di-",[20,244,245],{},"import"," di MDX saya ganti dengan komponen global Vue yang bisa dipakai langsung lewat MDC.",[57,248,249,252,253,256,257,260,261,264],{},[20,250,251],{},"Rendering"," ditangani komponen ",[49,254,255],{},"\u003CContentRenderer>",", jadi tidak perlu lagi memikirkan ",[20,258,259],{},"loader"," dan ",[20,262,263],{},"plugin"," Webpack\u002FBabel yang dulu sering bermasalah.",[11,266,268],{"id":267},"penutup","Penutup",[16,270,271,272,274,275,278,279,281,282,285],{},"Pelajaran yang saya ambil: pilih ",[20,273,116],{}," yang sehat ekosistemnya, bukan hanya yang paling ",[20,276,277],{},"hype"," saat itu. MDX adalah ide bagus, tapi ketergantungan pada ",[20,280,86],{}," eksperimental yang akhirnya ditinggal membuat ",[20,283,284],{},"maintenance","-nya tidak sepadan.",[16,287,288,289,292,293,34],{},"Pindah ke Nuxt Content bukan soal Vue lebih baik dari React, tapi soal ",[20,290,291],{},"developer experience"," yang membuat saya kembali fokus menulis, bukan menambal ",[20,294,116],{},[11,296,298],{"id":297},"referensi","Referensi",[16,300,301,304,305,304,310,313],{},[28,302,142],{"href":140,"rel":303},[32]," *\n",[28,306,309],{"href":307,"rel":308},"https:\u002F\u002Fcontent.nuxt.com\u002Fdocs\u002Ffiles\u002Fmarkdown#mdc-syntax",[32],"MDC Syntax",[28,311,33],{"href":30,"rel":312},[32]," *",{"title":315,"searchDepth":316,"depth":316,"links":317},"",2,[318,319,320,321,322,323],{"id":13,"depth":316,"text":14},{"id":37,"depth":316,"text":38},{"id":120,"depth":316,"text":121},{"id":202,"depth":316,"text":203},{"id":267,"depth":316,"text":268},{"id":297,"depth":316,"text":298},"2026-06-14","Cerita di balik keputusan migrasi Next MDX ke Nuxt Content setelah 3 tahun tak tersentuh","md",{},true,"\u002Fblog\u002Fmigrasi-next-mdx-ke-nuxt-content",{"title":6,"description":325},"blog\u002Fmigrasi-next-mdx-ke-nuxt-content",[333,334],"Nuxt","Next","WRaGGFSEjodEGEMzoEzD2kkfpgisKbO1oD_g3OsAep8",{"id":337,"title":338,"body":339,"date":2872,"description":2873,"extension":326,"meta":2874,"navigation":328,"path":2875,"seo":2876,"stem":2877,"tags":2878,"__hash__":2881},"blog\u002Fblog\u002Fnuxt-content.md","Nuxt Content: Cara Elegan Nuxt Mengelola Konten",{"type":8,"value":340,"toc":2856},[341,345,361,372,386,410,413,417,420,457,463,465,469,522,529,568,574,576,580,590,749,777,779,783,790,1049,1052,1186,1195,1197,1201,1212,1215,1223,1237,1240,1453,1460,1479,1481,1485,1495,1592,1716,1870,1872,1876,1879,1884,1902,1907,1927,1932,1978,1989,2120,2122,2125,2128,2360,2363,2365,2369,2378,2715,2726,2728,2732,2753,2768,2770,2774,2789,2796,2798,2800,2825,2828,2830,2849,2852],[11,342,344],{"id":343},"apa-itu-nuxt-content","Apa Itu Nuxt Content",[16,346,347,350,351,354,355,357,358,360],{},[49,348,349],{},"@nuxt\u002Fcontent"," adalah ",[20,352,353],{},"module"," resmi Nuxt yang memungkinkan kita membaca file Markdown, YAML, JSON, dan CSV langsung dari folder ",[49,356,155],{}," dan mengaksesnya seperti ",[20,359,159],{}," database.",[16,362,363,364,367,368,371],{},"Tidak perlu ",[20,365,366],{},"API endpoint"," khusus. Tidak perlu ",[20,369,370],{},"backend",". Cukup tulis file, dan Nuxt Content mengurusnya.",[16,373,374,375,378,379,382,383,34],{},"Kalau kamu pernah pakai Contentful atau Sanity.io — itu adalah ",[20,376,377],{},"headless CMS external",". Nuxt Content bisa dibilang versi ",[20,380,381],{},"local-first","-nya: kamu yang pegang file, kamu yang kontrol, dan tidak ada biaya ",[20,384,385],{},"subscription",[387,388,389],"blockquote",{},[16,390,391,394,395,398,399,229,402,405,406,409],{},[169,392,393],{},"Fun Fact:"," Nuxt Content v2 pertama kali dirilis bersamaan dengan Nuxt 3 di awal 2022. Pada v3 (yang dipakai sekarang), arsitekturnya dibangun ulang total dengan ",[20,396,397],{},"SQLite-based engine"," di bawahnya — artinya query ",[49,400,401],{},"WHERE",[49,403,404],{},"ORDER BY",", dan ",[49,407,408],{},"LIMIT"," yang kamu tulis itu benar-benar dieksekusi seperti SQL asli.",[411,412],"hr",{},[11,414,416],{"id":415},"kenapa-ini-menarik","Kenapa Ini Menarik",[16,418,419],{},"Sebelum Nuxt Content, kalau mau punya blog di site statis, kita biasanya:",[421,422,423,429,435,445],"ol",{},[57,424,425,426],{},"Baca file Markdown secara manual pakai ",[49,427,428],{},"fs.readFileSync",[57,430,431,432],{},"Parse frontmatter pakai ",[49,433,434],{},"gray-matter",[57,436,437,438,441,442],{},"Render Markdown pakai ",[49,439,440],{},"remark"," atau ",[49,443,444],{},"marked",[57,446,447,448,229,451,405,454],{},"Buat sendiri sistem ",[20,449,450],{},"routing",[20,452,453],{},"pagination",[20,455,456],{},"filtering",[16,458,459,460,462],{},"Itu banyak sekali ",[20,461,189],{}," yang tidak ada hubungannya dengan konten itu sendiri. Nuxt Content menghilangkan semua itu.",[411,464],{},[11,466,468],{"id":467},"instalasi","Instalasi",[470,471,475],"pre",{"className":472,"code":473,"language":474,"meta":315,"style":315},"language-bash shiki shiki-themes github-light github-dark","# pakai bun\nbun add @nuxt\u002Fcontent\n\n# atau npm\nnpm install @nuxt\u002Fcontent\n","bash",[49,476,477,486,499,505,511],{"__ignoreMap":315},[478,479,482],"span",{"class":480,"line":481},"line",1,[478,483,485],{"class":484},"sJ8bj","# pakai bun\n",[478,487,488,492,496],{"class":480,"line":316},[478,489,491],{"class":490},"sScJk","bun",[478,493,495],{"class":494},"sZZnC"," add",[478,497,498],{"class":494}," @nuxt\u002Fcontent\n",[478,500,502],{"class":480,"line":501},3,[478,503,504],{"emptyLinePlaceholder":328},"\n",[478,506,508],{"class":480,"line":507},4,[478,509,510],{"class":484},"# atau npm\n",[478,512,514,517,520],{"class":480,"line":513},5,[478,515,516],{"class":490},"npm",[478,518,519],{"class":494}," install",[478,521,498],{"class":494},[16,523,524,525,528],{},"Daftarkan di ",[49,526,527],{},"nuxt.config.ts",":",[470,530,534],{"className":531,"code":532,"language":533,"meta":315,"style":315},"language-ts shiki shiki-themes github-light github-dark","export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fcontent'],\n})\n","ts",[49,535,536,552,563],{"__ignoreMap":315},[478,537,538,542,545,548],{"class":480,"line":481},[478,539,541],{"class":540},"szBVR","export",[478,543,544],{"class":540}," default",[478,546,547],{"class":490}," defineNuxtConfig",[478,549,551],{"class":550},"sVt8B","({\n",[478,553,554,557,560],{"class":480,"line":316},[478,555,556],{"class":550},"  modules: [",[478,558,559],{"class":494},"'@nuxt\u002Fcontent'",[478,561,562],{"class":550},"],\n",[478,564,565],{"class":480,"line":501},[478,566,567],{"class":550},"})\n",[16,569,570,571,573],{},"Buat folder ",[49,572,155],{}," di root project, dan mulai tulis. Selesai.",[411,575],{},[11,577,579],{"id":578},"mendefinisikan-koleksi","Mendefinisikan Koleksi",[16,581,582,583,586,587,528],{},"Di Nuxt Content v3, kita mendefinisikan ",[20,584,585],{},"schema"," koleksi di ",[49,588,589],{},"content.config.ts",[470,591,593],{"className":531,"code":592,"language":533,"meta":315,"style":315},"import { defineContentConfig, defineCollection, z } from '@nuxt\u002Fcontent'\n\nexport default defineContentConfig({\n  collections: {\n    blog: defineCollection({\n      type: 'page',\n      source: 'blog\u002F*.md',\n      schema: z.object({\n        title: z.string(),\n        date: z.string(),\n        description: z.string(),\n        tags: z.array(z.string()).optional(),\n      }),\n    }),\n  },\n})\n",[49,594,595,608,612,623,628,638,650,661,672,684,694,704,726,732,738,744],{"__ignoreMap":315},[478,596,597,599,602,605],{"class":480,"line":481},[478,598,245],{"class":540},[478,600,601],{"class":550}," { defineContentConfig, defineCollection, z } ",[478,603,604],{"class":540},"from",[478,606,607],{"class":494}," '@nuxt\u002Fcontent'\n",[478,609,610],{"class":480,"line":316},[478,611,504],{"emptyLinePlaceholder":328},[478,613,614,616,618,621],{"class":480,"line":501},[478,615,541],{"class":540},[478,617,544],{"class":540},[478,619,620],{"class":490}," defineContentConfig",[478,622,551],{"class":550},[478,624,625],{"class":480,"line":507},[478,626,627],{"class":550},"  collections: {\n",[478,629,630,633,636],{"class":480,"line":513},[478,631,632],{"class":550},"    blog: ",[478,634,635],{"class":490},"defineCollection",[478,637,551],{"class":550},[478,639,641,644,647],{"class":480,"line":640},6,[478,642,643],{"class":550},"      type: ",[478,645,646],{"class":494},"'page'",[478,648,649],{"class":550},",\n",[478,651,653,656,659],{"class":480,"line":652},7,[478,654,655],{"class":550},"      source: ",[478,657,658],{"class":494},"'blog\u002F*.md'",[478,660,649],{"class":550},[478,662,664,667,670],{"class":480,"line":663},8,[478,665,666],{"class":550},"      schema: z.",[478,668,669],{"class":490},"object",[478,671,551],{"class":550},[478,673,675,678,681],{"class":480,"line":674},9,[478,676,677],{"class":550},"        title: z.",[478,679,680],{"class":490},"string",[478,682,683],{"class":550},"(),\n",[478,685,687,690,692],{"class":480,"line":686},10,[478,688,689],{"class":550},"        date: z.",[478,691,680],{"class":490},[478,693,683],{"class":550},[478,695,697,700,702],{"class":480,"line":696},11,[478,698,699],{"class":550},"        description: z.",[478,701,680],{"class":490},[478,703,683],{"class":550},[478,705,707,710,713,716,718,721,724],{"class":480,"line":706},12,[478,708,709],{"class":550},"        tags: z.",[478,711,712],{"class":490},"array",[478,714,715],{"class":550},"(z.",[478,717,680],{"class":490},[478,719,720],{"class":550},"()).",[478,722,723],{"class":490},"optional",[478,725,683],{"class":550},[478,727,729],{"class":480,"line":728},13,[478,730,731],{"class":550},"      }),\n",[478,733,735],{"class":480,"line":734},14,[478,736,737],{"class":550},"    }),\n",[478,739,741],{"class":480,"line":740},15,[478,742,743],{"class":550},"  },\n",[478,745,747],{"class":480,"line":746},16,[478,748,567],{"class":550},[16,750,751,754,755,758,759,229,762,765,766,769,770,773,774,34],{},[49,752,753],{},"type: 'page'"," artinya konten ini bisa di-",[20,756,757],{},"render"," sebagai halaman — punya ",[20,760,761],{},"body",[20,763,764],{},"toc"," (daftar isi otomatis), dan ",[20,767,768],{},"excerpt",". Sementara ",[49,771,772],{},"type: 'data'"," cocok untuk file JSON\u002FYAML yang berisi data tanpa ",[20,775,776],{},"rendered body",[411,778],{},[11,780,782],{"id":781},"use-case-1-blog-pribadi","Use Case 1 — Blog Pribadi",[16,784,785,786,789],{},"Paling klasik. Kamu tulis artikel di ",[49,787,788],{},"content\u002Fblog\u002Fnama-artikel.md",", lalu query di halaman daftar artikel:",[470,791,795],{"className":792,"code":793,"language":794,"meta":315,"style":315},"language-vue shiki shiki-themes github-light github-dark","\u003Cscript setup lang=\"ts\">\nconst { data: posts } = await useAsyncData('posts', () =>\n  queryCollection('blog')\n    .where('draft', '!=', true)\n    .order('date', 'DESC')\n    .all()\n)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Carticle v-for=\"post in posts\" :key=\"post.stem\">\n    \u003CNuxtLink :to=\"post.path\">{{ post.title }}\u003C\u002FNuxtLink>\n    \u003Cp>{{ post.description }}\u003C\u002Fp>\n    \u003Ctime>{{ post.date }}\u003C\u002Ftime>\n  \u003C\u002Farticle>\n\u003C\u002Ftemplate>\n","vue",[49,796,797,821,863,876,901,920,930,934,943,947,956,982,1005,1018,1032,1041],{"__ignoreMap":315},[478,798,799,802,806,809,812,815,818],{"class":480,"line":481},[478,800,801],{"class":550},"\u003C",[478,803,805],{"class":804},"s9eBZ","script",[478,807,808],{"class":490}," setup",[478,810,811],{"class":490}," lang",[478,813,814],{"class":550},"=",[478,816,817],{"class":494},"\"ts\"",[478,819,820],{"class":550},">\n",[478,822,823,826,829,833,836,840,843,845,848,851,854,857,860],{"class":480,"line":316},[478,824,825],{"class":540},"const",[478,827,828],{"class":550}," { ",[478,830,832],{"class":831},"s4XuR","data",[478,834,835],{"class":550},": ",[478,837,839],{"class":838},"sj4cs","posts",[478,841,842],{"class":550}," } ",[478,844,814],{"class":540},[478,846,847],{"class":540}," await",[478,849,850],{"class":490}," useAsyncData",[478,852,853],{"class":550},"(",[478,855,856],{"class":494},"'posts'",[478,858,859],{"class":550},", () ",[478,861,862],{"class":540},"=>\n",[478,864,865,868,870,873],{"class":480,"line":501},[478,866,867],{"class":490},"  queryCollection",[478,869,853],{"class":550},[478,871,872],{"class":494},"'blog'",[478,874,875],{"class":550},")\n",[478,877,878,881,884,886,889,891,894,896,899],{"class":480,"line":507},[478,879,880],{"class":550},"    .",[478,882,883],{"class":490},"where",[478,885,853],{"class":550},[478,887,888],{"class":494},"'draft'",[478,890,229],{"class":550},[478,892,893],{"class":494},"'!='",[478,895,229],{"class":550},[478,897,898],{"class":838},"true",[478,900,875],{"class":550},[478,902,903,905,908,910,913,915,918],{"class":480,"line":513},[478,904,880],{"class":550},[478,906,907],{"class":490},"order",[478,909,853],{"class":550},[478,911,912],{"class":494},"'date'",[478,914,229],{"class":550},[478,916,917],{"class":494},"'DESC'",[478,919,875],{"class":550},[478,921,922,924,927],{"class":480,"line":640},[478,923,880],{"class":550},[478,925,926],{"class":490},"all",[478,928,929],{"class":550},"()\n",[478,931,932],{"class":480,"line":652},[478,933,875],{"class":550},[478,935,936,939,941],{"class":480,"line":663},[478,937,938],{"class":550},"\u003C\u002F",[478,940,805],{"class":804},[478,942,820],{"class":550},[478,944,945],{"class":480,"line":674},[478,946,504],{"emptyLinePlaceholder":328},[478,948,949,951,954],{"class":480,"line":686},[478,950,801],{"class":550},[478,952,953],{"class":804},"template",[478,955,820],{"class":550},[478,957,958,961,964,967,969,972,975,977,980],{"class":480,"line":696},[478,959,960],{"class":550},"  \u003C",[478,962,963],{"class":804},"article",[478,965,966],{"class":490}," v-for",[478,968,814],{"class":550},[478,970,971],{"class":494},"\"post in posts\"",[478,973,974],{"class":490}," :key",[478,976,814],{"class":550},[478,978,979],{"class":494},"\"post.stem\"",[478,981,820],{"class":550},[478,983,984,987,990,993,995,998,1001,1003],{"class":480,"line":706},[478,985,986],{"class":550},"    \u003C",[478,988,989],{"class":804},"NuxtLink",[478,991,992],{"class":490}," :to",[478,994,814],{"class":550},[478,996,997],{"class":494},"\"post.path\"",[478,999,1000],{"class":550},">{{ post.title }}\u003C\u002F",[478,1002,989],{"class":804},[478,1004,820],{"class":550},[478,1006,1007,1009,1011,1014,1016],{"class":480,"line":728},[478,1008,986],{"class":550},[478,1010,16],{"class":804},[478,1012,1013],{"class":550},">{{ post.description }}\u003C\u002F",[478,1015,16],{"class":804},[478,1017,820],{"class":550},[478,1019,1020,1022,1025,1028,1030],{"class":480,"line":734},[478,1021,986],{"class":550},[478,1023,1024],{"class":804},"time",[478,1026,1027],{"class":550},">{{ post.date }}\u003C\u002F",[478,1029,1024],{"class":804},[478,1031,820],{"class":550},[478,1033,1034,1037,1039],{"class":480,"line":740},[478,1035,1036],{"class":550},"  \u003C\u002F",[478,1038,963],{"class":804},[478,1040,820],{"class":550},[478,1042,1043,1045,1047],{"class":480,"line":746},[478,1044,938],{"class":550},[478,1046,953],{"class":804},[478,1048,820],{"class":550},[16,1050,1051],{},"Dan untuk halaman detail artikel:",[470,1053,1055],{"className":792,"code":1054,"language":794,"meta":315,"style":315},"\u003Cscript setup lang=\"ts\">\nconst route = useRoute()\nconst { data: post } = await useAsyncData(route.path, () =>\n  queryCollection('blog').path(route.path).first()\n)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CContentRenderer :value=\"post\" \u002F>\n\u003C\u002Ftemplate>\n",[49,1056,1057,1073,1088,1114,1136,1140,1148,1152,1160,1178],{"__ignoreMap":315},[478,1058,1059,1061,1063,1065,1067,1069,1071],{"class":480,"line":481},[478,1060,801],{"class":550},[478,1062,805],{"class":804},[478,1064,808],{"class":490},[478,1066,811],{"class":490},[478,1068,814],{"class":550},[478,1070,817],{"class":494},[478,1072,820],{"class":550},[478,1074,1075,1077,1080,1083,1086],{"class":480,"line":316},[478,1076,825],{"class":540},[478,1078,1079],{"class":838}," route",[478,1081,1082],{"class":540}," =",[478,1084,1085],{"class":490}," useRoute",[478,1087,929],{"class":550},[478,1089,1090,1092,1094,1096,1098,1101,1103,1105,1107,1109,1112],{"class":480,"line":501},[478,1091,825],{"class":540},[478,1093,828],{"class":550},[478,1095,832],{"class":831},[478,1097,835],{"class":550},[478,1099,1100],{"class":838},"post",[478,1102,842],{"class":550},[478,1104,814],{"class":540},[478,1106,847],{"class":540},[478,1108,850],{"class":490},[478,1110,1111],{"class":550},"(route.path, () ",[478,1113,862],{"class":540},[478,1115,1116,1118,1120,1122,1125,1128,1131,1134],{"class":480,"line":507},[478,1117,867],{"class":490},[478,1119,853],{"class":550},[478,1121,872],{"class":494},[478,1123,1124],{"class":550},").",[478,1126,1127],{"class":490},"path",[478,1129,1130],{"class":550},"(route.path).",[478,1132,1133],{"class":490},"first",[478,1135,929],{"class":550},[478,1137,1138],{"class":480,"line":513},[478,1139,875],{"class":550},[478,1141,1142,1144,1146],{"class":480,"line":640},[478,1143,938],{"class":550},[478,1145,805],{"class":804},[478,1147,820],{"class":550},[478,1149,1150],{"class":480,"line":652},[478,1151,504],{"emptyLinePlaceholder":328},[478,1153,1154,1156,1158],{"class":480,"line":663},[478,1155,801],{"class":550},[478,1157,953],{"class":804},[478,1159,820],{"class":550},[478,1161,1162,1164,1167,1170,1172,1175],{"class":480,"line":674},[478,1163,960],{"class":550},[478,1165,1166],{"class":804},"ContentRenderer",[478,1168,1169],{"class":490}," :value",[478,1171,814],{"class":550},[478,1173,1174],{"class":494},"\"post\"",[478,1176,1177],{"class":550}," \u002F>\n",[478,1179,1180,1182,1184],{"class":480,"line":686},[478,1181,938],{"class":550},[478,1183,953],{"class":804},[478,1185,820],{"class":550},[16,1187,1188,1190,1191,1194],{},[49,1189,255],{}," merender Markdown menjadi HTML, lengkap dengan ",[20,1192,1193],{},"syntax highlighting"," dan semua komponen MDC yang kita definisikan.",[411,1196],{},[11,1198,1200],{"id":1199},"use-case-2-dokumentasi","Use Case 2 — Dokumentasi",[16,1202,1203,1204,1207,1208,1211],{},"Nuxt Content sangat populer untuk ",[20,1205,1206],{},"documentation site",". Banyak ",[20,1209,1210],{},"library"," open source yang memakai ini, termasuk dokumentasi Nuxt sendiri yang dibangun di atas Nuxt Content.",[16,1213,1214],{},"Struktur folder dokumentasi biasanya:",[470,1216,1221],{"className":1217,"code":1219,"language":1220},[1218],"language-text","content\u002F\n├── docs\u002F\n│   ├── 1.getting-started\u002F\n│   │   ├── 1.introduction.md\n│   │   └── 2.installation.md\n│   ├── 2.configuration\u002F\n│   │   └── index.md\n│   └── 3.api-reference\u002F\n│       └── index.md\n","text",[49,1222,1219],{"__ignoreMap":315},[16,1224,1225,1226,1229,1230,1233,1234,34],{},"Nuxt Content menghormati ",[20,1227,1228],{},"prefix"," angka di nama file\u002Ffolder untuk menentukan urutan, tapi tidak memasukkannya ke URL. Jadi ",[49,1231,1232],{},"1.getting-started\u002F1.introduction.md"," akan diakses di ",[49,1235,1236],{},"\u002Fdocs\u002Fgetting-started\u002Fintroduction",[16,1238,1239],{},"Untuk navigasi otomatis:",[470,1241,1243],{"className":792,"code":1242,"language":794,"meta":315,"style":315},"\u003Cscript setup lang=\"ts\">\nconst navigation = await queryCollectionNavigation('docs')\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cnav>\n    \u003Ctemplate v-for=\"item in navigation\">\n      \u003CNuxtLink :to=\"item.path\">{{ item.title }}\u003C\u002FNuxtLink>\n      \u003Cul v-if=\"item.children\">\n        \u003Cli v-for=\"child in item.children\">\n          \u003CNuxtLink :to=\"child.path\">{{ child.title }}\u003C\u002FNuxtLink>\n        \u003C\u002Fli>\n      \u003C\u002Ful>\n    \u003C\u002Ftemplate>\n  \u003C\u002Fnav>\n\u003C\u002Ftemplate>\n",[49,1244,1245,1261,1282,1290,1294,1302,1311,1336,1357,1373,1389,1410,1419,1428,1437,1445],{"__ignoreMap":315},[478,1246,1247,1249,1251,1253,1255,1257,1259],{"class":480,"line":481},[478,1248,801],{"class":550},[478,1250,805],{"class":804},[478,1252,808],{"class":490},[478,1254,811],{"class":490},[478,1256,814],{"class":550},[478,1258,817],{"class":494},[478,1260,820],{"class":550},[478,1262,1263,1265,1268,1270,1272,1275,1277,1280],{"class":480,"line":316},[478,1264,825],{"class":540},[478,1266,1267],{"class":838}," navigation",[478,1269,1082],{"class":540},[478,1271,847],{"class":540},[478,1273,1274],{"class":490}," queryCollectionNavigation",[478,1276,853],{"class":550},[478,1278,1279],{"class":494},"'docs'",[478,1281,875],{"class":550},[478,1283,1284,1286,1288],{"class":480,"line":501},[478,1285,938],{"class":550},[478,1287,805],{"class":804},[478,1289,820],{"class":550},[478,1291,1292],{"class":480,"line":507},[478,1293,504],{"emptyLinePlaceholder":328},[478,1295,1296,1298,1300],{"class":480,"line":513},[478,1297,801],{"class":550},[478,1299,953],{"class":804},[478,1301,820],{"class":550},[478,1303,1304,1306,1309],{"class":480,"line":640},[478,1305,960],{"class":550},[478,1307,1308],{"class":804},"nav",[478,1310,820],{"class":550},[478,1312,1313,1315,1317,1319,1321,1324,1327,1330,1332,1334],{"class":480,"line":652},[478,1314,986],{"class":550},[478,1316,953],{"class":804},[478,1318,966],{"class":540},[478,1320,814],{"class":550},[478,1322,1323],{"class":494},"\"",[478,1325,1326],{"class":550},"item ",[478,1328,1329],{"class":540},"in",[478,1331,1267],{"class":550},[478,1333,1323],{"class":494},[478,1335,820],{"class":550},[478,1337,1338,1341,1343,1345,1347,1350,1353,1355],{"class":480,"line":663},[478,1339,1340],{"class":550},"      \u003C",[478,1342,989],{"class":804},[478,1344,992],{"class":490},[478,1346,814],{"class":550},[478,1348,1349],{"class":494},"\"item.path\"",[478,1351,1352],{"class":550},">{{ item.title }}\u003C\u002F",[478,1354,989],{"class":804},[478,1356,820],{"class":550},[478,1358,1359,1361,1363,1366,1368,1371],{"class":480,"line":674},[478,1360,1340],{"class":550},[478,1362,54],{"class":804},[478,1364,1365],{"class":490}," v-if",[478,1367,814],{"class":550},[478,1369,1370],{"class":494},"\"item.children\"",[478,1372,820],{"class":550},[478,1374,1375,1378,1380,1382,1384,1387],{"class":480,"line":686},[478,1376,1377],{"class":550},"        \u003C",[478,1379,57],{"class":804},[478,1381,966],{"class":490},[478,1383,814],{"class":550},[478,1385,1386],{"class":494},"\"child in item.children\"",[478,1388,820],{"class":550},[478,1390,1391,1394,1396,1398,1400,1403,1406,1408],{"class":480,"line":696},[478,1392,1393],{"class":550},"          \u003C",[478,1395,989],{"class":804},[478,1397,992],{"class":490},[478,1399,814],{"class":550},[478,1401,1402],{"class":494},"\"child.path\"",[478,1404,1405],{"class":550},">{{ child.title }}\u003C\u002F",[478,1407,989],{"class":804},[478,1409,820],{"class":550},[478,1411,1412,1415,1417],{"class":480,"line":706},[478,1413,1414],{"class":550},"        \u003C\u002F",[478,1416,57],{"class":804},[478,1418,820],{"class":550},[478,1420,1421,1424,1426],{"class":480,"line":728},[478,1422,1423],{"class":550},"      \u003C\u002F",[478,1425,54],{"class":804},[478,1427,820],{"class":550},[478,1429,1430,1433,1435],{"class":480,"line":734},[478,1431,1432],{"class":550},"    \u003C\u002F",[478,1434,953],{"class":804},[478,1436,820],{"class":550},[478,1438,1439,1441,1443],{"class":480,"line":740},[478,1440,1036],{"class":550},[478,1442,1308],{"class":804},[478,1444,820],{"class":550},[478,1446,1447,1449,1451],{"class":480,"line":746},[478,1448,938],{"class":550},[478,1450,953],{"class":804},[478,1452,820],{"class":550},[16,1454,1455,1456,1459],{},"Navigasi hierarki dibangun otomatis dari struktur folder. Tidak perlu tulis ",[20,1457,1458],{},"config"," navigasi secara manual.",[387,1461,1462],{},[16,1463,1464,1466,1467,1470,1471,1474,1475,1478],{},[169,1465,393],{}," ",[49,1468,1469],{},"queryCollectionNavigation"," diperkenalkan di v3 dan tidak ada di v2. Di v2 kita harus pakai ",[49,1472,1473],{},"fetchContentNavigation()"," yang cara kerjanya berbeda. Ini salah satu ",[20,1476,1477],{},"breaking change"," yang paling sering bikin bingung saat upgrade.",[411,1480],{},[11,1482,1484],{"id":1483},"use-case-3-portfolio-dengan-data-json","Use Case 3 — Portfolio dengan Data JSON",[16,1486,1487,1488,1491,1492,1494],{},"Nuxt Content tidak hanya untuk Markdown. File JSON bisa dijadikan ",[20,1489,1490],{},"data collection"," yang di-",[20,1493,159],{}," juga. Cocok untuk data yang lebih terstruktur seperti daftar project atau pengalaman kerja.",[470,1496,1500],{"className":1497,"code":1498,"language":1499,"meta":315,"style":315},"language-json shiki shiki-themes github-light github-dark","\u002F\u002F content\u002Fprojects.json\n{\n  \"items\": [\n    {\n      \"title\": \"Personal Site\",\n      \"description\": \"Blog dan portfolio pribadi dibangun dengan Nuxt 3\",\n      \"tags\": [\"Nuxt\", \"Tailwind\"],\n      \"link\": \"https:\u002F\u002Fgithub.com\u002Frdwansch\u002Fpersonal-site\"\n    }\n  ]\n}\n","json",[49,1501,1502,1507,1512,1520,1525,1537,1549,1567,1577,1582,1587],{"__ignoreMap":315},[478,1503,1504],{"class":480,"line":481},[478,1505,1506],{"class":484},"\u002F\u002F content\u002Fprojects.json\n",[478,1508,1509],{"class":480,"line":316},[478,1510,1511],{"class":550},"{\n",[478,1513,1514,1517],{"class":480,"line":501},[478,1515,1516],{"class":838},"  \"items\"",[478,1518,1519],{"class":550},": [\n",[478,1521,1522],{"class":480,"line":507},[478,1523,1524],{"class":550},"    {\n",[478,1526,1527,1530,1532,1535],{"class":480,"line":513},[478,1528,1529],{"class":838},"      \"title\"",[478,1531,835],{"class":550},[478,1533,1534],{"class":494},"\"Personal Site\"",[478,1536,649],{"class":550},[478,1538,1539,1542,1544,1547],{"class":480,"line":640},[478,1540,1541],{"class":838},"      \"description\"",[478,1543,835],{"class":550},[478,1545,1546],{"class":494},"\"Blog dan portfolio pribadi dibangun dengan Nuxt 3\"",[478,1548,649],{"class":550},[478,1550,1551,1554,1557,1560,1562,1565],{"class":480,"line":652},[478,1552,1553],{"class":838},"      \"tags\"",[478,1555,1556],{"class":550},": [",[478,1558,1559],{"class":494},"\"Nuxt\"",[478,1561,229],{"class":550},[478,1563,1564],{"class":494},"\"Tailwind\"",[478,1566,562],{"class":550},[478,1568,1569,1572,1574],{"class":480,"line":663},[478,1570,1571],{"class":838},"      \"link\"",[478,1573,835],{"class":550},[478,1575,1576],{"class":494},"\"https:\u002F\u002Fgithub.com\u002Frdwansch\u002Fpersonal-site\"\n",[478,1578,1579],{"class":480,"line":674},[478,1580,1581],{"class":550},"    }\n",[478,1583,1584],{"class":480,"line":686},[478,1585,1586],{"class":550},"  ]\n",[478,1588,1589],{"class":480,"line":696},[478,1590,1591],{"class":550},"}\n",[470,1593,1595],{"className":531,"code":1594,"language":533,"meta":315,"style":315},"\u002F\u002F content.config.ts\nprojects: defineCollection({\n  type: 'data',\n  source: 'projects.json',\n  schema: z.object({\n    items: z.array(z.object({\n      title: z.string(),\n      description: z.string(),\n      tags: z.array(z.string()),\n      link: z.string().nullable(),\n    })),\n  }),\n})\n",[49,1596,1597,1602,1613,1623,1633,1642,1655,1664,1673,1687,1702,1707,1712],{"__ignoreMap":315},[478,1598,1599],{"class":480,"line":481},[478,1600,1601],{"class":484},"\u002F\u002F content.config.ts\n",[478,1603,1604,1607,1609,1611],{"class":480,"line":316},[478,1605,1606],{"class":490},"projects",[478,1608,835],{"class":550},[478,1610,635],{"class":490},[478,1612,551],{"class":550},[478,1614,1615,1618,1621],{"class":480,"line":501},[478,1616,1617],{"class":550},"  type: ",[478,1619,1620],{"class":494},"'data'",[478,1622,649],{"class":550},[478,1624,1625,1628,1631],{"class":480,"line":507},[478,1626,1627],{"class":550},"  source: ",[478,1629,1630],{"class":494},"'projects.json'",[478,1632,649],{"class":550},[478,1634,1635,1638,1640],{"class":480,"line":513},[478,1636,1637],{"class":550},"  schema: z.",[478,1639,669],{"class":490},[478,1641,551],{"class":550},[478,1643,1644,1647,1649,1651,1653],{"class":480,"line":640},[478,1645,1646],{"class":550},"    items: z.",[478,1648,712],{"class":490},[478,1650,715],{"class":550},[478,1652,669],{"class":490},[478,1654,551],{"class":550},[478,1656,1657,1660,1662],{"class":480,"line":652},[478,1658,1659],{"class":550},"      title: z.",[478,1661,680],{"class":490},[478,1663,683],{"class":550},[478,1665,1666,1669,1671],{"class":480,"line":663},[478,1667,1668],{"class":550},"      description: z.",[478,1670,680],{"class":490},[478,1672,683],{"class":550},[478,1674,1675,1678,1680,1682,1684],{"class":480,"line":674},[478,1676,1677],{"class":550},"      tags: z.",[478,1679,712],{"class":490},[478,1681,715],{"class":550},[478,1683,680],{"class":490},[478,1685,1686],{"class":550},"()),\n",[478,1688,1689,1692,1694,1697,1700],{"class":480,"line":686},[478,1690,1691],{"class":550},"      link: z.",[478,1693,680],{"class":490},[478,1695,1696],{"class":550},"().",[478,1698,1699],{"class":490},"nullable",[478,1701,683],{"class":550},[478,1703,1704],{"class":480,"line":696},[478,1705,1706],{"class":550},"    })),\n",[478,1708,1709],{"class":480,"line":706},[478,1710,1711],{"class":550},"  }),\n",[478,1713,1714],{"class":480,"line":728},[478,1715,567],{"class":550},[470,1717,1719],{"className":792,"code":1718,"language":794,"meta":315,"style":315},"\u003Cscript setup lang=\"ts\">\nconst { data: projects } = await useAsyncData('projects', () =>\n  queryCollection('projects').first()\n)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv v-for=\"project in projects?.items\" :key=\"project.title\">\n    \u003Ch3>{{ project.title }}\u003C\u002Fh3>\n    \u003Cp>{{ project.description }}\u003C\u002Fp>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[49,1720,1721,1737,1766,1780,1784,1792,1796,1804,1827,1841,1854,1862],{"__ignoreMap":315},[478,1722,1723,1725,1727,1729,1731,1733,1735],{"class":480,"line":481},[478,1724,801],{"class":550},[478,1726,805],{"class":804},[478,1728,808],{"class":490},[478,1730,811],{"class":490},[478,1732,814],{"class":550},[478,1734,817],{"class":494},[478,1736,820],{"class":550},[478,1738,1739,1741,1743,1745,1747,1749,1751,1753,1755,1757,1759,1762,1764],{"class":480,"line":316},[478,1740,825],{"class":540},[478,1742,828],{"class":550},[478,1744,832],{"class":831},[478,1746,835],{"class":550},[478,1748,1606],{"class":838},[478,1750,842],{"class":550},[478,1752,814],{"class":540},[478,1754,847],{"class":540},[478,1756,850],{"class":490},[478,1758,853],{"class":550},[478,1760,1761],{"class":494},"'projects'",[478,1763,859],{"class":550},[478,1765,862],{"class":540},[478,1767,1768,1770,1772,1774,1776,1778],{"class":480,"line":501},[478,1769,867],{"class":490},[478,1771,853],{"class":550},[478,1773,1761],{"class":494},[478,1775,1124],{"class":550},[478,1777,1133],{"class":490},[478,1779,929],{"class":550},[478,1781,1782],{"class":480,"line":507},[478,1783,875],{"class":550},[478,1785,1786,1788,1790],{"class":480,"line":513},[478,1787,938],{"class":550},[478,1789,805],{"class":804},[478,1791,820],{"class":550},[478,1793,1794],{"class":480,"line":640},[478,1795,504],{"emptyLinePlaceholder":328},[478,1797,1798,1800,1802],{"class":480,"line":652},[478,1799,801],{"class":550},[478,1801,953],{"class":804},[478,1803,820],{"class":550},[478,1805,1806,1808,1811,1813,1815,1818,1820,1822,1825],{"class":480,"line":663},[478,1807,960],{"class":550},[478,1809,1810],{"class":804},"div",[478,1812,966],{"class":490},[478,1814,814],{"class":550},[478,1816,1817],{"class":494},"\"project in projects?.items\"",[478,1819,974],{"class":490},[478,1821,814],{"class":550},[478,1823,1824],{"class":494},"\"project.title\"",[478,1826,820],{"class":550},[478,1828,1829,1831,1834,1837,1839],{"class":480,"line":674},[478,1830,986],{"class":550},[478,1832,1833],{"class":804},"h3",[478,1835,1836],{"class":550},">{{ project.title }}\u003C\u002F",[478,1838,1833],{"class":804},[478,1840,820],{"class":550},[478,1842,1843,1845,1847,1850,1852],{"class":480,"line":686},[478,1844,986],{"class":550},[478,1846,16],{"class":804},[478,1848,1849],{"class":550},">{{ project.description }}\u003C\u002F",[478,1851,16],{"class":804},[478,1853,820],{"class":550},[478,1855,1856,1858,1860],{"class":480,"line":696},[478,1857,1036],{"class":550},[478,1859,1810],{"class":804},[478,1861,820],{"class":550},[478,1863,1864,1866,1868],{"class":480,"line":706},[478,1865,938],{"class":550},[478,1867,953],{"class":804},[478,1869,820],{"class":550},[411,1871],{},[11,1873,1875],{"id":1874},"mdc-markdown-component-syntax","MDC — Markdown Component Syntax",[16,1877,1878],{},"Ini fitur yang paling bikin saya tertarik: kita bisa menyisipkan komponen Vue langsung di dalam file Markdown.",[16,1880,1881],{},[169,1882,1883],{},"Komponen inline:",[470,1885,1888],{"className":1886,"code":1887,"language":326,"meta":315,"style":315},"language-md shiki shiki-themes github-light github-dark",":badge[NEW]{type=\"success\"}\n",[49,1889,1890],{"__ignoreMap":315},[478,1891,1892,1895,1899],{"class":480,"line":481},[478,1893,1894],{"class":550},":badge[",[478,1896,1898],{"class":1897},"svl0z","NEW",[478,1900,1901],{"class":550},"]{type=\"success\"}\n",[16,1903,1904],{},[169,1905,1906],{},"Komponen block:",[470,1908,1910],{"className":1886,"code":1909,"language":326,"meta":315,"style":315},"::callout{type=\"warning\"}\nHati-hati, ini adalah peringatan penting!\n::\n",[49,1911,1912,1917,1922],{"__ignoreMap":315},[478,1913,1914],{"class":480,"line":481},[478,1915,1916],{"class":550},"::callout{type=\"warning\"}\n",[478,1918,1919],{"class":480,"line":316},[478,1920,1921],{"class":550},"Hati-hati, ini adalah peringatan penting!\n",[478,1923,1924],{"class":480,"line":501},[478,1925,1926],{"class":550},"::\n",[16,1928,1929],{},[169,1930,1931],{},"Komponen dengan slot:",[470,1933,1935],{"className":1886,"code":1934,"language":326,"meta":315,"style":315},"::card\n---\ntitle: Judul Card\ndescription: Deskripsi singkat\n---\nKonten di dalam card bisa berisi **Markdown** biasa.\n::\n",[49,1936,1937,1942,1948,1953,1958,1962,1974],{"__ignoreMap":315},[478,1938,1939],{"class":480,"line":481},[478,1940,1941],{"class":550},"::card\n",[478,1943,1944],{"class":480,"line":316},[478,1945,1947],{"class":1946},"sq-ep","---\n",[478,1949,1950],{"class":480,"line":501},[478,1951,1952],{"class":550},"title: Judul Card\n",[478,1954,1955],{"class":480,"line":507},[478,1956,1957],{"class":550},"description: Deskripsi singkat\n",[478,1959,1960],{"class":480,"line":513},[478,1961,1947],{"class":1946},[478,1963,1964,1967,1971],{"class":480,"line":640},[478,1965,1966],{"class":550},"Konten di dalam card bisa berisi ",[478,1968,1970],{"class":1969},"sIZ1i","**Markdown**",[478,1972,1973],{"class":550}," biasa.\n",[478,1975,1976],{"class":480,"line":652},[478,1977,1926],{"class":550},[16,1979,1980,1981,1984,1985,1988],{},"Supaya komponen MDC bisa dipakai, kita letakkan komponen Vue di ",[49,1982,1983],{},"components\u002Fcontent\u002F"," — Nuxt Content otomatis ",[20,1986,1987],{},"register"," semua komponen di sana sebagai komponen global yang bisa dipakai di Markdown.",[470,1990,1992],{"className":792,"code":1991,"language":794,"meta":315,"style":315},"\u003C!-- components\u002Fcontent\u002FCallout.vue -->\n\u003Cscript setup lang=\"ts\">\ndefineProps\u003C{\n  type?: 'info' | 'warning' | 'error' | 'success'\n}>()\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv :class=\"`callout callout-${type ?? 'info'}`\">\n    \u003Cslot \u002F>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[49,1993,1994,1999,2015,2023,2050,2055,2063,2067,2075,2091,2104,2112],{"__ignoreMap":315},[478,1995,1996],{"class":480,"line":481},[478,1997,1998],{"class":484},"\u003C!-- components\u002Fcontent\u002FCallout.vue -->\n",[478,2000,2001,2003,2005,2007,2009,2011,2013],{"class":480,"line":316},[478,2002,801],{"class":550},[478,2004,805],{"class":804},[478,2006,808],{"class":490},[478,2008,811],{"class":490},[478,2010,814],{"class":550},[478,2012,817],{"class":494},[478,2014,820],{"class":550},[478,2016,2017,2020],{"class":480,"line":501},[478,2018,2019],{"class":490},"defineProps",[478,2021,2022],{"class":550},"\u003C{\n",[478,2024,2025,2028,2031,2034,2037,2040,2042,2045,2047],{"class":480,"line":507},[478,2026,2027],{"class":831},"  type",[478,2029,2030],{"class":540},"?:",[478,2032,2033],{"class":494}," 'info'",[478,2035,2036],{"class":540}," |",[478,2038,2039],{"class":494}," 'warning'",[478,2041,2036],{"class":540},[478,2043,2044],{"class":494}," 'error'",[478,2046,2036],{"class":540},[478,2048,2049],{"class":494}," 'success'\n",[478,2051,2052],{"class":480,"line":513},[478,2053,2054],{"class":550},"}>()\n",[478,2056,2057,2059,2061],{"class":480,"line":640},[478,2058,938],{"class":550},[478,2060,805],{"class":804},[478,2062,820],{"class":550},[478,2064,2065],{"class":480,"line":652},[478,2066,504],{"emptyLinePlaceholder":328},[478,2068,2069,2071,2073],{"class":480,"line":663},[478,2070,801],{"class":550},[478,2072,953],{"class":804},[478,2074,820],{"class":550},[478,2076,2077,2079,2081,2084,2086,2089],{"class":480,"line":674},[478,2078,960],{"class":550},[478,2080,1810],{"class":804},[478,2082,2083],{"class":490}," :class",[478,2085,814],{"class":550},[478,2087,2088],{"class":494},"\"`callout callout-${type ?? 'info'}`\"",[478,2090,820],{"class":550},[478,2092,2093,2095,2098,2102],{"class":480,"line":686},[478,2094,986],{"class":550},[478,2096,2097],{"class":804},"slot",[478,2099,2101],{"class":2100},"s7hpK"," \u002F",[478,2103,820],{"class":550},[478,2105,2106,2108,2110],{"class":480,"line":696},[478,2107,1036],{"class":550},[478,2109,1810],{"class":804},[478,2111,820],{"class":550},[478,2113,2114,2116,2118],{"class":480,"line":706},[478,2115,938],{"class":550},[478,2117,953],{"class":804},[478,2119,820],{"class":550},[411,2121],{},[11,2123,2124],{"id":177},"Query Layaknya Database",[16,2126,2127],{},"Ini bagian yang saya paling suka. API query Nuxt Content v3 terasa seperti ORM ringan:",[470,2129,2131],{"className":531,"code":2130,"language":533,"meta":315,"style":315},"\u002F\u002F Filter berdasarkan tag\nconst posts = await queryCollection('blog')\n  .where('tags', 'LIKE', '%Nuxt%')\n  .order('date', 'DESC')\n  .limit(5)\n  .all()\n\n\u002F\u002F Pencarian full-text\nconst results = await queryCollection('blog')\n  .where('body', 'LIKE', `%${keyword}%`)\n  .all()\n\n\u002F\u002F Ambil hanya field tertentu (projection)\nconst titles = await queryCollection('blog')\n  .select('title', 'date', 'path')\n  .order('date', 'DESC')\n  .all()\n",[49,2132,2133,2138,2158,2182,2198,2212,2220,2224,2229,2248,2276,2284,2288,2293,2312,2335,2351],{"__ignoreMap":315},[478,2134,2135],{"class":480,"line":481},[478,2136,2137],{"class":484},"\u002F\u002F Filter berdasarkan tag\n",[478,2139,2140,2142,2145,2147,2149,2152,2154,2156],{"class":480,"line":316},[478,2141,825],{"class":540},[478,2143,2144],{"class":838}," posts",[478,2146,1082],{"class":540},[478,2148,847],{"class":540},[478,2150,2151],{"class":490}," queryCollection",[478,2153,853],{"class":550},[478,2155,872],{"class":494},[478,2157,875],{"class":550},[478,2159,2160,2163,2165,2167,2170,2172,2175,2177,2180],{"class":480,"line":501},[478,2161,2162],{"class":550},"  .",[478,2164,883],{"class":490},[478,2166,853],{"class":550},[478,2168,2169],{"class":494},"'tags'",[478,2171,229],{"class":550},[478,2173,2174],{"class":494},"'LIKE'",[478,2176,229],{"class":550},[478,2178,2179],{"class":494},"'%Nuxt%'",[478,2181,875],{"class":550},[478,2183,2184,2186,2188,2190,2192,2194,2196],{"class":480,"line":507},[478,2185,2162],{"class":550},[478,2187,907],{"class":490},[478,2189,853],{"class":550},[478,2191,912],{"class":494},[478,2193,229],{"class":550},[478,2195,917],{"class":494},[478,2197,875],{"class":550},[478,2199,2200,2202,2205,2207,2210],{"class":480,"line":513},[478,2201,2162],{"class":550},[478,2203,2204],{"class":490},"limit",[478,2206,853],{"class":550},[478,2208,2209],{"class":838},"5",[478,2211,875],{"class":550},[478,2213,2214,2216,2218],{"class":480,"line":640},[478,2215,2162],{"class":550},[478,2217,926],{"class":490},[478,2219,929],{"class":550},[478,2221,2222],{"class":480,"line":652},[478,2223,504],{"emptyLinePlaceholder":328},[478,2225,2226],{"class":480,"line":663},[478,2227,2228],{"class":484},"\u002F\u002F Pencarian full-text\n",[478,2230,2231,2233,2236,2238,2240,2242,2244,2246],{"class":480,"line":674},[478,2232,825],{"class":540},[478,2234,2235],{"class":838}," results",[478,2237,1082],{"class":540},[478,2239,847],{"class":540},[478,2241,2151],{"class":490},[478,2243,853],{"class":550},[478,2245,872],{"class":494},[478,2247,875],{"class":550},[478,2249,2250,2252,2254,2256,2259,2261,2263,2265,2268,2271,2274],{"class":480,"line":686},[478,2251,2162],{"class":550},[478,2253,883],{"class":490},[478,2255,853],{"class":550},[478,2257,2258],{"class":494},"'body'",[478,2260,229],{"class":550},[478,2262,2174],{"class":494},[478,2264,229],{"class":550},[478,2266,2267],{"class":494},"`%${",[478,2269,2270],{"class":550},"keyword",[478,2272,2273],{"class":494},"}%`",[478,2275,875],{"class":550},[478,2277,2278,2280,2282],{"class":480,"line":696},[478,2279,2162],{"class":550},[478,2281,926],{"class":490},[478,2283,929],{"class":550},[478,2285,2286],{"class":480,"line":706},[478,2287,504],{"emptyLinePlaceholder":328},[478,2289,2290],{"class":480,"line":728},[478,2291,2292],{"class":484},"\u002F\u002F Ambil hanya field tertentu (projection)\n",[478,2294,2295,2297,2300,2302,2304,2306,2308,2310],{"class":480,"line":734},[478,2296,825],{"class":540},[478,2298,2299],{"class":838}," titles",[478,2301,1082],{"class":540},[478,2303,847],{"class":540},[478,2305,2151],{"class":490},[478,2307,853],{"class":550},[478,2309,872],{"class":494},[478,2311,875],{"class":550},[478,2313,2314,2316,2319,2321,2324,2326,2328,2330,2333],{"class":480,"line":740},[478,2315,2162],{"class":550},[478,2317,2318],{"class":490},"select",[478,2320,853],{"class":550},[478,2322,2323],{"class":494},"'title'",[478,2325,229],{"class":550},[478,2327,912],{"class":494},[478,2329,229],{"class":550},[478,2331,2332],{"class":494},"'path'",[478,2334,875],{"class":550},[478,2336,2337,2339,2341,2343,2345,2347,2349],{"class":480,"line":746},[478,2338,2162],{"class":550},[478,2340,907],{"class":490},[478,2342,853],{"class":550},[478,2344,912],{"class":494},[478,2346,229],{"class":550},[478,2348,917],{"class":494},[478,2350,875],{"class":550},[478,2352,2354,2356,2358],{"class":480,"line":2353},17,[478,2355,2162],{"class":550},[478,2357,926],{"class":490},[478,2359,929],{"class":550},[16,2361,2362],{},"Di bawahnya, ini semua diterjemahkan ke SQL dan dieksekusi oleh SQLite. Performanya cepat bahkan untuk ratusan file konten.",[411,2364],{},[11,2366,2368],{"id":2367},"daftar-isi-otomatis","Daftar Isi Otomatis",[16,2370,2371,2373,2374,2377],{},[49,2372,255],{}," juga menyertakan ",[20,2375,2376],{},"table of contents"," yang dibangun otomatis dari heading di Markdown:",[470,2379,2381],{"className":792,"code":2380,"language":794,"meta":315,"style":315},"\u003Cscript setup lang=\"ts\">\nconst route = useRoute()\nconst { data: post } = await useAsyncData(route.path, () =>\n  queryCollection('blog').path(route.path).first()\n)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv class=\"layout\">\n    \u003Caside>\n      \u003Cul>\n        \u003Cli v-for=\"link in post?.body?.toc?.links\" :key=\"link.id\">\n          \u003Ca :href=\"`#${link.id}`\">{{ link.text }}\u003C\u002Fa>\n          \u003Cul v-if=\"link.children\">\n            \u003Cli v-for=\"child in link.children\" :key=\"child.id\">\n              \u003Ca :href=\"`#${child.id}`\">{{ child.text }}\u003C\u002Fa>\n            \u003C\u002Fli>\n          \u003C\u002Ful>\n        \u003C\u002Fli>\n      \u003C\u002Ful>\n    \u003C\u002Faside>\n\n    \u003Cmain>\n      \u003CContentRenderer :value=\"post\" \u002F>\n    \u003C\u002Fmain>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[49,2382,2383,2399,2411,2435,2453,2457,2465,2469,2477,2493,2502,2510,2532,2553,2568,2591,2612,2621,2631,2640,2649,2658,2663,2673,2688,2697,2706],{"__ignoreMap":315},[478,2384,2385,2387,2389,2391,2393,2395,2397],{"class":480,"line":481},[478,2386,801],{"class":550},[478,2388,805],{"class":804},[478,2390,808],{"class":490},[478,2392,811],{"class":490},[478,2394,814],{"class":550},[478,2396,817],{"class":494},[478,2398,820],{"class":550},[478,2400,2401,2403,2405,2407,2409],{"class":480,"line":316},[478,2402,825],{"class":540},[478,2404,1079],{"class":838},[478,2406,1082],{"class":540},[478,2408,1085],{"class":490},[478,2410,929],{"class":550},[478,2412,2413,2415,2417,2419,2421,2423,2425,2427,2429,2431,2433],{"class":480,"line":501},[478,2414,825],{"class":540},[478,2416,828],{"class":550},[478,2418,832],{"class":831},[478,2420,835],{"class":550},[478,2422,1100],{"class":838},[478,2424,842],{"class":550},[478,2426,814],{"class":540},[478,2428,847],{"class":540},[478,2430,850],{"class":490},[478,2432,1111],{"class":550},[478,2434,862],{"class":540},[478,2436,2437,2439,2441,2443,2445,2447,2449,2451],{"class":480,"line":507},[478,2438,867],{"class":490},[478,2440,853],{"class":550},[478,2442,872],{"class":494},[478,2444,1124],{"class":550},[478,2446,1127],{"class":490},[478,2448,1130],{"class":550},[478,2450,1133],{"class":490},[478,2452,929],{"class":550},[478,2454,2455],{"class":480,"line":513},[478,2456,875],{"class":550},[478,2458,2459,2461,2463],{"class":480,"line":640},[478,2460,938],{"class":550},[478,2462,805],{"class":804},[478,2464,820],{"class":550},[478,2466,2467],{"class":480,"line":652},[478,2468,504],{"emptyLinePlaceholder":328},[478,2470,2471,2473,2475],{"class":480,"line":663},[478,2472,801],{"class":550},[478,2474,953],{"class":804},[478,2476,820],{"class":550},[478,2478,2479,2481,2483,2486,2488,2491],{"class":480,"line":674},[478,2480,960],{"class":550},[478,2482,1810],{"class":804},[478,2484,2485],{"class":490}," class",[478,2487,814],{"class":550},[478,2489,2490],{"class":494},"\"layout\"",[478,2492,820],{"class":550},[478,2494,2495,2497,2500],{"class":480,"line":686},[478,2496,986],{"class":550},[478,2498,2499],{"class":804},"aside",[478,2501,820],{"class":550},[478,2503,2504,2506,2508],{"class":480,"line":696},[478,2505,1340],{"class":550},[478,2507,54],{"class":804},[478,2509,820],{"class":550},[478,2511,2512,2514,2516,2518,2520,2523,2525,2527,2530],{"class":480,"line":706},[478,2513,1377],{"class":550},[478,2515,57],{"class":804},[478,2517,966],{"class":490},[478,2519,814],{"class":550},[478,2521,2522],{"class":494},"\"link in post?.body?.toc?.links\"",[478,2524,974],{"class":490},[478,2526,814],{"class":550},[478,2528,2529],{"class":494},"\"link.id\"",[478,2531,820],{"class":550},[478,2533,2534,2536,2538,2541,2543,2546,2549,2551],{"class":480,"line":728},[478,2535,1393],{"class":550},[478,2537,28],{"class":804},[478,2539,2540],{"class":490}," :href",[478,2542,814],{"class":550},[478,2544,2545],{"class":494},"\"`#${link.id}`\"",[478,2547,2548],{"class":550},">{{ link.text }}\u003C\u002F",[478,2550,28],{"class":804},[478,2552,820],{"class":550},[478,2554,2555,2557,2559,2561,2563,2566],{"class":480,"line":734},[478,2556,1393],{"class":550},[478,2558,54],{"class":804},[478,2560,1365],{"class":490},[478,2562,814],{"class":550},[478,2564,2565],{"class":494},"\"link.children\"",[478,2567,820],{"class":550},[478,2569,2570,2573,2575,2577,2579,2582,2584,2586,2589],{"class":480,"line":740},[478,2571,2572],{"class":550},"            \u003C",[478,2574,57],{"class":804},[478,2576,966],{"class":490},[478,2578,814],{"class":550},[478,2580,2581],{"class":494},"\"child in link.children\"",[478,2583,974],{"class":490},[478,2585,814],{"class":550},[478,2587,2588],{"class":494},"\"child.id\"",[478,2590,820],{"class":550},[478,2592,2593,2596,2598,2600,2602,2605,2608,2610],{"class":480,"line":746},[478,2594,2595],{"class":550},"              \u003C",[478,2597,28],{"class":804},[478,2599,2540],{"class":490},[478,2601,814],{"class":550},[478,2603,2604],{"class":494},"\"`#${child.id}`\"",[478,2606,2607],{"class":550},">{{ child.text }}\u003C\u002F",[478,2609,28],{"class":804},[478,2611,820],{"class":550},[478,2613,2614,2617,2619],{"class":480,"line":2353},[478,2615,2616],{"class":550},"            \u003C\u002F",[478,2618,57],{"class":804},[478,2620,820],{"class":550},[478,2622,2624,2627,2629],{"class":480,"line":2623},18,[478,2625,2626],{"class":550},"          \u003C\u002F",[478,2628,54],{"class":804},[478,2630,820],{"class":550},[478,2632,2634,2636,2638],{"class":480,"line":2633},19,[478,2635,1414],{"class":550},[478,2637,57],{"class":804},[478,2639,820],{"class":550},[478,2641,2643,2645,2647],{"class":480,"line":2642},20,[478,2644,1423],{"class":550},[478,2646,54],{"class":804},[478,2648,820],{"class":550},[478,2650,2652,2654,2656],{"class":480,"line":2651},21,[478,2653,1432],{"class":550},[478,2655,2499],{"class":804},[478,2657,820],{"class":550},[478,2659,2661],{"class":480,"line":2660},22,[478,2662,504],{"emptyLinePlaceholder":328},[478,2664,2666,2668,2671],{"class":480,"line":2665},23,[478,2667,986],{"class":550},[478,2669,2670],{"class":804},"main",[478,2672,820],{"class":550},[478,2674,2676,2678,2680,2682,2684,2686],{"class":480,"line":2675},24,[478,2677,1340],{"class":550},[478,2679,1166],{"class":804},[478,2681,1169],{"class":490},[478,2683,814],{"class":550},[478,2685,1174],{"class":494},[478,2687,1177],{"class":550},[478,2689,2691,2693,2695],{"class":480,"line":2690},25,[478,2692,1432],{"class":550},[478,2694,2670],{"class":804},[478,2696,820],{"class":550},[478,2698,2700,2702,2704],{"class":480,"line":2699},26,[478,2701,1036],{"class":550},[478,2703,1810],{"class":804},[478,2705,820],{"class":550},[478,2707,2709,2711,2713],{"class":480,"line":2708},27,[478,2710,938],{"class":550},[478,2712,953],{"class":804},[478,2714,820],{"class":550},[16,2716,2717,2718,2721,2722,2725],{},"Heading ",[49,2719,2720],{},"##"," menjadi level pertama, ",[49,2723,2724],{},"###"," menjadi child-nya. Semua otomatis.",[411,2727],{},[11,2729,2731],{"id":2730},"hot-reload-di-development","Hot Reload di Development",[16,2733,2734,2735,2737,2738,2740,2741,2744,2745,2748,2749,2752],{},"Saat ",[20,2736,131],{},", setiap perubahan pada file di folder ",[49,2739,155],{}," langsung ter-",[20,2742,2743],{},"reflect"," di browser tanpa perlu ",[20,2746,2747],{},"refresh"," manual. Ini karena Nuxt Content menggunakan ",[20,2750,2751],{},"file watcher"," yang terintegrasi dengan Vite HMR.",[387,2754,2755],{},[16,2756,2757,2759,2760,2763,2764,2767],{},[169,2758,393],{}," Di Nuxt Content v3, ",[20,2761,2762],{},"hot reload"," untuk konten bahkan lebih cepat dari v2 karena perubahan hanya me-",[20,2765,2766],{},"re-index"," file yang berubah, bukan semua file sekaligus. Ini terasa jelas saat project punya ratusan artikel.",[411,2769],{},[11,2771,2773],{"id":2772},"kapan-tidak-pakai-nuxt-content","Kapan Tidak Pakai Nuxt Content",[16,2775,2776,2777,2780,2781,2784,2785,2788],{},"Nuxt Content cocok untuk konten yang ",[20,2778,2779],{},"owner","-nya developer atau tim teknis yang nyaman dengan Git dan Markdown. Tapi kalau ",[20,2782,2783],{},"stakeholder"," kamu adalah content editor non-teknis yang butuh UI visual untuk nulis, lebih baik tetap pakai ",[20,2786,2787],{},"headless CMS"," seperti Sanity.io atau Directus — dan konsumsi kontennya lewat API biasa, bukan Nuxt Content.",[16,2790,2791,2792,2795],{},"Nuxt Content bukan pengganti CMS. Ia adalah pilihan tepat kalau kamu mau ",[20,2793,2794],{},"control penuh"," atas konten tanpa ketergantungan layanan eksternal.",[411,2797],{},[11,2799,268],{"id":267},[16,2801,2802,2803,2806,2807,2809,2810,2813,2814,2817,2818,2821,2822,2824],{},"Nuxt Content mengubah cara saya melihat ",[20,2804,2805],{},"content management",". Tidak ada lagi ",[20,2808,189],{}," yang memakan waktu. Tidak ada lagi ketergantungan pada ",[20,2811,2812],{},"service"," eksternal yang bisa berubah ",[20,2815,2816],{},"pricing"," kapan saja. Konten ada di Git, di-",[20,2819,2820],{},"version control",", dan bisa di-",[20,2823,159],{}," dengan cara yang ekspresif.",[16,2826,2827],{},"Kalau kamu sudah pakai Nuxt dan butuh blog, dokumentasi, atau apapun yang berbasis konten — Nuxt Content adalah pilihan pertama yang layak dicoba.",[11,2829,298],{"id":297},[16,2831,2832,304,2836,304,2839,304,2844,313],{},[28,2833,2835],{"href":140,"rel":2834},[32],"Nuxt Content Official Docs",[28,2837,309],{"href":307,"rel":2838},[32],[28,2840,2843],{"href":2841,"rel":2842},"https:\u002F\u002Fcontent.nuxt.com\u002Fdocs\u002Futils\u002Fquery-collection",[32],"queryCollection API",[28,2845,2848],{"href":2846,"rel":2847},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fcontent",[32],"Nuxt Content GitHub",[16,2850,2851],{},"~ Ann",[2853,2854,2855],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .svl0z, html code.shiki .svl0z{--shiki-default:#032F62;--shiki-default-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline}html pre.shiki code .sq-ep, html code.shiki .sq-ep{--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold}html pre.shiki code .sIZ1i, html code.shiki .sIZ1i{--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold}html pre.shiki code .s7hpK, html code.shiki .s7hpK{--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}",{"title":315,"searchDepth":316,"depth":316,"links":2857},[2858,2859,2860,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2871],{"id":343,"depth":316,"text":344},{"id":415,"depth":316,"text":416},{"id":467,"depth":316,"text":468},{"id":578,"depth":316,"text":579},{"id":781,"depth":316,"text":782},{"id":1199,"depth":316,"text":1200},{"id":1483,"depth":316,"text":1484},{"id":1874,"depth":316,"text":1875},{"id":177,"depth":316,"text":2124},{"id":2367,"depth":316,"text":2368},{"id":2730,"depth":316,"text":2731},{"id":2772,"depth":316,"text":2773},{"id":267,"depth":316,"text":268},{"id":297,"depth":316,"text":298},"2026-06-07","Mengenal Nuxt Content secara mendalam — dari konsep, use case nyata, hingga query konten layaknya database",{},"\u002Fblog\u002Fnuxt-content",{"title":338,"description":2873},"blog\u002Fnuxt-content",[333,2879,2880],"Vue","JavaScript","VTlUX77QCP5mpSnnjfIOnn6BdRp_OX2bXxzxPbD46mU",{"id":2883,"title":2884,"body":2885,"date":3210,"description":3211,"extension":326,"meta":3212,"navigation":328,"path":3213,"seo":3214,"stem":3215,"tags":3216,"__hash__":3218},"blog\u002Fblog\u002Fjamstack.md","Jamstack",{"type":8,"value":2886,"toc":3197},[2887,2891,2903,2951,2955,2977,2981,3026,3028,3031,3037,3041,3044,3047,3070,3077,3079,3083,3106,3112,3114,3118,3121,3151,3158,3160,3164,3172,3174,3176],[11,2888,2890],{"id":2889},"apa-itu-jamstack","Apa itu Jamstack",[16,2892,2893,2894,2897,2898,260,2900,34],{},"\"Jamstack\" yang sebenarnya adalah JAM dan stack dimana JAM adalah akronim dari JavaScript, API & Markup. Sebuah arsitektur yang memisahkan ",[20,2895,2896],{},"web layer"," dari ",[20,2899,832],{},[20,2901,2902],{},"business logic",[54,2904,2905,2921,2934],{},[57,2906,2907,2910,2911,2914,2915,441,2917,2920],{},[60,2908,2880],{"id":2909},"javascript","\nSemua fungsionalitas dilakukan oleh JavaScript, seperti ",[20,2912,2913],{},"request API"," atau merender halaman statis. Banyak ",[20,2916,1210],{},[20,2918,2919],{},"framework"," yang bisa digunakan sesuai kebutuhan.",[57,2922,2923,2927,2930,2931,34],{},[60,2924,2926],{"id":2925},"apis","APIs",[20,2928,2929],{},"Server side operation"," seperti koneksi ke database atau terhubung ke ",[20,2932,2933],{},"third-party services",[57,2935,2936,2940,2943,2944,2947,2948,34],{},[60,2937,2939],{"id":2938},"markup","Markup",[20,2941,2942],{},"Pre-render"," halaman statis HTML yang dikirimkan ke browser, di-",[20,2945,2946],{},"generate"," dari Markdown atau dengan ",[20,2949,2950],{},"Static Site Generator",[11,2952,2954],{"id":2953},"workflow","Workflow",[16,2956,2957,2958,2961,2962,2965,2966,2969,2970,2972,2973,2976],{},"Setiap push ke ",[20,2959,2960],{},"Version Control System"," akan trigger build di ",[20,2963,2964],{},"CDN"," dimana ",[169,2967,2968],{},"SSG"," - ",[20,2971,2950],{}," akan dijalankan, proses ini kemudian menghasilkan ",[20,2974,2975],{},"static asset"," yang dikirim ke browser. Datasource umumnya menggunakan HeadlessCMS yang memudahkan untuk mengatur content seperti Strapi, Contentful, Sanity.io.",[11,2978,2980],{"id":2979},"keuntungan","Keuntungan",[54,2982,2983,3002,3012,3019],{},[57,2984,2985,2989,2990,2993,2994,2997,2998,3001],{},[60,2986,2988],{"id":2987},"performance","Performance","\nJamstack ",[20,2991,2992],{},"generate page"," selama ",[20,2995,2996],{},"build"," sehingga hanya ",[20,2999,3000],{},"static"," yang terkirim. Layanan CDN dapat menerima request dengan cepat tanpa infrastruktur kompleks",[57,3003,3004,3008,3009,3011],{},[60,3005,3007],{"id":3006},"developer-experience","Developer Experience","\nSangat banyak variasi teknologi yang bisa digunakan. Developer punya kebebasan untuk memilih framework, third-party APIs yang mempercepat proses ",[20,3010,131],{}," dan menyenangkan untuk dilakukan.",[57,3013,3014,3018],{},[60,3015,3017],{"id":3016},"security","Security","\nKita tidak perlu khawatir dengan keamanan karena aplikasi terpecah menjadi beberapa layanan.",[57,3020,3021,3025],{},[60,3022,3024],{"id":3023},"scalability","Scalability","\nDengan CDN mudah untuk mengatur traffic",[411,3027],{},[11,3029,3030],{"id":131},"Development",[16,3032,3033,3034,3036],{},"Untuk ",[20,3035,2946],{}," halaman asset HTML banyak cara yang dilakukan.",[1833,3038,3040],{"id":3039},"hand-coding","Hand Coding",[16,3042,3043],{},"Menulis HTML untuk halaman yang sederhana.",[1833,3045,2950],{"id":3046},"static-site-generator",[54,3048,3049,3056,3063],{},[57,3050,3051],{},[28,3052,3055],{"href":3053,"rel":3054},"https:\u002F\u002Fnextjs.org",[32],"Next JS",[57,3057,3058],{},[28,3059,3062],{"href":3060,"rel":3061},"https:\u002F\u002Fgohugo.io\u002F",[32],"Hugo",[57,3064,3065],{},[28,3066,3069],{"href":3067,"rel":3068},"https:\u002F\u002Fwww.gatsbyjs.com\u002F",[32],"Gatsby",[16,3071,3072,3073],{},"See more ",[28,3074,2968],{"href":3075,"rel":3076},"https:\u002F\u002Fjamstack.org\u002Fgenerators\u002F",[32],[411,3078],{},[11,3080,3082],{"id":3081},"deployment","Deployment",[54,3084,3085,3092,3099],{},[57,3086,3087],{},[28,3088,3091],{"href":3089,"rel":3090},"https:\u002F\u002Fvercel.com\u002F",[32],"Vercel",[57,3093,3094],{},[28,3095,3098],{"href":3096,"rel":3097},"https:\u002F\u002Fpages.github.com\u002F",[32],"GitHub Pages",[57,3100,3101],{},[28,3102,3105],{"href":3103,"rel":3104},"https:\u002F\u002Fwww.tnd.dev\u002Ftools\u002Fhosting-deployment\u002F",[32],"Amazon S3",[16,3107,3072,3108],{},[28,3109,3111],{"href":3075,"rel":3110},[32],"Hosting & Deployment",[411,3113],{},[11,3115,3117],{"id":3116},"cms","CMS",[16,3119,3120],{},"Secara umum dikenal dengan HeadlessCMS untuk mengatur content.",[54,3122,3123,3130,3137,3144],{},[57,3124,3125],{},[28,3126,3129],{"href":3127,"rel":3128},"https:\u002F\u002Fwww.netlifycms.org",[32],"Netlify CMS",[57,3131,3132],{},[28,3133,3136],{"href":3134,"rel":3135},"https:\u002F\u002Fstrapi.io\u002F",[32],"Strapi",[57,3138,3139],{},[28,3140,3143],{"href":3141,"rel":3142},"https:\u002F\u002Fwww.contentful.com\u002F",[32],"Contentful",[57,3145,3146],{},[28,3147,3150],{"href":3148,"rel":3149},"https:\u002F\u002Fsanity.io\u002F",[32],"Sanity.io",[16,3152,3072,3153],{},[28,3154,3157],{"href":3155,"rel":3156},"https:\u002F\u002Fjamstack.org\u002Fheadless-cms\u002F",[32],"Headless CMS",[411,3159],{},[11,3161,3163],{"id":3162},"static-web-service","Static Web Service",[16,3165,3166,3167],{},"List untuk layanan yang bisa digunakan ",[28,3168,3171],{"href":3169,"rel":3170},"https:\u002F\u002Fgithub.com\u002Fagarrharr\u002Fawesome-static-website-services",[32],"awesome-static-website-services",[411,3173],{},[11,3175,298],{"id":297},[16,3177,3178,304,3183,304,3188,304,3192,313],{},[28,3179,3182],{"href":3180,"rel":3181},"https:\u002F\u002Fjamstack.org\u002F",[32],"Jamstack org",[28,3184,3187],{"href":3185,"rel":3186},"https:\u002F\u002Fjamstack.wtf\u002F#what-is-jamstack",[32],"Jamstack WTF",[28,3189,3143],{"href":3190,"rel":3191},"https:\u002F\u002Fwww.contentful.com\u002Fr\u002Fknowledgebase\u002Fjamstack-cms\u002F",[32],[28,3193,3196],{"href":3194,"rel":3195},"https:\u002F\u002Fwww.maibornwolff.de\u002Fen\u002Fspotlight\u002Fjamstack-architecture-and-scenarios\u002F",[32],"jamstack-architecture-and-scenarios",{"title":315,"searchDepth":316,"depth":316,"links":3198},[3199,3200,3201,3202,3206,3207,3208,3209],{"id":2889,"depth":316,"text":2890},{"id":2953,"depth":316,"text":2954},{"id":2979,"depth":316,"text":2980},{"id":131,"depth":316,"text":3030,"children":3203},[3204,3205],{"id":3039,"depth":501,"text":3040},{"id":3046,"depth":501,"text":2950},{"id":3081,"depth":316,"text":3082},{"id":3116,"depth":316,"text":3117},{"id":3162,"depth":316,"text":3163},{"id":297,"depth":316,"text":298},"2023-07-30","Mengenal Jamstack, arsitektur web yang memisahkan web layer dari data dan business logic",{},"\u002Fblog\u002Fjamstack",{"title":2884,"description":3211},"blog\u002Fjamstack",[3217],"Architecture","eLEeoSuYT33_9hmtiyM5MAyXYHMS0UGYo_pRbkOizKQ",{"id":3220,"title":3221,"body":3222,"date":3681,"description":3682,"extension":326,"meta":3683,"navigation":328,"path":3684,"seo":3685,"stem":3686,"tags":3687,"__hash__":3688},"blog\u002Fblog\u002Fmock-apis-dengan-mockoon.md","Mock APIs dengan Mockoon",{"type":8,"value":3223,"toc":3675},[3224,3271,3274,3278,3295,3316,3320,3331,3357,3369,3373,3376,3382,3389,3396,3403,3409,3416,3419,3472,3551,3599,3657,3661,3664,3670,3672],[16,3225,3226,3227,3230,3231,3234,3235,3238,3239,260,3241,3244,3245,3247,3248,260,3251,3254,3255,3247,3258,1466,3261,3263,3264,3267,3268,34],{},"Bicara tentang ",[20,3228,3229],{},"Microservices"," mungkin terpikirkan sesuatu yang disebut ",[20,3232,3233],{},"Agile"," dimana kita dapat mengerjakan ",[20,3236,3237],{},"task"," secara paralel atau bersamaan tanpa harus menunggu yang lain. Dalam pengembangan biasanya memisahkan antara ",[20,3240,370],{},[20,3242,3243],{},"frontend",", akan terhubung dengan ",[20,3246,2926],{},". ",[20,3249,3250],{},"Backend",[20,3252,3253],{},"Frontend"," dapat bekerja secara serentak tanpa harus menunggu satu sama lain dengan cara membuat ",[20,3256,3257],{},"API Spec",[20,3259,3260],{},"Framework",[20,3262,3243],{}," seperti ",[20,3265,3266],{},"React"," tidak memiliki akses server sehingga kita perlu menggunakan ",[20,3269,3270],{},"Mock API server",[16,3272,3273],{},"Mockoon adalah salah satu yang akan kita bahas karena \"No remote deployment, no account required, free and open-source\".",[11,3275,3277],{"id":3276},"install-mockoon","Install Mockoon",[16,3279,3280,3281,3284,3285,3290,3291,3294],{},"Saya akan menggunakan GUI, kita bisa meng-",[20,3282,3283],{},"installnya"," di ",[28,3286,3289],{"href":3287,"rel":3288},"https:\u002F\u002Fmockoon.com\u002Fdownload\u002F",[32],"Mockoon",". Karena saya menggunakan ",[20,3292,3293],{},"Snap"," sehingga hanya perlu memasukkan perintah",[470,3296,3298],{"className":472,"code":3297,"language":474,"meta":315,"style":315},"$ sudo snap install mockoon\n",[49,3299,3300],{"__ignoreMap":315},[478,3301,3302,3305,3308,3311,3313],{"class":480,"line":481},[478,3303,3304],{"class":490},"$",[478,3306,3307],{"class":494}," sudo",[478,3309,3310],{"class":494}," snap",[478,3312,519],{"class":494},[478,3314,3315],{"class":494}," mockoon\n",[11,3317,3319],{"id":3318},"mock-api-request","Mock API Request",[16,3321,3322,3323,3326,3327,3330],{},"Kita hanya perlu klik ",[20,3324,3325],{},"new environment"," dan mengetikkan nama. Data akan tersimpan pada ",[20,3328,3329],{},"default"," folder Mockoon.",[54,3332,3333,3339,3345,3351],{},[57,3334,3335,3336],{},"Windows: ",[49,3337,3338],{},"c:\u002FUsers\u002Fxxx\u002FAppData\u002FRoaming\u002Fmockoon\u002Fstorage",[57,3340,3341,3342],{},"Linux: ",[49,3343,3344],{},"~\u002F.config\u002Fmockoon\u002Fstorage",[57,3346,3347,3348],{},"Snap: ",[49,3349,3350],{},"~\u002Fsnap\u002Fmockoon\u002F26\u002F.config\u002Fmockoon\u002Fstorage",[57,3352,3353,3354],{},"Mac: ",[49,3355,3356],{},"~\u002FLibrary\u002FApplication Support\u002Fmockoon\u002Fstorage",[16,3358,3359,3360,3362,3363,3368],{},"Selanjutnya menambah HTTP Route baru mengisikan ",[20,3361,1127],{}," nya dan mulai menulis response di body nya dalam bentuk JSON. Kita bisa mengganti HTTP Status untuk simulasi ketika ada error dan sebagainya. Penggunaan yang sederhana bisa kita pelajari dalam 5 menit. ",[28,3364,3367],{"href":3365,"rel":3366},"https:\u002F\u002Fmockoon.com\u002Ftutorials\u002Fgetting-started\u002F",[32],"Getting Started",". Di sini kita akan melihat fitur menarik.",[11,3370,3372],{"id":3371},"setting-up-rules","Setting up Rules",[16,3374,3375],{},"Ayo kita simulasikan Login dengan username dan password, jika benar akan mengembalikan HTTP Status 200 dan jika salah maka nilai berkurang.",[470,3377,3380],{"className":3378,"code":3379,"language":1220},[1218],"username: root\npassword: 123\n",[49,3381,3379],{"__ignoreMap":315},[16,3383,3384,3385,3388],{},"Kita buat HTTP Route baru dengan url ",[49,3386,3387],{},"\u002Fauth\u002Flogin",". Status di isi dengan 200 - OK dan body sederana menampilkan pesan sukses.",[16,3390,3391,3392,3395],{},"Setelah itu klik tombol tambah berwarna biru di sebelah ",[49,3393,3394],{},"Response 1 (200)",". Pada response selanjutnya kita isikan HTTP Status 401 - Unauthorized dengan body menampilkan username atau password salah.",[16,3397,3398,3399,3402],{},"Kita masuk ke tab ",[49,3400,3401],{},"Rules [2]"," lalu menuliskan Rules:",[470,3404,3407],{"className":3405,"code":3406,"language":1220},[1218],"username not equals root\nand\npassword not equals 123\n",[49,3408,3406],{"__ignoreMap":315},[16,3410,3411,3412,3415],{},"yang artinya tampilkan response ",[49,3413,3414],{},"401 - unauthorized"," ketika username bukan root dan password bukan 123.",[16,3417,3418],{},"Saya akan menggunakan extention vscode: Rest Client.",[470,3420,3424],{"className":3421,"code":3422,"language":3423,"meta":315,"style":315},"language-http shiki shiki-themes github-light github-dark","# Testing dengan username dan password yang benar\n\nPOST http:\u002F\u002Flocalhost:3001\u002Fauth\u002Flogin HTTP\u002F1.1\nContent-Type: application\u002Fjson\nAccept: application\u002Fjson\n\n{\n  \"username\": \"root\",\n  \"password\": \"123\"\n}\n","http",[49,3425,3426,3431,3435,3440,3445,3450,3454,3458,3463,3468],{"__ignoreMap":315},[478,3427,3428],{"class":480,"line":481},[478,3429,3430],{},"# Testing dengan username dan password yang benar\n",[478,3432,3433],{"class":480,"line":316},[478,3434,504],{"emptyLinePlaceholder":328},[478,3436,3437],{"class":480,"line":501},[478,3438,3439],{},"POST http:\u002F\u002Flocalhost:3001\u002Fauth\u002Flogin HTTP\u002F1.1\n",[478,3441,3442],{"class":480,"line":507},[478,3443,3444],{},"Content-Type: application\u002Fjson\n",[478,3446,3447],{"class":480,"line":513},[478,3448,3449],{},"Accept: application\u002Fjson\n",[478,3451,3452],{"class":480,"line":640},[478,3453,504],{"emptyLinePlaceholder":328},[478,3455,3456],{"class":480,"line":652},[478,3457,1511],{},[478,3459,3460],{"class":480,"line":663},[478,3461,3462],{},"  \"username\": \"root\",\n",[478,3464,3465],{"class":480,"line":674},[478,3466,3467],{},"  \"password\": \"123\"\n",[478,3469,3470],{"class":480,"line":686},[478,3471,1591],{},[470,3473,3475],{"className":3421,"code":3474,"language":3423,"meta":315,"style":315},"# Response yang didapat\n\nHTTP\u002F1.1 200 OK\nContent-Type: application\u002Fjson\nContent-Length: 94\nDate: Wed, 07 Jun 2023 16:40:25 GMT\nConnection: close\n\n\n{\n  \"success\": true,\n  \"message\": \"Login Successful\",\n  \"data\": {\n    \"username\": \"Root\",\n  }\n}\n",[49,3476,3477,3482,3486,3491,3495,3500,3505,3510,3514,3518,3522,3527,3532,3537,3542,3547],{"__ignoreMap":315},[478,3478,3479],{"class":480,"line":481},[478,3480,3481],{},"# Response yang didapat\n",[478,3483,3484],{"class":480,"line":316},[478,3485,504],{"emptyLinePlaceholder":328},[478,3487,3488],{"class":480,"line":501},[478,3489,3490],{},"HTTP\u002F1.1 200 OK\n",[478,3492,3493],{"class":480,"line":507},[478,3494,3444],{},[478,3496,3497],{"class":480,"line":513},[478,3498,3499],{},"Content-Length: 94\n",[478,3501,3502],{"class":480,"line":640},[478,3503,3504],{},"Date: Wed, 07 Jun 2023 16:40:25 GMT\n",[478,3506,3507],{"class":480,"line":652},[478,3508,3509],{},"Connection: close\n",[478,3511,3512],{"class":480,"line":663},[478,3513,504],{"emptyLinePlaceholder":328},[478,3515,3516],{"class":480,"line":674},[478,3517,504],{"emptyLinePlaceholder":328},[478,3519,3520],{"class":480,"line":686},[478,3521,1511],{},[478,3523,3524],{"class":480,"line":696},[478,3525,3526],{},"  \"success\": true,\n",[478,3528,3529],{"class":480,"line":706},[478,3530,3531],{},"  \"message\": \"Login Successful\",\n",[478,3533,3534],{"class":480,"line":728},[478,3535,3536],{},"  \"data\": {\n",[478,3538,3539],{"class":480,"line":734},[478,3540,3541],{},"    \"username\": \"Root\",\n",[478,3543,3544],{"class":480,"line":740},[478,3545,3546],{},"  }\n",[478,3548,3549],{"class":480,"line":746},[478,3550,1591],{},[470,3552,3554],{"className":3421,"code":3553,"language":3423,"meta":315,"style":315},"# Testing 401\n\nPOST http:\u002F\u002Flocalhost:3001\u002Fauth\u002Flogin HTTP\u002F1.1\nContent-Type: application\u002Fjson\nAccept: application\u002Fjson\n\n{\n  \"username\": \"salah\",\n  \"password\": \"salah\"\n}\n",[49,3555,3556,3561,3565,3569,3573,3577,3581,3585,3590,3595],{"__ignoreMap":315},[478,3557,3558],{"class":480,"line":481},[478,3559,3560],{},"# Testing 401\n",[478,3562,3563],{"class":480,"line":316},[478,3564,504],{"emptyLinePlaceholder":328},[478,3566,3567],{"class":480,"line":501},[478,3568,3439],{},[478,3570,3571],{"class":480,"line":507},[478,3572,3444],{},[478,3574,3575],{"class":480,"line":513},[478,3576,3449],{},[478,3578,3579],{"class":480,"line":640},[478,3580,504],{"emptyLinePlaceholder":328},[478,3582,3583],{"class":480,"line":652},[478,3584,1511],{},[478,3586,3587],{"class":480,"line":663},[478,3588,3589],{},"  \"username\": \"salah\",\n",[478,3591,3592],{"class":480,"line":674},[478,3593,3594],{},"  \"password\": \"salah\"\n",[478,3596,3597],{"class":480,"line":686},[478,3598,1591],{},[470,3600,3602],{"className":3421,"code":3601,"language":3423,"meta":315,"style":315},"# Response yang didapat\n\nHTTP\u002F1.1 401 Unauthorized\nContent-Type: application\u002Fjson\nContent-Length: 69\nDate: Wed, 07 Jun 2023 17:00:09 GMT\nConnection: close\n\n{\n  \"success\": false,\n  \"message\": \"Username or Password is wrong\",\n}\n",[49,3603,3604,3608,3612,3617,3621,3626,3631,3635,3639,3643,3648,3653],{"__ignoreMap":315},[478,3605,3606],{"class":480,"line":481},[478,3607,3481],{},[478,3609,3610],{"class":480,"line":316},[478,3611,504],{"emptyLinePlaceholder":328},[478,3613,3614],{"class":480,"line":501},[478,3615,3616],{},"HTTP\u002F1.1 401 Unauthorized\n",[478,3618,3619],{"class":480,"line":507},[478,3620,3444],{},[478,3622,3623],{"class":480,"line":513},[478,3624,3625],{},"Content-Length: 69\n",[478,3627,3628],{"class":480,"line":640},[478,3629,3630],{},"Date: Wed, 07 Jun 2023 17:00:09 GMT\n",[478,3632,3633],{"class":480,"line":652},[478,3634,3509],{},[478,3636,3637],{"class":480,"line":663},[478,3638,504],{"emptyLinePlaceholder":328},[478,3640,3641],{"class":480,"line":674},[478,3642,1511],{},[478,3644,3645],{"class":480,"line":686},[478,3646,3647],{},"  \"success\": false,\n",[478,3649,3650],{"class":480,"line":696},[478,3651,3652],{},"  \"message\": \"Username or Password is wrong\",\n",[478,3654,3655],{"class":480,"line":706},[478,3656,1591],{},[11,3658,3660],{"id":3659},"conclusion","Conclusion",[16,3662,3663],{},"Mockoon salah satu Mock API yang mudah digunakan, kita tidak lagi membutuhkan API langsung dari Backend ketika sedang Develop. Kita hanya perlu membuat Mock sesuai dengan API Spec yang telah ditentukan di awal. Backend dan Frontend dapat bekerja secara bersama, dengan seperti ini proses pengembangan akan lebih cepat.",[16,3665,3666],{},[28,3667,3289],{"href":3668,"rel":3669},"https:\u002F\u002Fmockoon.com\u002F",[32],[16,3671,2851],{},[2853,3673,3674],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":315,"searchDepth":316,"depth":316,"links":3676},[3677,3678,3679,3680],{"id":3276,"depth":316,"text":3277},{"id":3318,"depth":316,"text":3319},{"id":3371,"depth":316,"text":3372},{"id":3659,"depth":316,"text":3660},"2023-06-05","Menggunakan Mockoon untuk membuat mock API server agar frontend dan backend bisa dikerjakan secara paralel",{},"\u002Fblog\u002Fmock-apis-dengan-mockoon",{"title":3221,"description":3682},"blog\u002Fmock-apis-dengan-mockoon",[3217],"_O1UNKhHn1lP2Yrb0M7KWTX7pvu9h53JvdJb64b0PPM",{"id":3690,"title":3691,"body":3692,"date":3699,"description":3700,"extension":326,"meta":3701,"navigation":328,"path":3702,"seo":3703,"stem":3704,"tags":3705,"__hash__":3707},"blog\u002Fblog\u002Fautentikasi-dengan-next-auth.md","Autentikasi dengan Next-Auth",{"type":8,"value":3693,"toc":3697},[3694],[16,3695,3696],{},"Hello",{"title":315,"searchDepth":316,"depth":316,"links":3698},[],"2023-06-04","Belajar Next-Auth untuk memudahkan mengatur Autentikasi",{"draft":328},"\u002Fblog\u002Fautentikasi-dengan-next-auth",{"title":3691,"description":3700},"blog\u002Fautentikasi-dengan-next-auth",[3706],"NextJS","VRI5Zrsv015owZm2yHhwC4MAK5moTMiOkpiVsH8UqGU",{"id":3709,"title":3710,"body":3711,"date":4866,"description":4867,"extension":326,"meta":4868,"navigation":328,"path":4869,"seo":4870,"stem":4871,"tags":4872,"__hash__":4874},"blog\u002Fblog\u002Fnodejs-dependency-management.md","NodeJS: Dependency Management",{"type":8,"value":3712,"toc":4857},[3713,3720,3724,3747,3751,3758,3803,3811,3815,3822,4132,4143,4254,4258,4265,4269,4284,4372,4380,4680,4689,4703,4707,4726,4730,4743,4757,4770,4784,4789,4806,4816,4832,4851,4854],[16,3714,3715,3716,3719],{},"Ketika belajar NodeJS mungkin kita akan menemukan file ",[49,3717,3718],{},"package.json",". Terdapat informasi mengenai Project Node kita dalam file tersebut. Ayo kita pelajari.",[11,3721,3723],{"id":3722},"apa-itu-package-json","Apa itu Package JSON",[16,3725,3726,3727,3729,3730,3263,3733,229,3736,3739,3740,3743,3744,3746],{},"Setiap Node Project pasti terdapat file yang ditulis dengan JSON(JavaScript Object Notation) untuk menyimpan informasi Node Package. ",[49,3728,3718],{}," menyimpan ",[20,3731,3732],{},"basic information",[20,3734,3735],{},"name",[20,3737,3738],{},"version",", hingga ",[20,3741,3742],{},"metadata",". NPM membutuhkan ",[49,3745,3718],{}," untuk mengelola package.",[11,3748,3750],{"id":3749},"manifest","Manifest",[16,3752,3753,3754,3757],{},"Manifest berisi informasi mengenai mengenai yang ditulis kedalam ",[20,3755,3756],{},"Object",", diantaranya yang sering digunakan:",[54,3759,3760,3763,3771,3774,3782,3789,3796],{},[57,3761,3762],{},"name: Nama package.",[57,3764,3765,3766,34],{},"version: Nomor versi mengarah pada ",[28,3767,3770],{"href":3768,"rel":3769},"https:\u002F\u002Fdocs.npmjs.com\u002Fabout-semantic-versioning",[32],"semver",[57,3772,3773],{},"description: Informasi singkat mengenai package.",[57,3775,3776,3777,34],{},"lisence: Lisensi package dengan format ",[28,3778,3781],{"href":3779,"rel":3780},"https:\u002F\u002Fspdx.org\u002Flicenses\u002F",[32],"SPDX (Software Package Data Exchange)",[57,3783,3784,3785,3788],{},"main: ",[20,3786,3787],{},"entry point"," dari program kita.",[57,3790,3791,3792,3795],{},"script: Menjalankan ",[20,3793,3794],{},"custom script"," kita dengan NPM.",[57,3797,3798,3799,3802],{},"dependencies: Berisi semua ",[20,3800,3801],{},"dependency"," yang dibutuhkan. Akan kita bahas nanti.",[16,3804,3805,3806,34],{},"Untuk selengkapnya bisa kita kunjungi ",[28,3807,3810],{"href":3808,"rel":3809},"https:\u002F\u002Fdocs.npmjs.com\u002Fcli\u002Fv9\u002Fconfiguring-npm\u002Fpackage-json",[32],"Docs",[11,3812,3814],{"id":3813},"bagaimana-membuat-packagejson","Bagaimana membuat package.json",[16,3816,3817,3818,3821],{},"Kita perlu menginisiasi dengan npm, perintahnya ",[49,3819,3820],{},"$ npm init",". Jika menjalankan tersebut biasanya kita akan mendapat pertanyaan.",[470,3823,3825],{"className":472,"code":3824,"language":474,"meta":315,"style":315},"$ npm init\n\nThis utility will walk you through creating a package.json file.\nIt only covers the most common items, and tries to guess sensible defaults.\n\npackage name: (test)\nversion: (1.0.0)\ndescription:\nentry point: (index.js)\ntest command:\ngit repository:\nkeywords:\nauthor:\nlicense: (ISC)\nAbout to write to \u002Fhome\u002Flucuria\u002FDocuments\u002Fdev\u002Ftest\u002Fpackage.json:\n\n{\n  \"name\": \"test\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n  },\n  \"author\": \"\",\n  \"license\": \"ISC\"\n}\n\n\nIs this OK? (yes)\n",[49,3826,3827,3837,3841,3873,3914,3918,3928,3936,3941,3952,3960,3968,3973,3978,3986,4001,4005,4009,4019,4029,4039,4049,4059,4080,4084,4093,4103,4107,4112,4117],{"__ignoreMap":315},[478,3828,3829,3831,3834],{"class":480,"line":481},[478,3830,3304],{"class":490},[478,3832,3833],{"class":494}," npm",[478,3835,3836],{"class":494}," init\n",[478,3838,3839],{"class":480,"line":316},[478,3840,504],{"emptyLinePlaceholder":328},[478,3842,3843,3846,3849,3852,3855,3858,3861,3864,3867,3870],{"class":480,"line":501},[478,3844,3845],{"class":490},"This",[478,3847,3848],{"class":494}," utility",[478,3850,3851],{"class":494}," will",[478,3853,3854],{"class":494}," walk",[478,3856,3857],{"class":494}," you",[478,3859,3860],{"class":494}," through",[478,3862,3863],{"class":494}," creating",[478,3865,3866],{"class":494}," a",[478,3868,3869],{"class":494}," package.json",[478,3871,3872],{"class":494}," file.\n",[478,3874,3875,3878,3881,3884,3887,3890,3893,3896,3899,3902,3905,3908,3911],{"class":480,"line":507},[478,3876,3877],{"class":490},"It",[478,3879,3880],{"class":494}," only",[478,3882,3883],{"class":494}," covers",[478,3885,3886],{"class":494}," the",[478,3888,3889],{"class":494}," most",[478,3891,3892],{"class":494}," common",[478,3894,3895],{"class":494}," items,",[478,3897,3898],{"class":494}," and",[478,3900,3901],{"class":494}," tries",[478,3903,3904],{"class":494}," to",[478,3906,3907],{"class":494}," guess",[478,3909,3910],{"class":494}," sensible",[478,3912,3913],{"class":494}," defaults.\n",[478,3915,3916],{"class":480,"line":513},[478,3917,504],{"emptyLinePlaceholder":328},[478,3919,3920,3922,3925],{"class":480,"line":640},[478,3921,86],{"class":490},[478,3923,3924],{"class":494}," name:",[478,3926,3927],{"class":550}," (test)\n",[478,3929,3930,3933],{"class":480,"line":652},[478,3931,3932],{"class":490},"version:",[478,3934,3935],{"class":550}," (1.0.0)\n",[478,3937,3938],{"class":480,"line":663},[478,3939,3940],{"class":490},"description:\n",[478,3942,3943,3946,3949],{"class":480,"line":674},[478,3944,3945],{"class":490},"entry",[478,3947,3948],{"class":494}," point:",[478,3950,3951],{"class":550}," (index.js)\n",[478,3953,3954,3957],{"class":480,"line":686},[478,3955,3956],{"class":838},"test",[478,3958,3959],{"class":494}," command:\n",[478,3961,3962,3965],{"class":480,"line":696},[478,3963,3964],{"class":490},"git",[478,3966,3967],{"class":494}," repository:\n",[478,3969,3970],{"class":480,"line":706},[478,3971,3972],{"class":490},"keywords:\n",[478,3974,3975],{"class":480,"line":728},[478,3976,3977],{"class":490},"author:\n",[478,3979,3980,3983],{"class":480,"line":734},[478,3981,3982],{"class":490},"license:",[478,3984,3985],{"class":550}," (ISC)\n",[478,3987,3988,3991,3993,3996,3998],{"class":480,"line":740},[478,3989,3990],{"class":490},"About",[478,3992,3904],{"class":494},[478,3994,3995],{"class":494}," write",[478,3997,3904],{"class":494},[478,3999,4000],{"class":494}," \u002Fhome\u002Flucuria\u002FDocuments\u002Fdev\u002Ftest\u002Fpackage.json:\n",[478,4002,4003],{"class":480,"line":746},[478,4004,504],{"emptyLinePlaceholder":328},[478,4006,4007],{"class":480,"line":2353},[478,4008,1511],{"class":550},[478,4010,4011,4014,4016],{"class":480,"line":2623},[478,4012,4013],{"class":490},"  \"name\"",[478,4015,528],{"class":838},[478,4017,4018],{"class":494}," \"test\",\n",[478,4020,4021,4024,4026],{"class":480,"line":2633},[478,4022,4023],{"class":490},"  \"version\"",[478,4025,528],{"class":838},[478,4027,4028],{"class":494}," \"1.0.0\",\n",[478,4030,4031,4034,4036],{"class":480,"line":2642},[478,4032,4033],{"class":490},"  \"description\"",[478,4035,528],{"class":838},[478,4037,4038],{"class":494}," \"\",\n",[478,4040,4041,4044,4046],{"class":480,"line":2651},[478,4042,4043],{"class":490},"  \"main\"",[478,4045,528],{"class":838},[478,4047,4048],{"class":494}," \"index.js\",\n",[478,4050,4051,4054,4056],{"class":480,"line":2660},[478,4052,4053],{"class":490},"  \"scripts\"",[478,4055,528],{"class":838},[478,4057,4058],{"class":494}," {\n",[478,4060,4061,4064,4066,4069,4072,4075,4077],{"class":480,"line":2665},[478,4062,4063],{"class":490},"    \"test\"",[478,4065,528],{"class":838},[478,4067,4068],{"class":494}," \"echo ",[478,4070,4071],{"class":838},"\\\"",[478,4073,4074],{"class":494},"Error: no test specified",[478,4076,4071],{"class":838},[478,4078,4079],{"class":494}," && exit 1\"\n",[478,4081,4082],{"class":480,"line":2675},[478,4083,743],{"class":550},[478,4085,4086,4089,4091],{"class":480,"line":2690},[478,4087,4088],{"class":490},"  \"author\"",[478,4090,528],{"class":838},[478,4092,4038],{"class":494},[478,4094,4095,4098,4100],{"class":480,"line":2699},[478,4096,4097],{"class":490},"  \"license\"",[478,4099,528],{"class":838},[478,4101,4102],{"class":494}," \"ISC\"\n",[478,4104,4105],{"class":480,"line":2708},[478,4106,1591],{"class":550},[478,4108,4110],{"class":480,"line":4109},28,[478,4111,504],{"emptyLinePlaceholder":328},[478,4113,4115],{"class":480,"line":4114},29,[478,4116,504],{"emptyLinePlaceholder":328},[478,4118,4120,4123,4126,4129],{"class":480,"line":4119},30,[478,4121,4122],{"class":490},"Is",[478,4124,4125],{"class":494}," this",[478,4127,4128],{"class":494}," OK?",[478,4130,4131],{"class":550}," (yes)\n",[16,4133,4134,4135,4138,4139,4142],{},"Jika malas mengisi kita bisa menggunakan ",[20,4136,4137],{},"default value",", hanya tekan enter saja setiap pertanyaan. Namun lebih mudahnya kita bisa menambahkan flag ",[49,4140,4141],{},"-y"," di perintah npm dan kita akan mendapatkan hasil yang sama.",[470,4144,4146],{"className":472,"code":4145,"language":474,"meta":315,"style":315},"$ npm init -y\nwrote to package.json:\n{\n  \"name\": \"test\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n  },\n  \"author\": \"\",\n  \"license\": \"ISC\"\n}\n",[49,4147,4148,4160,4170,4174,4182,4190,4198,4206,4214,4230,4234,4242,4250],{"__ignoreMap":315},[478,4149,4150,4152,4154,4157],{"class":480,"line":481},[478,4151,3304],{"class":490},[478,4153,3833],{"class":494},[478,4155,4156],{"class":494}," init",[478,4158,4159],{"class":838}," -y\n",[478,4161,4162,4165,4167],{"class":480,"line":316},[478,4163,4164],{"class":490},"wrote",[478,4166,3904],{"class":494},[478,4168,4169],{"class":494}," package.json:\n",[478,4171,4172],{"class":480,"line":501},[478,4173,1511],{"class":550},[478,4175,4176,4178,4180],{"class":480,"line":507},[478,4177,4013],{"class":490},[478,4179,528],{"class":838},[478,4181,4018],{"class":494},[478,4183,4184,4186,4188],{"class":480,"line":513},[478,4185,4023],{"class":490},[478,4187,528],{"class":838},[478,4189,4028],{"class":494},[478,4191,4192,4194,4196],{"class":480,"line":640},[478,4193,4033],{"class":490},[478,4195,528],{"class":838},[478,4197,4038],{"class":494},[478,4199,4200,4202,4204],{"class":480,"line":652},[478,4201,4043],{"class":490},[478,4203,528],{"class":838},[478,4205,4048],{"class":494},[478,4207,4208,4210,4212],{"class":480,"line":663},[478,4209,4053],{"class":490},[478,4211,528],{"class":838},[478,4213,4058],{"class":494},[478,4215,4216,4218,4220,4222,4224,4226,4228],{"class":480,"line":674},[478,4217,4063],{"class":490},[478,4219,528],{"class":838},[478,4221,4068],{"class":494},[478,4223,4071],{"class":838},[478,4225,4074],{"class":494},[478,4227,4071],{"class":838},[478,4229,4079],{"class":494},[478,4231,4232],{"class":480,"line":686},[478,4233,743],{"class":550},[478,4235,4236,4238,4240],{"class":480,"line":696},[478,4237,4088],{"class":490},[478,4239,528],{"class":838},[478,4241,4038],{"class":494},[478,4243,4244,4246,4248],{"class":480,"line":706},[478,4245,4097],{"class":490},[478,4247,528],{"class":838},[478,4249,4102],{"class":494},[478,4251,4252],{"class":480,"line":728},[478,4253,1591],{"class":550},[11,4255,4257],{"id":4256},"mengelola-dependency","Mengelola Dependency",[16,4259,4260,4261,4264],{},"Setiap kali membuat program biasanya kita membutuhkan ",[20,4262,4263],{},"third-party library",". Didalam Node JS, tersimpan pada NPM Registry.",[11,4266,4268],{"id":4267},"menginstall-package","Menginstall Package",[16,4270,4271,4272,441,4274,4276,4277,4280,4281,34],{},"Untuk menginstall ",[20,4273,86],{},[20,4275,3801],{}," cukup mudah, hanya dengan mengetikkan ",[49,4278,4279],{},"npm install",". Selesai menjalankannya akan muncul folder ",[20,4282,4283],{},"node_module",[54,4285,4286],{},[57,4287,4288,4289,4305,4308,4309,4312,4313,4315,4316,528,4318,4346,4348,4349,4352,4353,4355,4356],{},"Install package:",[470,4290,4292],{"className":472,"code":4291,"language":474,"meta":315,"style":315},"$ npm install react\n",[49,4293,4294],{"__ignoreMap":315},[478,4295,4296,4298,4300,4302],{"class":480,"line":481},[478,4297,3304],{"class":490},[478,4299,3833],{"class":494},[478,4301,519],{"class":494},[478,4303,4304],{"class":494}," react\n",[4306,4307],"br",{},"Secara default npm akan menginstall ",[20,4310,4311],{},"stable release"," yang terbaru di Registry. Sekarang jika dilihat file ",[20,4314,3718],{},", akan muncul ",[20,4317,3801],{},[470,4319,4321],{"className":1497,"code":4320,"language":1499,"meta":315,"style":315},"\"dependencies\": {\n  \"react\": \"^18.2.0\"\n},\n",[49,4322,4323,4331,4341],{"__ignoreMap":315},[478,4324,4325,4328],{"class":480,"line":481},[478,4326,4327],{"class":494},"\"dependencies\"",[478,4329,4330],{"class":550},": {\n",[478,4332,4333,4336,4338],{"class":480,"line":316},[478,4334,4335],{"class":838},"  \"react\"",[478,4337,835],{"class":550},[478,4339,4340],{"class":494},"\"^18.2.0\"\n",[478,4342,4343],{"class":480,"line":501},[478,4344,4345],{"class":550},"},\n",[4306,4347],{},"Jika ingin meng-",[20,4350,4351],{},"install"," banyak package sekaligus hanya perlu menambahkan ",[20,4354,86],{}," lagi di belakangnya dan jika ingin spesifik versi yang kita mau langsung saja ditulis versinya.",[470,4357,4359],{"className":472,"code":4358,"language":474,"meta":315,"style":315},"$ npm install react@18.0.1\n",[49,4360,4361],{"__ignoreMap":315},[478,4362,4363,4365,4367,4369],{"class":480,"line":481},[478,4364,3304],{"class":490},[478,4366,3833],{"class":494},[478,4368,519],{"class":494},[478,4370,4371],{"class":494}," react@18.0.1\n",[16,4373,4374,4375,4377,4378,34],{},"Ada variasi lain yang bisa digunakan, yaitu dengan menuliskan langsung ",[20,4376,3801],{}," yang diperlukan di ",[20,4379,3718],{},[470,4381,4383],{"className":1497,"code":4382,"language":1499,"meta":315,"style":315},"{\n  \"name\": \"personal-site\",\n  \"version\": \"0.1.0\",\n  \"private\": true,\n  \"scripts\": {\n    \"dev\": \"next dev\",\n    \"build\": \"next build\",\n    \"start\": \"next start\",\n    \"lint\": \"next lint\"\n  },\n  \"dependencies\": {\n    \"@next\u002Ffont\": \"^13.2.4\",\n    \"@tailwindcss\u002Ftypography\": \"^0.5.8\",\n    \"@types\u002Fnode\": \"18.11.17\",\n    \"@types\u002Freact\": \"18.0.26\",\n    \"@types\u002Freact-dom\": \"18.0.9\",\n    \"eslint-config-next\": \"^13.2.4\",\n    \"gray-matter\": \"^4.0.3\",\n    \"next\": \"^13.2.4\",\n    \"next-mdx-remote\": \"^4.2.0\",\n    \"next-themes\": \"^0.2.1\",\n    \"react\": \"^18.2.0\",\n    \"react-dom\": \"^18.2.0\",\n    \"rehype-prism-plus\": \"^1.5.0\",\n    \"remark-gfm\": \"^3.0.1\",\n    \"remark-mdx-code-meta\": \"^2.0.0\",\n    \"typescript\": \"4.9.4\"\n  }\n}\n",[49,4384,4385,4389,4400,4411,4422,4428,4440,4452,4464,4474,4478,4485,4497,4509,4521,4533,4545,4556,4568,4579,4591,4603,4615,4626,4638,4650,4662,4672,4676],{"__ignoreMap":315},[478,4386,4387],{"class":480,"line":481},[478,4388,1511],{"class":550},[478,4390,4391,4393,4395,4398],{"class":480,"line":316},[478,4392,4013],{"class":838},[478,4394,835],{"class":550},[478,4396,4397],{"class":494},"\"personal-site\"",[478,4399,649],{"class":550},[478,4401,4402,4404,4406,4409],{"class":480,"line":501},[478,4403,4023],{"class":838},[478,4405,835],{"class":550},[478,4407,4408],{"class":494},"\"0.1.0\"",[478,4410,649],{"class":550},[478,4412,4413,4416,4418,4420],{"class":480,"line":507},[478,4414,4415],{"class":838},"  \"private\"",[478,4417,835],{"class":550},[478,4419,898],{"class":838},[478,4421,649],{"class":550},[478,4423,4424,4426],{"class":480,"line":513},[478,4425,4053],{"class":838},[478,4427,4330],{"class":550},[478,4429,4430,4433,4435,4438],{"class":480,"line":640},[478,4431,4432],{"class":838},"    \"dev\"",[478,4434,835],{"class":550},[478,4436,4437],{"class":494},"\"next dev\"",[478,4439,649],{"class":550},[478,4441,4442,4445,4447,4450],{"class":480,"line":652},[478,4443,4444],{"class":838},"    \"build\"",[478,4446,835],{"class":550},[478,4448,4449],{"class":494},"\"next build\"",[478,4451,649],{"class":550},[478,4453,4454,4457,4459,4462],{"class":480,"line":663},[478,4455,4456],{"class":838},"    \"start\"",[478,4458,835],{"class":550},[478,4460,4461],{"class":494},"\"next start\"",[478,4463,649],{"class":550},[478,4465,4466,4469,4471],{"class":480,"line":674},[478,4467,4468],{"class":838},"    \"lint\"",[478,4470,835],{"class":550},[478,4472,4473],{"class":494},"\"next lint\"\n",[478,4475,4476],{"class":480,"line":686},[478,4477,743],{"class":550},[478,4479,4480,4483],{"class":480,"line":696},[478,4481,4482],{"class":838},"  \"dependencies\"",[478,4484,4330],{"class":550},[478,4486,4487,4490,4492,4495],{"class":480,"line":706},[478,4488,4489],{"class":838},"    \"@next\u002Ffont\"",[478,4491,835],{"class":550},[478,4493,4494],{"class":494},"\"^13.2.4\"",[478,4496,649],{"class":550},[478,4498,4499,4502,4504,4507],{"class":480,"line":728},[478,4500,4501],{"class":838},"    \"@tailwindcss\u002Ftypography\"",[478,4503,835],{"class":550},[478,4505,4506],{"class":494},"\"^0.5.8\"",[478,4508,649],{"class":550},[478,4510,4511,4514,4516,4519],{"class":480,"line":734},[478,4512,4513],{"class":838},"    \"@types\u002Fnode\"",[478,4515,835],{"class":550},[478,4517,4518],{"class":494},"\"18.11.17\"",[478,4520,649],{"class":550},[478,4522,4523,4526,4528,4531],{"class":480,"line":740},[478,4524,4525],{"class":838},"    \"@types\u002Freact\"",[478,4527,835],{"class":550},[478,4529,4530],{"class":494},"\"18.0.26\"",[478,4532,649],{"class":550},[478,4534,4535,4538,4540,4543],{"class":480,"line":746},[478,4536,4537],{"class":838},"    \"@types\u002Freact-dom\"",[478,4539,835],{"class":550},[478,4541,4542],{"class":494},"\"18.0.9\"",[478,4544,649],{"class":550},[478,4546,4547,4550,4552,4554],{"class":480,"line":2353},[478,4548,4549],{"class":838},"    \"eslint-config-next\"",[478,4551,835],{"class":550},[478,4553,4494],{"class":494},[478,4555,649],{"class":550},[478,4557,4558,4561,4563,4566],{"class":480,"line":2623},[478,4559,4560],{"class":838},"    \"gray-matter\"",[478,4562,835],{"class":550},[478,4564,4565],{"class":494},"\"^4.0.3\"",[478,4567,649],{"class":550},[478,4569,4570,4573,4575,4577],{"class":480,"line":2633},[478,4571,4572],{"class":838},"    \"next\"",[478,4574,835],{"class":550},[478,4576,4494],{"class":494},[478,4578,649],{"class":550},[478,4580,4581,4584,4586,4589],{"class":480,"line":2642},[478,4582,4583],{"class":838},"    \"next-mdx-remote\"",[478,4585,835],{"class":550},[478,4587,4588],{"class":494},"\"^4.2.0\"",[478,4590,649],{"class":550},[478,4592,4593,4596,4598,4601],{"class":480,"line":2651},[478,4594,4595],{"class":838},"    \"next-themes\"",[478,4597,835],{"class":550},[478,4599,4600],{"class":494},"\"^0.2.1\"",[478,4602,649],{"class":550},[478,4604,4605,4608,4610,4613],{"class":480,"line":2660},[478,4606,4607],{"class":838},"    \"react\"",[478,4609,835],{"class":550},[478,4611,4612],{"class":494},"\"^18.2.0\"",[478,4614,649],{"class":550},[478,4616,4617,4620,4622,4624],{"class":480,"line":2665},[478,4618,4619],{"class":838},"    \"react-dom\"",[478,4621,835],{"class":550},[478,4623,4612],{"class":494},[478,4625,649],{"class":550},[478,4627,4628,4631,4633,4636],{"class":480,"line":2675},[478,4629,4630],{"class":838},"    \"rehype-prism-plus\"",[478,4632,835],{"class":550},[478,4634,4635],{"class":494},"\"^1.5.0\"",[478,4637,649],{"class":550},[478,4639,4640,4643,4645,4648],{"class":480,"line":2690},[478,4641,4642],{"class":838},"    \"remark-gfm\"",[478,4644,835],{"class":550},[478,4646,4647],{"class":494},"\"^3.0.1\"",[478,4649,649],{"class":550},[478,4651,4652,4655,4657,4660],{"class":480,"line":2699},[478,4653,4654],{"class":838},"    \"remark-mdx-code-meta\"",[478,4656,835],{"class":550},[478,4658,4659],{"class":494},"\"^2.0.0\"",[478,4661,649],{"class":550},[478,4663,4664,4667,4669],{"class":480,"line":2708},[478,4665,4666],{"class":838},"    \"typescript\"",[478,4668,835],{"class":550},[478,4670,4671],{"class":494},"\"4.9.4\"\n",[478,4673,4674],{"class":480,"line":4109},[478,4675,3546],{"class":550},[478,4677,4678],{"class":480,"line":4114},[478,4679,1591],{"class":550},[16,4681,4682,4683,4685,4686,34],{},"kemudian tinggal menjalankan perintah install, lalu npm akan meng-",[20,4684,4351],{}," semua yang tertulis di ",[20,4687,4688],{},"dependencies",[470,4690,4692],{"className":472,"code":4691,"language":474,"meta":315,"style":315},"$ npm install\n",[49,4693,4694],{"__ignoreMap":315},[478,4695,4696,4698,4700],{"class":480,"line":481},[478,4697,3304],{"class":490},[478,4699,3833],{"class":494},[478,4701,4702],{"class":494}," install\n",[11,4704,4706],{"id":4705},"mengelola-versi","Mengelola Versi",[16,4708,4709,4710,4715,4716,1466,4718,4720,4721,34],{},"Versi didalam NodeJS terintegrasi dengan ",[28,4711,4714],{"href":4712,"rel":4713},"https:\u002F\u002Fsemver.org\u002F",[32],"Semver",". Kita bisa dengan spesifik menuliskan apa yang kita mau kedalam ",[20,4717,4688],{},[20,4719,3718],{},". Jika bingung kita bisa gunakan ",[28,4722,4725],{"href":4723,"rel":4724},"https:\u002F\u002Fsemver.npmjs.com\u002F",[32],"kalkulator Semver NPM",[11,4727,4729],{"id":4728},"melihat-versi-dependency","Melihat Versi Dependency",[16,4731,4732,4733,4736,4737,4740,4741,34],{},"Mungkin kita bekerja pada ",[20,4734,4735],{},"legacy project"," dan banyak sekali dependency yang harus di-",[20,4738,4739],{},"update",". Kita bisa dengan sederhana mengetikkan sebuah perintah yang secara otomatis menampilkan versi mengenai ",[20,4742,3801],{},[470,4744,4746],{"className":472,"code":4745,"language":474,"meta":315,"style":315},"$ npm outdated\n",[49,4747,4748],{"__ignoreMap":315},[478,4749,4750,4752,4754],{"class":480,"line":481},[478,4751,3304],{"class":490},[478,4753,3833],{"class":494},[478,4755,4756],{"class":494}," outdated\n",[16,4758,4759,4760,4762,4763,4765,4766,4769],{},"Untuk meng-",[20,4761,4739],{}," semua ",[20,4764,3801],{}," sesuai ",[20,4767,4768],{},"Wanted version"," bisa dengan perintah:",[470,4771,4773],{"className":472,"code":4772,"language":474,"meta":315,"style":315},"$ npm update\n",[49,4774,4775],{"__ignoreMap":315},[478,4776,4777,4779,4781],{"class":480,"line":481},[478,4778,3304],{"class":490},[478,4780,3833],{"class":494},[478,4782,4783],{"class":494}," update\n",[16,4785,4786,4787,528],{},"Atau ingin hanya beberapa ",[20,4788,3801],{},[470,4790,4792],{"className":472,"code":4791,"language":474,"meta":315,"style":315},"$ npm update next\n",[49,4793,4794],{"__ignoreMap":315},[478,4795,4796,4798,4800,4803],{"class":480,"line":481},[478,4797,3304],{"class":490},[478,4799,3833],{"class":494},[478,4801,4802],{"class":494}," update",[478,4804,4805],{"class":494}," next\n",[16,4807,4808,4809,4811,4812,4815],{},"Sudah biasa bagi kita untuk berpindah-pindah versi dengan alasan tertentu. Melakukannya di NPM cukup mudah yaitu meng-",[20,4810,4351],{}," dengan versi yang diinginkan. Seperti contoh kita ingin ",[169,4813,4814],{},"downgrade"," package:",[470,4817,4819],{"className":472,"code":4818,"language":474,"meta":315,"style":315},"$ npm install next@^12.0.0\n",[49,4820,4821],{"__ignoreMap":315},[478,4822,4823,4825,4827,4829],{"class":480,"line":481},[478,4824,3304],{"class":490},[478,4826,3833],{"class":494},[478,4828,519],{"class":494},[478,4830,4831],{"class":494}," next@^12.0.0\n",[16,4833,4834,4835,4837,4838,182,4841,1466,4844,4846,4847,4850],{},"Jika sebelumnya di ",[20,4836,3718],{}," kita terdapat ",[20,4839,4840],{},"next",[20,4842,4843],{},"latest",[20,4845,3738],{}," akan otomatis ",[20,4848,4849],{},"replace"," dengan versi yang kita inginkan",[16,4852,4853],{},"Terimakasih sudah membaca!\n~ Ann",[2853,4855,4856],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":315,"searchDepth":316,"depth":316,"links":4858},[4859,4860,4861,4862,4863,4864,4865],{"id":3722,"depth":316,"text":3723},{"id":3749,"depth":316,"text":3750},{"id":3813,"depth":316,"text":3814},{"id":4256,"depth":316,"text":4257},{"id":4267,"depth":316,"text":4268},{"id":4705,"depth":316,"text":4706},{"id":4728,"depth":316,"text":4729},"2023-05-14","Belajar Dependency Management di NodeJS dengan NPM",{},"\u002Fblog\u002Fnodejs-dependency-management",{"title":3710,"description":4867},"blog\u002Fnodejs-dependency-management",[4873,2880],"Node","TwhXrzVYVZuscSDOgQyW0im0JzpigJnjr0pbzsEZdOw",{"id":4876,"title":4877,"body":4878,"date":6200,"description":6201,"extension":326,"meta":6202,"navigation":328,"path":6203,"seo":6204,"stem":6205,"tags":6206,"__hash__":6207},"blog\u002Fblog\u002Fnext-js-13.md","NextJS 13",{"type":8,"value":4879,"toc":6195},[4880,4885,4912,4915,4954,4971,4974,5292,5308,5311,5341,5344,5388,5410,5414,5437,5584,5611,5614,5678,5686,5826,5843,6001,6005,6027,6086,6102,6162,6187,6192],[387,4881,4882],{},[16,4883,4884],{},"Dynamic without limit",[16,4886,4887,4891,4892,4897,4898,4901,4902,229,4905,260,4908,4911],{},[28,4888,3091],{"href":4889,"rel":4890},"https:\u002F\u002Fvercel.com",[32]," telah merilis NextJS versi 13 pada saat konferensi ",[28,4893,4896],{"href":4894,"rel":4895},"https:\u002F\u002Fnextjs.org\u002Fconf",[32],"Next.js Conf"," di San Francisco, 25 Oktober 2022. Beberapa update yang menarik diantaranya ",[49,4899,4900],{},"app"," directory, perubahan ",[49,4903,4904],{},"data fetching",[49,4906,4907],{},"server",[49,4909,4910],{},"client"," components, serta hal lainnya. Namun NextJS versi 12 masih bisa digunakan dan setidaknya kita tidak perlu me-rewrite 10k+ baris code untuk sementara waktu.",[11,4913,4914],{"id":450},"Routing",[16,4916,4917,4918,4923,4924,3284,4927,4930,4931,4934,4935,4938,4939,4942,4943,4945,4946,4949,4950,4953],{},"Untuk dokumentasi bisa dibaca di ",[28,4919,4922],{"href":4920,"rel":4921},"https:\u002F\u002Fbeta.nextjs.org\u002Fdocs\u002Frouting\u002Ffundamentals",[32],"Routing Fundamentals",". Di NextJS 12 kita mendefinisikan ",[20,4925,4926],{},"route",[49,4928,4929],{},"pages"," directory. Halaman ",[49,4932,4933],{},"index.js"," sudah menjadi ",[49,4936,4937],{},"\u002F"," atau root. Jika ingin membuat route, contoh: ",[49,4940,4941],{},"\u002Fabout","; kita hanya perlu membuat file baru di ",[49,4944,4929],{}," dengan nama file ",[49,4947,4948],{},"about.js"," dan diisi dengan ",[20,4951,4952],{},"components"," biasa.",[16,4955,4956,4957,4959,4960,4963,4964,4967,4968,4970],{},"NextJS 13, memperkenalkan ",[49,4958,4900],{}," directory, struktur baru yang membuat ",[20,4961,4962],{},"project"," lebih terorganisir. Alih-alih menggunakan ",[49,4965,4966],{},"page",", route kita berada di ",[49,4969,4900],{}," directory.",[16,4972,4973],{},"Saya akan menjelaskan fungsi ketiga file tersebut:",[54,4975,4976,5107,5207],{},[57,4977,4978,4982,4983,4986,4987,4990,4991,4994,4995],{},[60,4979,4981],{"id":4980},"headjs","head.js","Seperti namanya, file ini digunakan untuk mendefinisikan tag ",[49,4984,4985],{},"head"," html. Kita bisa memasukkan cdn, title, favico, meta, dan lain-lain dengan ",[20,4988,4989],{},"return"," harus react fragment ",[49,4992,4993],{},"\u003C\u002F>",". Isi file kurang lebih seperti ini.",[470,4996,5000],{"className":4997,"code":4998,"language":4999,"meta":315,"style":315},"language-js shiki shiki-themes github-light github-dark","export default function head() {\n  return (\n    \u003C>\n      \u003Cmeta charSet=\"UTF-8\" \u002F>\n      \u003Clink rel=\"shortcut icon\" href=\"\u002Ficon.png\" type=\"image\u002Fx-icon\" \u002F>\n      \u003Ctitle>Posts\u003C\u002Ftitle>\n    \u003C\u002F>\n  );\n}\n","js",[49,5001,5002,5017,5025,5030,5047,5080,5093,5098,5103],{"__ignoreMap":315},[478,5003,5004,5006,5008,5011,5014],{"class":480,"line":481},[478,5005,541],{"class":540},[478,5007,544],{"class":540},[478,5009,5010],{"class":540}," function",[478,5012,5013],{"class":490}," head",[478,5015,5016],{"class":550},"() {\n",[478,5018,5019,5022],{"class":480,"line":316},[478,5020,5021],{"class":540},"  return",[478,5023,5024],{"class":550}," (\n",[478,5026,5027],{"class":480,"line":501},[478,5028,5029],{"class":550},"    \u003C>\n",[478,5031,5032,5034,5037,5040,5042,5045],{"class":480,"line":507},[478,5033,1340],{"class":550},[478,5035,5036],{"class":804},"meta",[478,5038,5039],{"class":490}," charSet",[478,5041,814],{"class":540},[478,5043,5044],{"class":494},"\"UTF-8\"",[478,5046,1177],{"class":550},[478,5048,5049,5051,5054,5057,5059,5062,5065,5067,5070,5073,5075,5078],{"class":480,"line":513},[478,5050,1340],{"class":550},[478,5052,5053],{"class":804},"link",[478,5055,5056],{"class":490}," rel",[478,5058,814],{"class":540},[478,5060,5061],{"class":494},"\"shortcut icon\"",[478,5063,5064],{"class":490}," href",[478,5066,814],{"class":540},[478,5068,5069],{"class":494},"\"\u002Ficon.png\"",[478,5071,5072],{"class":490}," type",[478,5074,814],{"class":540},[478,5076,5077],{"class":494},"\"image\u002Fx-icon\"",[478,5079,1177],{"class":550},[478,5081,5082,5084,5086,5089,5091],{"class":480,"line":640},[478,5083,1340],{"class":550},[478,5085,228],{"class":804},[478,5087,5088],{"class":550},">Posts\u003C\u002F",[478,5090,228],{"class":804},[478,5092,820],{"class":550},[478,5094,5095],{"class":480,"line":652},[478,5096,5097],{"class":550},"    \u003C\u002F>\n",[478,5099,5100],{"class":480,"line":663},[478,5101,5102],{"class":550},"  );\n",[478,5104,5105],{"class":480,"line":674},[478,5106,1591],{"class":550},[57,5108,5109,5113,5114,5116,5117,5119,5120,5123,5124,5126,5127,5130,5131],{},[60,5110,5112],{"id":5111},"layoutjs","layout.js","Pada ",[49,5115,4900],{}," directory, kita wajib membuat file ",[49,5118,5112],{}," sebagai root dari ",[20,5121,5122],{},"react components",". Berisi tag html dan body sebagai tempat ",[20,5125,4952],{}," akan di-",[20,5128,5129],{},"mount"," nanti.",[470,5132,5134],{"className":4997,"code":5133,"language":4999,"meta":315,"style":315},"export default function RootLayout({ children }) {\n  return (\n    \u003Chtml lang=\"en\">\n      \u003Cbody>{children}\u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  );\n}\n",[49,5135,5136,5156,5162,5178,5191,5199,5203],{"__ignoreMap":315},[478,5137,5138,5140,5142,5144,5147,5150,5153],{"class":480,"line":481},[478,5139,541],{"class":540},[478,5141,544],{"class":540},[478,5143,5010],{"class":540},[478,5145,5146],{"class":490}," RootLayout",[478,5148,5149],{"class":550},"({ ",[478,5151,5152],{"class":831},"children",[478,5154,5155],{"class":550}," }) {\n",[478,5157,5158,5160],{"class":480,"line":316},[478,5159,5021],{"class":540},[478,5161,5024],{"class":550},[478,5163,5164,5166,5169,5171,5173,5176],{"class":480,"line":501},[478,5165,986],{"class":550},[478,5167,5168],{"class":804},"html",[478,5170,811],{"class":490},[478,5172,814],{"class":540},[478,5174,5175],{"class":494},"\"en\"",[478,5177,820],{"class":550},[478,5179,5180,5182,5184,5187,5189],{"class":480,"line":507},[478,5181,1340],{"class":550},[478,5183,761],{"class":804},[478,5185,5186],{"class":550},">{children}\u003C\u002F",[478,5188,761],{"class":804},[478,5190,820],{"class":550},[478,5192,5193,5195,5197],{"class":480,"line":513},[478,5194,1432],{"class":550},[478,5196,5168],{"class":804},[478,5198,820],{"class":550},[478,5200,5201],{"class":480,"line":640},[478,5202,5102],{"class":550},[478,5204,5205],{"class":480,"line":652},[478,5206,1591],{"class":550},[57,5208,5209,5213,5214,441,5217,5220,5221,441,5224,5227,5228,34,5230],{},[60,5210,5212],{"id":5211},"pagejs","page.js","File yang berisi ",[49,5215,5216],{},"jsx",[20,5218,5219],{},"react component",". Jika kita punya halaman ",[20,5222,5223],{},"landing page",[20,5225,5226],{},"about page"," maka di sini-lah tempat kita menuliskan ",[49,5229,5168],{},[470,5231,5233],{"className":4997,"code":5232,"language":4999,"meta":315,"style":315},"export default function page() {\n  return (\n    \u003Cdiv>\n      \u003Ch1>Hello World\u003C\u002Fh1>\n    \u003C\u002Fdiv>\n  );\n}\n",[49,5234,5235,5248,5254,5262,5276,5284,5288],{"__ignoreMap":315},[478,5236,5237,5239,5241,5243,5246],{"class":480,"line":481},[478,5238,541],{"class":540},[478,5240,544],{"class":540},[478,5242,5010],{"class":540},[478,5244,5245],{"class":490}," page",[478,5247,5016],{"class":550},[478,5249,5250,5252],{"class":480,"line":316},[478,5251,5021],{"class":540},[478,5253,5024],{"class":550},[478,5255,5256,5258,5260],{"class":480,"line":501},[478,5257,986],{"class":550},[478,5259,1810],{"class":804},[478,5261,820],{"class":550},[478,5263,5264,5266,5269,5272,5274],{"class":480,"line":507},[478,5265,1340],{"class":550},[478,5267,5268],{"class":804},"h1",[478,5270,5271],{"class":550},">Hello World\u003C\u002F",[478,5273,5268],{"class":804},[478,5275,820],{"class":550},[478,5277,5278,5280,5282],{"class":480,"line":513},[478,5279,1432],{"class":550},[478,5281,1810],{"class":804},[478,5283,820],{"class":550},[478,5285,5286],{"class":480,"line":640},[478,5287,5102],{"class":550},[478,5289,5290],{"class":480,"line":652},[478,5291,1591],{"class":550},[16,5293,5294,5295,5298,5299,260,5301,5303,5304,5307],{},"Bagaimana dengan ",[20,5296,5297],{},"nested route","? mari lihat perbandingan ",[49,5300,4929],{},[49,5302,4900],{}," dengan studi kasus kita membuat route ",[49,5305,5306],{},"\u002Fproducts\u002F{id}",". {id} karena akan berisi id yang berbeda tiap produk.",[16,5309,5310],{},"NextJS 12:",[470,5312,5314],{"className":4997,"code":5313,"language":4999,"meta":315,"style":315},"\u002F\u002F 12\npages\n├── index.js\n└── products\n    └── [id].js\n",[49,5315,5316,5321,5326,5331,5336],{"__ignoreMap":315},[478,5317,5318],{"class":480,"line":481},[478,5319,5320],{"class":484},"\u002F\u002F 12\n",[478,5322,5323],{"class":480,"line":316},[478,5324,5325],{"class":550},"pages\n",[478,5327,5328],{"class":480,"line":501},[478,5329,5330],{"class":550},"├── index.js\n",[478,5332,5333],{"class":480,"line":507},[478,5334,5335],{"class":550},"└── products\n",[478,5337,5338],{"class":480,"line":513},[478,5339,5340],{"class":550},"    └── [id].js\n",[16,5342,5343],{},"NextJS 13:",[470,5345,5347],{"className":4997,"code":5346,"language":4999,"meta":315,"style":315},"\u002F\u002F 13\napp\n├── head.js\n├── layout.js\n├── page.js\n└── products\n    └── [id]\n        └── page.js\n",[49,5348,5349,5354,5359,5364,5369,5374,5378,5383],{"__ignoreMap":315},[478,5350,5351],{"class":480,"line":481},[478,5352,5353],{"class":484},"\u002F\u002F 13\n",[478,5355,5356],{"class":480,"line":316},[478,5357,5358],{"class":550},"app\n",[478,5360,5361],{"class":480,"line":501},[478,5362,5363],{"class":550},"├── head.js\n",[478,5365,5366],{"class":480,"line":507},[478,5367,5368],{"class":550},"├── layout.js\n",[478,5370,5371],{"class":480,"line":513},[478,5372,5373],{"class":550},"├── page.js\n",[478,5375,5376],{"class":480,"line":640},[478,5377,5335],{"class":550},[478,5379,5380],{"class":480,"line":652},[478,5381,5382],{"class":550},"    └── [id]\n",[478,5384,5385],{"class":480,"line":663},[478,5386,5387],{"class":550},"        └── page.js\n",[16,5389,5390,5391,5393,5394,1466,5397,260,5400,1466,5403,5406,5407,34],{},"Ada beberapa keuntungan ",[49,5392,4900],{}," seperti kita bisa melakukan ",[20,5395,5396],{},"Loading UI",[49,5398,5399],{},"loading.js",[20,5401,5402],{},"Error Handling",[49,5404,5405],{},"error.js",". Selengkapnya bisa dibaca di ",[28,5408,4922],{"href":4920,"rel":5409},[32],[11,5411,5413],{"id":5412},"data-fetching","Data Fetching",[16,5415,5416,5419,5420,5423,5424,5427,5428,34],{},[49,5417,5418],{},"fetching data"," di NextJS 13 sangat sederhana kita hanya perlu membuat ",[49,5421,5422],{},"function"," lalu memanggilnya langsung seperti ",[20,5425,5426],{},"native",". Namun, sebelumnya kita perlu paham tentang ",[28,5429,5432,260,5434,5436],{"href":5430,"rel":5431},"https:\u002F\u002Fbeta.nextjs.org\u002Fdocs\u002Frendering\u002Ffundamentals",[32],[49,5433,4910],{},[49,5435,4907],{}," components",[470,5438,5440],{"className":4997,"code":5439,"language":4999,"meta":315,"style":315},"async function fetchData() {\n  const options = {\n    cache: 'force-cache', \u002F\u002F default\n          \u002F\u002F 'no-store'\n  }\n\n  const res = await fetch('https:\u002F\u002F...', options);\n  return res.json();\n}\n\nasync function page() {\n  const data = await fetchData();\n  return (\n    {\u002F*processing data*\u002F}\n  )\n}\n",[49,5441,5442,5454,5466,5479,5484,5488,5492,5514,5526,5530,5534,5544,5559,5565,5575,5580],{"__ignoreMap":315},[478,5443,5444,5447,5449,5452],{"class":480,"line":481},[478,5445,5446],{"class":540},"async",[478,5448,5010],{"class":540},[478,5450,5451],{"class":490}," fetchData",[478,5453,5016],{"class":550},[478,5455,5456,5459,5462,5464],{"class":480,"line":316},[478,5457,5458],{"class":540},"  const",[478,5460,5461],{"class":838}," options",[478,5463,1082],{"class":540},[478,5465,4058],{"class":550},[478,5467,5468,5471,5474,5476],{"class":480,"line":501},[478,5469,5470],{"class":550},"    cache: ",[478,5472,5473],{"class":494},"'force-cache'",[478,5475,229],{"class":550},[478,5477,5478],{"class":484},"\u002F\u002F default\n",[478,5480,5481],{"class":480,"line":507},[478,5482,5483],{"class":484},"          \u002F\u002F 'no-store'\n",[478,5485,5486],{"class":480,"line":513},[478,5487,3546],{"class":550},[478,5489,5490],{"class":480,"line":640},[478,5491,504],{"emptyLinePlaceholder":328},[478,5493,5494,5496,5499,5501,5503,5506,5508,5511],{"class":480,"line":652},[478,5495,5458],{"class":540},[478,5497,5498],{"class":838}," res",[478,5500,1082],{"class":540},[478,5502,847],{"class":540},[478,5504,5505],{"class":490}," fetch",[478,5507,853],{"class":550},[478,5509,5510],{"class":494},"'https:\u002F\u002F...'",[478,5512,5513],{"class":550},", options);\n",[478,5515,5516,5518,5521,5523],{"class":480,"line":663},[478,5517,5021],{"class":540},[478,5519,5520],{"class":550}," res.",[478,5522,1499],{"class":490},[478,5524,5525],{"class":550},"();\n",[478,5527,5528],{"class":480,"line":674},[478,5529,1591],{"class":550},[478,5531,5532],{"class":480,"line":686},[478,5533,504],{"emptyLinePlaceholder":328},[478,5535,5536,5538,5540,5542],{"class":480,"line":696},[478,5537,5446],{"class":540},[478,5539,5010],{"class":540},[478,5541,5245],{"class":490},[478,5543,5016],{"class":550},[478,5545,5546,5548,5551,5553,5555,5557],{"class":480,"line":706},[478,5547,5458],{"class":540},[478,5549,5550],{"class":838}," data",[478,5552,1082],{"class":540},[478,5554,847],{"class":540},[478,5556,5451],{"class":490},[478,5558,5525],{"class":550},[478,5560,5561,5563],{"class":480,"line":728},[478,5562,5021],{"class":540},[478,5564,5024],{"class":550},[478,5566,5567,5570,5573],{"class":480,"line":734},[478,5568,5569],{"class":550},"    {",[478,5571,5572],{"class":484},"\u002F*processing data*\u002F",[478,5574,1591],{"class":550},[478,5576,5577],{"class":480,"line":740},[478,5578,5579],{"class":550},"  )\n",[478,5581,5582],{"class":480,"line":746},[478,5583,1591],{"class":550},[54,5585,5586,5598],{},[57,5587,5588,5591,5592,5594,5595,34],{},[49,5589,5590],{},"force-cache"," hanya akan dijalankan ketika di-",[20,5593,2996],{}," atau mekanisme ini mirip seperti ",[49,5596,5597],{},"getStaticProps",[57,5599,5600,5603,5604,5607,5608,34],{},[49,5601,5602],{},"no-store"," dijalankan setiap ",[20,5605,5606],{},"request",". mirip seperti ",[49,5609,5610],{},"getServerSideProps",[16,5612,5613],{},"ada 1 lagi, yaitu:",[54,5615,5616],{},[57,5617,5618,5621,5622,260,5624,5627,5628,5631,5632,5634,5635,5637,5638,5640,5641,34,5644],{},[49,5619,5620],{},"revalidate",". Kombinasi ",[49,5623,2968],{},[49,5625,5626],{},"SSR",", ketika kita ingin ",[49,5629,5630],{},"fetch"," saat ",[20,5633,2996],{}," dan pada kondisi tertentu halaman akan re ",[49,5636,5630],{}," pada proses request ",[49,5639,5626],{},", bukan di client ",[49,5642,5643],{},"CSR",[470,5645,5647],{"className":4997,"code":5646,"language":4999,"meta":315,"style":315},"const options = {\n  next: { revalidate: 10 }, \u002F\u002F pada SSR akan refetch setiap 10 detik\n};\n",[49,5648,5649,5659,5673],{"__ignoreMap":315},[478,5650,5651,5653,5655,5657],{"class":480,"line":481},[478,5652,825],{"class":540},[478,5654,5461],{"class":838},[478,5656,1082],{"class":540},[478,5658,4058],{"class":550},[478,5660,5661,5664,5667,5670],{"class":480,"line":316},[478,5662,5663],{"class":550},"  next: { revalidate: ",[478,5665,5666],{"class":838},"10",[478,5668,5669],{"class":550}," }, ",[478,5671,5672],{"class":484},"\u002F\u002F pada SSR akan refetch setiap 10 detik\n",[478,5674,5675],{"class":480,"line":501},[478,5676,5677],{"class":550},"};\n",[16,5679,5680,5681,350,5683,5685],{},"Dikarenakan ",[49,5682,5212],{},[49,5684,4907],{}," component by default, jadi kita bisa mengakses langsung database.",[470,5687,5689],{"className":4997,"code":5688,"language":4999,"meta":315,"style":315},"export const revalidate = 3600; \u002F\u002F jika ingin revalidate\n\nasync function getAllUsers() {\n  const user: User[] = await primsa.user.findMany();\n  return user;\n}\n\nasync function page() {\n  const users: User[] = await getAllUsers();\n\n  return (\n    {\u002F*processing data*\u002F}\n  )\n}\n",[49,5690,5691,5712,5716,5727,5754,5761,5765,5769,5779,5800,5804,5810,5818,5822],{"__ignoreMap":315},[478,5692,5693,5695,5698,5701,5703,5706,5709],{"class":480,"line":481},[478,5694,541],{"class":540},[478,5696,5697],{"class":540}," const",[478,5699,5700],{"class":838}," revalidate",[478,5702,1082],{"class":540},[478,5704,5705],{"class":838}," 3600",[478,5707,5708],{"class":550},"; ",[478,5710,5711],{"class":484},"\u002F\u002F jika ingin revalidate\n",[478,5713,5714],{"class":480,"line":316},[478,5715,504],{"emptyLinePlaceholder":328},[478,5717,5718,5720,5722,5725],{"class":480,"line":501},[478,5719,5446],{"class":540},[478,5721,5010],{"class":540},[478,5723,5724],{"class":490}," getAllUsers",[478,5726,5016],{"class":550},[478,5728,5729,5731,5734,5736,5739,5742,5744,5746,5749,5752],{"class":480,"line":507},[478,5730,5458],{"class":540},[478,5732,5733],{"class":838}," user",[478,5735,528],{"class":540},[478,5737,5738],{"class":490}," User",[478,5740,5741],{"class":550},"[] ",[478,5743,814],{"class":540},[478,5745,847],{"class":540},[478,5747,5748],{"class":550}," primsa.user.",[478,5750,5751],{"class":490},"findMany",[478,5753,5525],{"class":550},[478,5755,5756,5758],{"class":480,"line":513},[478,5757,5021],{"class":540},[478,5759,5760],{"class":550}," user;\n",[478,5762,5763],{"class":480,"line":640},[478,5764,1591],{"class":550},[478,5766,5767],{"class":480,"line":652},[478,5768,504],{"emptyLinePlaceholder":328},[478,5770,5771,5773,5775,5777],{"class":480,"line":663},[478,5772,5446],{"class":540},[478,5774,5010],{"class":540},[478,5776,5245],{"class":490},[478,5778,5016],{"class":550},[478,5780,5781,5783,5786,5788,5790,5792,5794,5796,5798],{"class":480,"line":674},[478,5782,5458],{"class":540},[478,5784,5785],{"class":838}," users",[478,5787,528],{"class":540},[478,5789,5738],{"class":490},[478,5791,5741],{"class":550},[478,5793,814],{"class":540},[478,5795,847],{"class":540},[478,5797,5724],{"class":490},[478,5799,5525],{"class":550},[478,5801,5802],{"class":480,"line":686},[478,5803,504],{"emptyLinePlaceholder":328},[478,5805,5806,5808],{"class":480,"line":696},[478,5807,5021],{"class":540},[478,5809,5024],{"class":550},[478,5811,5812,5814,5816],{"class":480,"line":706},[478,5813,5569],{"class":550},[478,5815,5572],{"class":484},[478,5817,1591],{"class":550},[478,5819,5820],{"class":480,"line":728},[478,5821,5579],{"class":550},[478,5823,5824],{"class":480,"line":734},[478,5825,1591],{"class":550},[16,5827,5828,5829,5832,5833,5835,5836,5839,5840,34],{},"Jika kita mempunyai ",[49,5830,5831],{},"dynamic"," route dan ingin men-",[20,5834,2946],{}," HTML ketika di build, kita bisa menggunakan ",[49,5837,5838],{},"generateStaticParams",". Di versi sebelumnya, proses ini mirip seperti ",[49,5841,5842],{},"getStaticPaths",[470,5844,5846],{"className":4997,"code":5845,"language":4999,"meta":315,"style":315},"\u002F\u002F app\u002Fblog\u002F[articleSlug]\u002Fpage.js\nexport default function Page({ params }) {\n  const { articleSlug } = params;\n\n  return ...\n}\n\nexport async function generateStaticParams() {\n  const posts: Post[] = await getPosts();\n\n  const params  = posts.map((post) => ({\n    articleSlug: post.slug,\n  }));\n\n  return params\n}\n",[49,5847,5848,5853,5871,5887,5891,5898,5902,5906,5920,5942,5946,5976,5981,5986,5990,5997],{"__ignoreMap":315},[478,5849,5850],{"class":480,"line":481},[478,5851,5852],{"class":484},"\u002F\u002F app\u002Fblog\u002F[articleSlug]\u002Fpage.js\n",[478,5854,5855,5857,5859,5861,5864,5866,5869],{"class":480,"line":316},[478,5856,541],{"class":540},[478,5858,544],{"class":540},[478,5860,5010],{"class":540},[478,5862,5863],{"class":490}," Page",[478,5865,5149],{"class":550},[478,5867,5868],{"class":831},"params",[478,5870,5155],{"class":550},[478,5872,5873,5875,5877,5880,5882,5884],{"class":480,"line":501},[478,5874,5458],{"class":540},[478,5876,828],{"class":550},[478,5878,5879],{"class":838},"articleSlug",[478,5881,842],{"class":550},[478,5883,814],{"class":540},[478,5885,5886],{"class":550}," params;\n",[478,5888,5889],{"class":480,"line":507},[478,5890,504],{"emptyLinePlaceholder":328},[478,5892,5893,5895],{"class":480,"line":513},[478,5894,5021],{"class":540},[478,5896,5897],{"class":540}," ...\n",[478,5899,5900],{"class":480,"line":640},[478,5901,1591],{"class":550},[478,5903,5904],{"class":480,"line":652},[478,5905,504],{"emptyLinePlaceholder":328},[478,5907,5908,5910,5913,5915,5918],{"class":480,"line":663},[478,5909,541],{"class":540},[478,5911,5912],{"class":540}," async",[478,5914,5010],{"class":540},[478,5916,5917],{"class":490}," generateStaticParams",[478,5919,5016],{"class":550},[478,5921,5922,5924,5926,5928,5931,5933,5935,5937,5940],{"class":480,"line":674},[478,5923,5458],{"class":540},[478,5925,2144],{"class":838},[478,5927,528],{"class":540},[478,5929,5930],{"class":490}," Post",[478,5932,5741],{"class":550},[478,5934,814],{"class":540},[478,5936,847],{"class":540},[478,5938,5939],{"class":490}," getPosts",[478,5941,5525],{"class":550},[478,5943,5944],{"class":480,"line":686},[478,5945,504],{"emptyLinePlaceholder":328},[478,5947,5948,5950,5953,5956,5959,5962,5965,5967,5970,5973],{"class":480,"line":696},[478,5949,5458],{"class":540},[478,5951,5952],{"class":838}," params",[478,5954,5955],{"class":540},"  =",[478,5957,5958],{"class":550}," posts.",[478,5960,5961],{"class":490},"map",[478,5963,5964],{"class":550},"((",[478,5966,1100],{"class":831},[478,5968,5969],{"class":550},") ",[478,5971,5972],{"class":540},"=>",[478,5974,5975],{"class":550}," ({\n",[478,5977,5978],{"class":480,"line":706},[478,5979,5980],{"class":550},"    articleSlug: post.slug,\n",[478,5982,5983],{"class":480,"line":728},[478,5984,5985],{"class":550},"  }));\n",[478,5987,5988],{"class":480,"line":734},[478,5989,504],{"emptyLinePlaceholder":328},[478,5991,5992,5994],{"class":480,"line":740},[478,5993,5021],{"class":540},[478,5995,5996],{"class":550}," params\n",[478,5998,5999],{"class":480,"line":746},[478,6000,1591],{"class":550},[11,6002,6004],{"id":6003},"nextfont","@next\u002Ffont",[16,6006,6007,6008,229,6011,6014,6015,260,6018,6021,6022,3247,6024,34],{},"Font system baru NextJS memiliki banyak keuntungan, seperti optimasi, ",[20,6009,6010],{},"remove external request",[20,6012,6013],{},"self hosting font",", dan yang lainnya. Fitur yang saya suka kita bisa menggunakan Google Fonts dengan performa dan privasi. ",[20,6016,6017],{},"CSS",[20,6019,6020],{},"file font"," akan didownload ketika ",[20,6023,2996],{},[169,6025,6026],{},"No requests are sent to Google by the browser",[470,6028,6030],{"className":4997,"code":6029,"language":4999,"meta":315,"style":315},"import { Roboto } from '@next\u002Ffont\u002Fgoogle';\nconst roboto = Roboto({ weight: '700' });\n\n\u003Ch1 className={roboto.className}>\n",[49,6031,6032,6047,6068,6072],{"__ignoreMap":315},[478,6033,6034,6036,6039,6041,6044],{"class":480,"line":481},[478,6035,245],{"class":540},[478,6037,6038],{"class":550}," { Roboto } ",[478,6040,604],{"class":540},[478,6042,6043],{"class":494}," '@next\u002Ffont\u002Fgoogle'",[478,6045,6046],{"class":550},";\n",[478,6048,6049,6051,6054,6056,6059,6062,6065],{"class":480,"line":316},[478,6050,825],{"class":540},[478,6052,6053],{"class":838}," roboto",[478,6055,1082],{"class":540},[478,6057,6058],{"class":490}," Roboto",[478,6060,6061],{"class":550},"({ weight: ",[478,6063,6064],{"class":494},"'700'",[478,6066,6067],{"class":550}," });\n",[478,6069,6070],{"class":480,"line":501},[478,6071,504],{"emptyLinePlaceholder":328},[478,6073,6074,6076,6078,6081,6083],{"class":480,"line":507},[478,6075,801],{"class":550},[478,6077,5268],{"class":804},[478,6079,6080],{"class":490}," className",[478,6082,814],{"class":540},[478,6084,6085],{"class":550},"{roboto.className}>\n",[16,6087,6088,6089,6092,6093,229,6096,405,6099,34],{},"Atau jika kita ada ",[20,6090,6091],{},"custom fonts",", NextJS sudah mensuport ",[20,6094,6095],{},"self hosting",[20,6097,6098],{},"caching",[20,6100,6101],{},"preloading font files",[470,6103,6105],{"className":4997,"code":6104,"language":4999,"meta":315,"style":315},"import localFont from '@next\u002Ffont\u002Flocal';\n\nconst aksara = localFont({ src: '.\u002Faksara.woff2' });\n\n\u003Chtml className={aksara.className}>\n",[49,6106,6107,6121,6125,6145,6149],{"__ignoreMap":315},[478,6108,6109,6111,6114,6116,6119],{"class":480,"line":481},[478,6110,245],{"class":540},[478,6112,6113],{"class":550}," localFont ",[478,6115,604],{"class":540},[478,6117,6118],{"class":494}," '@next\u002Ffont\u002Flocal'",[478,6120,6046],{"class":550},[478,6122,6123],{"class":480,"line":316},[478,6124,504],{"emptyLinePlaceholder":328},[478,6126,6127,6129,6132,6134,6137,6140,6143],{"class":480,"line":501},[478,6128,825],{"class":540},[478,6130,6131],{"class":838}," aksara",[478,6133,1082],{"class":540},[478,6135,6136],{"class":490}," localFont",[478,6138,6139],{"class":550},"({ src: ",[478,6141,6142],{"class":494},"'.\u002Faksara.woff2'",[478,6144,6067],{"class":550},[478,6146,6147],{"class":480,"line":507},[478,6148,504],{"emptyLinePlaceholder":328},[478,6150,6151,6153,6155,6157,6159],{"class":480,"line":513},[478,6152,801],{"class":550},[478,6154,5168],{"class":804},[478,6156,6080],{"class":490},[478,6158,814],{"class":540},[478,6160,6161],{"class":550},"{aksara.className}>\n",[16,6163,6164,6165,6170,6171,6174,6175,6178,6179,6182,6183,6186],{},"Masih banyak lagi tentang update Next JS yang bisa dilihat langsung ke ",[28,6166,6169],{"href":6167,"rel":6168},"https:\u002F\u002Fbeta.nextjs.org",[32],"Dokumentasi resmi"," yang saat artikel ini ditulis masih ",[20,6172,6173],{},"beta version",". Seluruh fitur di sini masih ",[20,6176,6177],{},"beta",", jadi beberapa tidak direkomendasikan ke ",[20,6180,6181],{},"production",". Fitur di versi sebelumnya masih bisa digunakan bersamaan dengan ",[20,6184,6185],{},"experimental"," fitur terbaru.",[387,6188,6189],{},[16,6190,6191],{},"Six years ago, we released Next.js to the public. We set out to build a zero-configuration React framework that simplifies your developer experience. Looking back, it's incredible to see how the community has grown, and what we've been able to ship together. Let's keep going.",[2853,6193,6194],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":315,"searchDepth":316,"depth":316,"links":6196},[6197,6198,6199],{"id":450,"depth":316,"text":4914},{"id":5412,"depth":316,"text":5413},{"id":6003,"depth":316,"text":6004},"2022-12-26","Beberapa Update tentang NextJS versi 13",{},"\u002Fblog\u002Fnext-js-13",{"title":4877,"description":6201},"blog\u002Fnext-js-13",[3706],"kpo973G_I3JAFAgbMzmVhsdRpFPhYacxyshotpV4A4Q",{"id":6209,"title":6210,"body":6211,"date":6469,"description":6470,"extension":326,"meta":6471,"navigation":328,"path":6472,"seo":6473,"stem":6474,"tags":6475,"__hash__":6477},"blog\u002Fblog\u002Fnextjs-13-game-changer.md","NextJS 13 is a Game Changer",{"type":8,"value":6212,"toc":6464},[6213,6216,6219,6222,6236,6240,6245,6433,6454,6458,6461],[11,6214,3091],{"id":6215},"vercel",[16,6217,6218],{},"We'd love your feedback as we're working on the new docs. You'll notice a toolbar at the bottom of the screen. You can comment with a Vercel account and leave feedback directly on the pages.",[16,6220,6221],{},"Feedback that would be helpful:",[54,6223,6224,6227,6230,6233],{},[57,6225,6226],{},"Typos and other small mistakes.",[57,6228,6229],{},"Confusing or unclear explanations.",[57,6231,6232],{},"Missing information.",[57,6234,6235],{},"Questions that you had while reading the docs.",[11,6237,6239],{"id":6238},"hello-world-this-is-an-example-for-heading-2","Hello World, this is an example for heading 2",[387,6241,6242],{},[16,6243,6244],{},"Help us for better open-source projects",[470,6246,6248],{"className":4997,"code":6247,"language":4999,"meta":315,"style":315},"\u002F\u002F .storybook\u002Fmain.js\n\nimport path from 'path';\nimport fs from 'fs';\n\nexport const dynamicParams = false; \u002F\u002F fallback\n\nexport async function generateStaticParams(): Promise\u003C{ articleSlug: string }[]> {\n  const files = fs.readdirSync(path.join('src\u002Fposts'));\n\n  const params = files.map(file => ({ articleSlug: file.split('.')[0] }));\n\n  return params;\n}\n",[49,6249,6250,6255,6259,6273,6287,6291,6310,6314,6345,6374,6378,6419,6423,6429],{"__ignoreMap":315},[478,6251,6252],{"class":480,"line":481},[478,6253,6254],{"class":484},"\u002F\u002F .storybook\u002Fmain.js\n",[478,6256,6257],{"class":480,"line":316},[478,6258,504],{"emptyLinePlaceholder":328},[478,6260,6261,6263,6266,6268,6271],{"class":480,"line":501},[478,6262,245],{"class":540},[478,6264,6265],{"class":550}," path ",[478,6267,604],{"class":540},[478,6269,6270],{"class":494}," 'path'",[478,6272,6046],{"class":550},[478,6274,6275,6277,6280,6282,6285],{"class":480,"line":507},[478,6276,245],{"class":540},[478,6278,6279],{"class":550}," fs ",[478,6281,604],{"class":540},[478,6283,6284],{"class":494}," 'fs'",[478,6286,6046],{"class":550},[478,6288,6289],{"class":480,"line":513},[478,6290,504],{"emptyLinePlaceholder":328},[478,6292,6293,6295,6297,6300,6302,6305,6307],{"class":480,"line":640},[478,6294,541],{"class":540},[478,6296,5697],{"class":540},[478,6298,6299],{"class":838}," dynamicParams",[478,6301,1082],{"class":540},[478,6303,6304],{"class":838}," false",[478,6306,5708],{"class":550},[478,6308,6309],{"class":484},"\u002F\u002F fallback\n",[478,6311,6312],{"class":480,"line":652},[478,6313,504],{"emptyLinePlaceholder":328},[478,6315,6316,6318,6320,6322,6324,6327,6329,6332,6335,6337,6339,6342],{"class":480,"line":663},[478,6317,541],{"class":540},[478,6319,5912],{"class":540},[478,6321,5010],{"class":540},[478,6323,5917],{"class":490},[478,6325,6326],{"class":550},"()",[478,6328,528],{"class":540},[478,6330,6331],{"class":490}," Promise",[478,6333,6334],{"class":550},"\u003C{ ",[478,6336,5879],{"class":831},[478,6338,528],{"class":540},[478,6340,6341],{"class":838}," string",[478,6343,6344],{"class":550}," }[]> {\n",[478,6346,6347,6349,6352,6354,6357,6360,6363,6366,6368,6371],{"class":480,"line":674},[478,6348,5458],{"class":540},[478,6350,6351],{"class":838}," files",[478,6353,1082],{"class":540},[478,6355,6356],{"class":550}," fs.",[478,6358,6359],{"class":490},"readdirSync",[478,6361,6362],{"class":550},"(path.",[478,6364,6365],{"class":490},"join",[478,6367,853],{"class":550},[478,6369,6370],{"class":494},"'src\u002Fposts'",[478,6372,6373],{"class":550},"));\n",[478,6375,6376],{"class":480,"line":686},[478,6377,504],{"emptyLinePlaceholder":328},[478,6379,6380,6382,6384,6386,6389,6391,6393,6396,6399,6402,6405,6407,6410,6413,6416],{"class":480,"line":696},[478,6381,5458],{"class":540},[478,6383,5952],{"class":838},[478,6385,1082],{"class":540},[478,6387,6388],{"class":550}," files.",[478,6390,5961],{"class":490},[478,6392,853],{"class":550},[478,6394,6395],{"class":831},"file",[478,6397,6398],{"class":540}," =>",[478,6400,6401],{"class":550}," ({ articleSlug: file.",[478,6403,6404],{"class":490},"split",[478,6406,853],{"class":550},[478,6408,6409],{"class":494},"'.'",[478,6411,6412],{"class":550},")[",[478,6414,6415],{"class":838},"0",[478,6417,6418],{"class":550},"] }));\n",[478,6420,6421],{"class":480,"line":706},[478,6422,504],{"emptyLinePlaceholder":328},[478,6424,6425,6427],{"class":480,"line":728},[478,6426,5021],{"class":540},[478,6428,5886],{"class":550},[478,6430,6431],{"class":480,"line":734},[478,6432,1591],{"class":550},[470,6434,6438],{"className":6435,"code":6436,"language":6437,"meta":315,"style":315},"language-go shiki shiki-themes github-light github-dark","func sayHello() string {\n    return \"Hello World\"\n}\n","go",[49,6439,6440,6445,6450],{"__ignoreMap":315},[478,6441,6442],{"class":480,"line":481},[478,6443,6444],{},"func sayHello() string {\n",[478,6446,6447],{"class":480,"line":316},[478,6448,6449],{},"    return \"Hello World\"\n",[478,6451,6452],{"class":480,"line":501},[478,6453,1591],{},[11,6455,6457],{"id":6456},"app-directory","App Directory",[16,6459,6460],{},"Next.js 13 introduced a new app directory with new features and conventions. However, upgrading to Next.js 13 does not require using the new app directory. You can continue using pages with new features that work in both directories, such as the updated Image component, Link component, Script component, and Font optimization.",[2853,6462,6463],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":315,"searchDepth":316,"depth":316,"links":6465},[6466,6467,6468],{"id":6215,"depth":316,"text":3091},{"id":6238,"depth":316,"text":6239},{"id":6456,"depth":316,"text":6457},"2022-12-22","NextJS has a major upgrade. Awesome tree-shaking and so many features that i'm so excited about. Let's rewrite 50k codes for NextJS 13",{"draft":328},"\u002Fblog\u002Fnextjs-13-game-changer",{"title":6210,"description":6470},"blog\u002Fnextjs-13-game-changer",[3706,2880,6476],"Tech","51SvZGH7oQ6XB0cYkOxYWUW4uxMUnx731hjEQQSOk2M",{"id":6479,"title":6480,"body":6481,"date":6469,"description":6511,"extension":326,"meta":6512,"navigation":328,"path":6513,"seo":6514,"stem":6515,"tags":6516,"__hash__":6519},"blog\u002Fblog\u002Fthis-is-my-first-post.md","This is My First Post",{"type":8,"value":6482,"toc":6507},[6483,6487,6490,6492,6497,6501,6504],[11,6484,6486],{"id":6485},"introduction","Introduction",[16,6488,6489],{},"corrupti magnam doloremque, atque ullam. Alias dicta ducimus tempora pariatur, deleniti corporis laboriosam repellendus, natus delectus explicabo, laudantium illum nobis omnis quod inventore velit reiciendis nam fugiat quasi modi. Consequatur odit aut quaerat eius suscipit nihil iste nam est accusantium? Praesentium, aspernatur eos.",[411,6491],{},[387,6493,6494],{},[16,6495,6496],{},"what about quote?",[11,6498,6500],{"id":6499},"go-to-demo","Go to Demo",[16,6502,6503],{},"sed nihil pariatur minus labore iure vel quisquam voluptas autem debitis illo dignissimos quasi esse officiis provident veniam quidem similique assumenda! Corrupti quidem asperiores facilis quae, animi a modi. Natus amet quisquam tempore officia enim pariatur magnam maxime optio accusamus sapiente. Voluptates mollitia aut vitae aliquid distinctio ipsa beatae quasi, ex molestiae itaque similique provident ducimus obcaecati est, suscipit minima, ratione iusto reprehenderit sit doloribus quas sed. Repellat illum, laborum aliquid cum cumque exercitationem beatae explicabo",[16,6505,6506],{},"rem voluptatem dolores. Ex amet magnam porro quaerat fuga at nisi eum quis, in dolores? Perspiciatis quisquam est, laborum iste rerum odit ipsam itaque eaque necessitatibus quidem, repellat corrupti magnam doloremque, atque ullam. Alias dicta ducimus tempora pariatur, deleniti corporis laboriosam repellendus, natus delectus explicabo, laudantium illum nobis omnis quod inventore velit reiciendis nam fugiat quasi modi. Consequatur odit aut quaerat eius suscipit nihil iste nam est accusantium? Praesentium, aspernatur eos.",{"title":315,"searchDepth":316,"depth":316,"links":6508},[6509,6510],{"id":6485,"depth":316,"text":6486},{"id":6499,"depth":316,"text":6500},"Hello World. This is my first posts. Just for spending a time with class",{"draft":328},"\u002Fblog\u002Fthis-is-my-first-post",{"title":6480,"description":6511},"blog\u002Fthis-is-my-first-post",[6517,6518],"Story","Sharing","U0-GrQ1mS7HbkoSMJmSQH8ioiogWCr5RAbddEdKlJzE",[6521,6705,8756,8979,9334,9344,10254,11301,11514],{"id":5,"title":6,"body":6522,"date":324,"description":325,"extension":326,"meta":6702,"navigation":328,"path":329,"seo":6703,"stem":331,"tags":6704,"__hash__":335},{"type":8,"value":6523,"toc":6694},[6524,6526,6530,6535,6537,6544,6574,6578,6580,6588,6593,6625,6627,6629,6663,6665,6675,6681,6683],[11,6525,14],{"id":13},[16,6527,18,6528,23],{},[20,6529,22],{},[16,6531,26,6532,34],{},[28,6533,33],{"href":30,"rel":6534},[32],[11,6536,38],{"id":37},[16,6538,41,6539,47,6542,52],{},[28,6540,46],{"href":44,"rel":6541},[32],[49,6543,51],{},[54,6545,6546,6554,6564],{},[57,6547,6548,64,6550,68,6552,72],{},[60,6549,63],{"id":62},[20,6551,67],{},[20,6553,71],{},[57,6555,6556,79,6558,83,6560,87,6562,91],{},[60,6557,78],{"id":77},[20,6559,82],{},[20,6561,86],{},[49,6563,90],{},[57,6565,6566,98,6568,102,6570,106,6572,110],{},[60,6567,97],{"id":96},[20,6569,101],{},[20,6571,105],{},[20,6573,109],{},[16,6575,113,6576,117],{},[20,6577,116],{},[11,6579,121],{"id":120},[16,6581,124,6582,128,6584,132,6586,34],{},[20,6583,127],{},[20,6585,131],{},[20,6587,135],{},[16,6589,6590,143],{},[28,6591,142],{"href":140,"rel":6592},[32],[54,6594,6595,6603,6609,6619],{},[57,6596,6597,152,6599,156,6601,160],{},[60,6598,151],{"id":150},[49,6600,155],{},[20,6602,159],{},[57,6604,6605,167,6607,172],{},[60,6606,166],{"id":165},[169,6608,171],{},[57,6610,6611,179,6613,182,6615,186,6617,34],{},[60,6612,178],{"id":177},[20,6614,159],{},[20,6616,185],{},[20,6618,189],{},[57,6620,6621,196,6623,199],{},[60,6622,195],{"id":194},[20,6624,86],{},[11,6626,203],{"id":202},[16,6628,206],{},[54,6630,6631,6637,6649,6653],{},[57,6632,211,6633,215,6635,219],{},[49,6634,214],{},[49,6636,218],{},[57,6638,6639,225,6641,229,6643,229,6645,229,6647,239],{},[20,6640,224],{},[49,6642,228],{},[49,6644,232],{},[49,6646,235],{},[49,6648,238],{},[57,6650,242,6651,246],{},[20,6652,245],{},[57,6654,6655,252,6657,256,6659,260,6661,264],{},[20,6656,251],{},[49,6658,255],{},[20,6660,259],{},[20,6662,263],{},[11,6664,268],{"id":267},[16,6666,271,6667,274,6669,278,6671,281,6673,285],{},[20,6668,116],{},[20,6670,277],{},[20,6672,86],{},[20,6674,284],{},[16,6676,288,6677,292,6679,34],{},[20,6678,291],{},[20,6680,116],{},[11,6682,298],{"id":297},[16,6684,6685,304,6688,304,6691,313],{},[28,6686,142],{"href":140,"rel":6687},[32],[28,6689,309],{"href":307,"rel":6690},[32],[28,6692,33],{"href":30,"rel":6693},[32],{"title":315,"searchDepth":316,"depth":316,"links":6695},[6696,6697,6698,6699,6700,6701],{"id":13,"depth":316,"text":14},{"id":37,"depth":316,"text":38},{"id":120,"depth":316,"text":121},{"id":202,"depth":316,"text":203},{"id":267,"depth":316,"text":268},{"id":297,"depth":316,"text":298},{},{"title":6,"description":325},[333,334],{"id":337,"title":338,"body":6706,"date":2872,"description":2873,"extension":326,"meta":8753,"navigation":328,"path":2875,"seo":8754,"stem":2877,"tags":8755,"__hash__":2881},{"type":8,"value":6707,"toc":8737},[6708,6710,6720,6726,6734,6748,6750,6752,6754,6778,6782,6784,6786,6818,6822,6848,6852,6854,6856,6862,6982,6998,7000,7002,7006,7210,7212,7332,7338,7340,7342,7348,7350,7355,7363,7365,7557,7561,7573,7575,7577,7583,7659,7765,7911,7913,7915,7917,7921,7933,7937,7953,7957,7993,7999,8113,8115,8117,8119,8329,8331,8333,8335,8341,8649,8655,8657,8659,8671,8681,8683,8685,8693,8697,8699,8701,8715,8717,8719,8733,8735],[11,6709,344],{"id":343},[16,6711,6712,350,6714,354,6716,357,6718,360],{},[49,6713,349],{},[20,6715,353],{},[49,6717,155],{},[20,6719,159],{},[16,6721,363,6722,367,6724,371],{},[20,6723,366],{},[20,6725,370],{},[16,6727,374,6728,378,6730,382,6732,34],{},[20,6729,377],{},[20,6731,381],{},[20,6733,385],{},[387,6735,6736],{},[16,6737,6738,394,6740,398,6742,229,6744,405,6746,409],{},[169,6739,393],{},[20,6741,397],{},[49,6743,401],{},[49,6745,404],{},[49,6747,408],{},[411,6749],{},[11,6751,416],{"id":415},[16,6753,419],{},[421,6755,6756,6760,6764,6770],{},[57,6757,425,6758],{},[49,6759,428],{},[57,6761,431,6762],{},[49,6763,434],{},[57,6765,437,6766,441,6768],{},[49,6767,440],{},[49,6769,444],{},[57,6771,447,6772,229,6774,405,6776],{},[20,6773,450],{},[20,6775,453],{},[20,6777,456],{},[16,6779,459,6780,462],{},[20,6781,189],{},[411,6783],{},[11,6785,468],{"id":467},[470,6787,6788],{"className":472,"code":473,"language":474,"meta":315,"style":315},[49,6789,6790,6794,6802,6806,6810],{"__ignoreMap":315},[478,6791,6792],{"class":480,"line":481},[478,6793,485],{"class":484},[478,6795,6796,6798,6800],{"class":480,"line":316},[478,6797,491],{"class":490},[478,6799,495],{"class":494},[478,6801,498],{"class":494},[478,6803,6804],{"class":480,"line":501},[478,6805,504],{"emptyLinePlaceholder":328},[478,6807,6808],{"class":480,"line":507},[478,6809,510],{"class":484},[478,6811,6812,6814,6816],{"class":480,"line":513},[478,6813,516],{"class":490},[478,6815,519],{"class":494},[478,6817,498],{"class":494},[16,6819,524,6820,528],{},[49,6821,527],{},[470,6823,6824],{"className":531,"code":532,"language":533,"meta":315,"style":315},[49,6825,6826,6836,6844],{"__ignoreMap":315},[478,6827,6828,6830,6832,6834],{"class":480,"line":481},[478,6829,541],{"class":540},[478,6831,544],{"class":540},[478,6833,547],{"class":490},[478,6835,551],{"class":550},[478,6837,6838,6840,6842],{"class":480,"line":316},[478,6839,556],{"class":550},[478,6841,559],{"class":494},[478,6843,562],{"class":550},[478,6845,6846],{"class":480,"line":501},[478,6847,567],{"class":550},[16,6849,570,6850,573],{},[49,6851,155],{},[411,6853],{},[11,6855,579],{"id":578},[16,6857,582,6858,586,6860,528],{},[20,6859,585],{},[49,6861,589],{},[470,6863,6864],{"className":531,"code":592,"language":533,"meta":315,"style":315},[49,6865,6866,6876,6880,6890,6894,6902,6910,6918,6926,6934,6942,6950,6966,6970,6974,6978],{"__ignoreMap":315},[478,6867,6868,6870,6872,6874],{"class":480,"line":481},[478,6869,245],{"class":540},[478,6871,601],{"class":550},[478,6873,604],{"class":540},[478,6875,607],{"class":494},[478,6877,6878],{"class":480,"line":316},[478,6879,504],{"emptyLinePlaceholder":328},[478,6881,6882,6884,6886,6888],{"class":480,"line":501},[478,6883,541],{"class":540},[478,6885,544],{"class":540},[478,6887,620],{"class":490},[478,6889,551],{"class":550},[478,6891,6892],{"class":480,"line":507},[478,6893,627],{"class":550},[478,6895,6896,6898,6900],{"class":480,"line":513},[478,6897,632],{"class":550},[478,6899,635],{"class":490},[478,6901,551],{"class":550},[478,6903,6904,6906,6908],{"class":480,"line":640},[478,6905,643],{"class":550},[478,6907,646],{"class":494},[478,6909,649],{"class":550},[478,6911,6912,6914,6916],{"class":480,"line":652},[478,6913,655],{"class":550},[478,6915,658],{"class":494},[478,6917,649],{"class":550},[478,6919,6920,6922,6924],{"class":480,"line":663},[478,6921,666],{"class":550},[478,6923,669],{"class":490},[478,6925,551],{"class":550},[478,6927,6928,6930,6932],{"class":480,"line":674},[478,6929,677],{"class":550},[478,6931,680],{"class":490},[478,6933,683],{"class":550},[478,6935,6936,6938,6940],{"class":480,"line":686},[478,6937,689],{"class":550},[478,6939,680],{"class":490},[478,6941,683],{"class":550},[478,6943,6944,6946,6948],{"class":480,"line":696},[478,6945,699],{"class":550},[478,6947,680],{"class":490},[478,6949,683],{"class":550},[478,6951,6952,6954,6956,6958,6960,6962,6964],{"class":480,"line":706},[478,6953,709],{"class":550},[478,6955,712],{"class":490},[478,6957,715],{"class":550},[478,6959,680],{"class":490},[478,6961,720],{"class":550},[478,6963,723],{"class":490},[478,6965,683],{"class":550},[478,6967,6968],{"class":480,"line":728},[478,6969,731],{"class":550},[478,6971,6972],{"class":480,"line":734},[478,6973,737],{"class":550},[478,6975,6976],{"class":480,"line":740},[478,6977,743],{"class":550},[478,6979,6980],{"class":480,"line":746},[478,6981,567],{"class":550},[16,6983,6984,754,6986,758,6988,229,6990,765,6992,769,6994,773,6996,34],{},[49,6985,753],{},[20,6987,757],{},[20,6989,761],{},[20,6991,764],{},[20,6993,768],{},[49,6995,772],{},[20,6997,776],{},[411,6999],{},[11,7001,782],{"id":781},[16,7003,785,7004,789],{},[49,7005,788],{},[470,7007,7008],{"className":792,"code":793,"language":794,"meta":315,"style":315},[49,7009,7010,7026,7054,7064,7084,7100,7108,7112,7120,7124,7132,7152,7170,7182,7194,7202],{"__ignoreMap":315},[478,7011,7012,7014,7016,7018,7020,7022,7024],{"class":480,"line":481},[478,7013,801],{"class":550},[478,7015,805],{"class":804},[478,7017,808],{"class":490},[478,7019,811],{"class":490},[478,7021,814],{"class":550},[478,7023,817],{"class":494},[478,7025,820],{"class":550},[478,7027,7028,7030,7032,7034,7036,7038,7040,7042,7044,7046,7048,7050,7052],{"class":480,"line":316},[478,7029,825],{"class":540},[478,7031,828],{"class":550},[478,7033,832],{"class":831},[478,7035,835],{"class":550},[478,7037,839],{"class":838},[478,7039,842],{"class":550},[478,7041,814],{"class":540},[478,7043,847],{"class":540},[478,7045,850],{"class":490},[478,7047,853],{"class":550},[478,7049,856],{"class":494},[478,7051,859],{"class":550},[478,7053,862],{"class":540},[478,7055,7056,7058,7060,7062],{"class":480,"line":501},[478,7057,867],{"class":490},[478,7059,853],{"class":550},[478,7061,872],{"class":494},[478,7063,875],{"class":550},[478,7065,7066,7068,7070,7072,7074,7076,7078,7080,7082],{"class":480,"line":507},[478,7067,880],{"class":550},[478,7069,883],{"class":490},[478,7071,853],{"class":550},[478,7073,888],{"class":494},[478,7075,229],{"class":550},[478,7077,893],{"class":494},[478,7079,229],{"class":550},[478,7081,898],{"class":838},[478,7083,875],{"class":550},[478,7085,7086,7088,7090,7092,7094,7096,7098],{"class":480,"line":513},[478,7087,880],{"class":550},[478,7089,907],{"class":490},[478,7091,853],{"class":550},[478,7093,912],{"class":494},[478,7095,229],{"class":550},[478,7097,917],{"class":494},[478,7099,875],{"class":550},[478,7101,7102,7104,7106],{"class":480,"line":640},[478,7103,880],{"class":550},[478,7105,926],{"class":490},[478,7107,929],{"class":550},[478,7109,7110],{"class":480,"line":652},[478,7111,875],{"class":550},[478,7113,7114,7116,7118],{"class":480,"line":663},[478,7115,938],{"class":550},[478,7117,805],{"class":804},[478,7119,820],{"class":550},[478,7121,7122],{"class":480,"line":674},[478,7123,504],{"emptyLinePlaceholder":328},[478,7125,7126,7128,7130],{"class":480,"line":686},[478,7127,801],{"class":550},[478,7129,953],{"class":804},[478,7131,820],{"class":550},[478,7133,7134,7136,7138,7140,7142,7144,7146,7148,7150],{"class":480,"line":696},[478,7135,960],{"class":550},[478,7137,963],{"class":804},[478,7139,966],{"class":490},[478,7141,814],{"class":550},[478,7143,971],{"class":494},[478,7145,974],{"class":490},[478,7147,814],{"class":550},[478,7149,979],{"class":494},[478,7151,820],{"class":550},[478,7153,7154,7156,7158,7160,7162,7164,7166,7168],{"class":480,"line":706},[478,7155,986],{"class":550},[478,7157,989],{"class":804},[478,7159,992],{"class":490},[478,7161,814],{"class":550},[478,7163,997],{"class":494},[478,7165,1000],{"class":550},[478,7167,989],{"class":804},[478,7169,820],{"class":550},[478,7171,7172,7174,7176,7178,7180],{"class":480,"line":728},[478,7173,986],{"class":550},[478,7175,16],{"class":804},[478,7177,1013],{"class":550},[478,7179,16],{"class":804},[478,7181,820],{"class":550},[478,7183,7184,7186,7188,7190,7192],{"class":480,"line":734},[478,7185,986],{"class":550},[478,7187,1024],{"class":804},[478,7189,1027],{"class":550},[478,7191,1024],{"class":804},[478,7193,820],{"class":550},[478,7195,7196,7198,7200],{"class":480,"line":740},[478,7197,1036],{"class":550},[478,7199,963],{"class":804},[478,7201,820],{"class":550},[478,7203,7204,7206,7208],{"class":480,"line":746},[478,7205,938],{"class":550},[478,7207,953],{"class":804},[478,7209,820],{"class":550},[16,7211,1051],{},[470,7213,7214],{"className":792,"code":1054,"language":794,"meta":315,"style":315},[49,7215,7216,7232,7244,7268,7286,7290,7298,7302,7310,7324],{"__ignoreMap":315},[478,7217,7218,7220,7222,7224,7226,7228,7230],{"class":480,"line":481},[478,7219,801],{"class":550},[478,7221,805],{"class":804},[478,7223,808],{"class":490},[478,7225,811],{"class":490},[478,7227,814],{"class":550},[478,7229,817],{"class":494},[478,7231,820],{"class":550},[478,7233,7234,7236,7238,7240,7242],{"class":480,"line":316},[478,7235,825],{"class":540},[478,7237,1079],{"class":838},[478,7239,1082],{"class":540},[478,7241,1085],{"class":490},[478,7243,929],{"class":550},[478,7245,7246,7248,7250,7252,7254,7256,7258,7260,7262,7264,7266],{"class":480,"line":501},[478,7247,825],{"class":540},[478,7249,828],{"class":550},[478,7251,832],{"class":831},[478,7253,835],{"class":550},[478,7255,1100],{"class":838},[478,7257,842],{"class":550},[478,7259,814],{"class":540},[478,7261,847],{"class":540},[478,7263,850],{"class":490},[478,7265,1111],{"class":550},[478,7267,862],{"class":540},[478,7269,7270,7272,7274,7276,7278,7280,7282,7284],{"class":480,"line":507},[478,7271,867],{"class":490},[478,7273,853],{"class":550},[478,7275,872],{"class":494},[478,7277,1124],{"class":550},[478,7279,1127],{"class":490},[478,7281,1130],{"class":550},[478,7283,1133],{"class":490},[478,7285,929],{"class":550},[478,7287,7288],{"class":480,"line":513},[478,7289,875],{"class":550},[478,7291,7292,7294,7296],{"class":480,"line":640},[478,7293,938],{"class":550},[478,7295,805],{"class":804},[478,7297,820],{"class":550},[478,7299,7300],{"class":480,"line":652},[478,7301,504],{"emptyLinePlaceholder":328},[478,7303,7304,7306,7308],{"class":480,"line":663},[478,7305,801],{"class":550},[478,7307,953],{"class":804},[478,7309,820],{"class":550},[478,7311,7312,7314,7316,7318,7320,7322],{"class":480,"line":674},[478,7313,960],{"class":550},[478,7315,1166],{"class":804},[478,7317,1169],{"class":490},[478,7319,814],{"class":550},[478,7321,1174],{"class":494},[478,7323,1177],{"class":550},[478,7325,7326,7328,7330],{"class":480,"line":686},[478,7327,938],{"class":550},[478,7329,953],{"class":804},[478,7331,820],{"class":550},[16,7333,7334,1190,7336,1194],{},[49,7335,255],{},[20,7337,1193],{},[411,7339],{},[11,7341,1200],{"id":1199},[16,7343,1203,7344,1207,7346,1211],{},[20,7345,1206],{},[20,7347,1210],{},[16,7349,1214],{},[470,7351,7353],{"className":7352,"code":1219,"language":1220},[1218],[49,7354,1219],{"__ignoreMap":315},[16,7356,1225,7357,1229,7359,1233,7361,34],{},[20,7358,1228],{},[49,7360,1232],{},[49,7362,1236],{},[16,7364,1239],{},[470,7366,7367],{"className":792,"code":1242,"language":794,"meta":315,"style":315},[49,7368,7369,7385,7403,7411,7415,7423,7431,7453,7471,7485,7499,7517,7525,7533,7541,7549],{"__ignoreMap":315},[478,7370,7371,7373,7375,7377,7379,7381,7383],{"class":480,"line":481},[478,7372,801],{"class":550},[478,7374,805],{"class":804},[478,7376,808],{"class":490},[478,7378,811],{"class":490},[478,7380,814],{"class":550},[478,7382,817],{"class":494},[478,7384,820],{"class":550},[478,7386,7387,7389,7391,7393,7395,7397,7399,7401],{"class":480,"line":316},[478,7388,825],{"class":540},[478,7390,1267],{"class":838},[478,7392,1082],{"class":540},[478,7394,847],{"class":540},[478,7396,1274],{"class":490},[478,7398,853],{"class":550},[478,7400,1279],{"class":494},[478,7402,875],{"class":550},[478,7404,7405,7407,7409],{"class":480,"line":501},[478,7406,938],{"class":550},[478,7408,805],{"class":804},[478,7410,820],{"class":550},[478,7412,7413],{"class":480,"line":507},[478,7414,504],{"emptyLinePlaceholder":328},[478,7416,7417,7419,7421],{"class":480,"line":513},[478,7418,801],{"class":550},[478,7420,953],{"class":804},[478,7422,820],{"class":550},[478,7424,7425,7427,7429],{"class":480,"line":640},[478,7426,960],{"class":550},[478,7428,1308],{"class":804},[478,7430,820],{"class":550},[478,7432,7433,7435,7437,7439,7441,7443,7445,7447,7449,7451],{"class":480,"line":652},[478,7434,986],{"class":550},[478,7436,953],{"class":804},[478,7438,966],{"class":540},[478,7440,814],{"class":550},[478,7442,1323],{"class":494},[478,7444,1326],{"class":550},[478,7446,1329],{"class":540},[478,7448,1267],{"class":550},[478,7450,1323],{"class":494},[478,7452,820],{"class":550},[478,7454,7455,7457,7459,7461,7463,7465,7467,7469],{"class":480,"line":663},[478,7456,1340],{"class":550},[478,7458,989],{"class":804},[478,7460,992],{"class":490},[478,7462,814],{"class":550},[478,7464,1349],{"class":494},[478,7466,1352],{"class":550},[478,7468,989],{"class":804},[478,7470,820],{"class":550},[478,7472,7473,7475,7477,7479,7481,7483],{"class":480,"line":674},[478,7474,1340],{"class":550},[478,7476,54],{"class":804},[478,7478,1365],{"class":490},[478,7480,814],{"class":550},[478,7482,1370],{"class":494},[478,7484,820],{"class":550},[478,7486,7487,7489,7491,7493,7495,7497],{"class":480,"line":686},[478,7488,1377],{"class":550},[478,7490,57],{"class":804},[478,7492,966],{"class":490},[478,7494,814],{"class":550},[478,7496,1386],{"class":494},[478,7498,820],{"class":550},[478,7500,7501,7503,7505,7507,7509,7511,7513,7515],{"class":480,"line":696},[478,7502,1393],{"class":550},[478,7504,989],{"class":804},[478,7506,992],{"class":490},[478,7508,814],{"class":550},[478,7510,1402],{"class":494},[478,7512,1405],{"class":550},[478,7514,989],{"class":804},[478,7516,820],{"class":550},[478,7518,7519,7521,7523],{"class":480,"line":706},[478,7520,1414],{"class":550},[478,7522,57],{"class":804},[478,7524,820],{"class":550},[478,7526,7527,7529,7531],{"class":480,"line":728},[478,7528,1423],{"class":550},[478,7530,54],{"class":804},[478,7532,820],{"class":550},[478,7534,7535,7537,7539],{"class":480,"line":734},[478,7536,1432],{"class":550},[478,7538,953],{"class":804},[478,7540,820],{"class":550},[478,7542,7543,7545,7547],{"class":480,"line":740},[478,7544,1036],{"class":550},[478,7546,1308],{"class":804},[478,7548,820],{"class":550},[478,7550,7551,7553,7555],{"class":480,"line":746},[478,7552,938],{"class":550},[478,7554,953],{"class":804},[478,7556,820],{"class":550},[16,7558,1455,7559,1459],{},[20,7560,1458],{},[387,7562,7563],{},[16,7564,7565,1466,7567,1470,7569,1474,7571,1478],{},[169,7566,393],{},[49,7568,1469],{},[49,7570,1473],{},[20,7572,1477],{},[411,7574],{},[11,7576,1484],{"id":1483},[16,7578,1487,7579,1491,7581,1494],{},[20,7580,1490],{},[20,7582,159],{},[470,7584,7585],{"className":1497,"code":1498,"language":1499,"meta":315,"style":315},[49,7586,7587,7591,7595,7601,7605,7615,7625,7639,7647,7651,7655],{"__ignoreMap":315},[478,7588,7589],{"class":480,"line":481},[478,7590,1506],{"class":484},[478,7592,7593],{"class":480,"line":316},[478,7594,1511],{"class":550},[478,7596,7597,7599],{"class":480,"line":501},[478,7598,1516],{"class":838},[478,7600,1519],{"class":550},[478,7602,7603],{"class":480,"line":507},[478,7604,1524],{"class":550},[478,7606,7607,7609,7611,7613],{"class":480,"line":513},[478,7608,1529],{"class":838},[478,7610,835],{"class":550},[478,7612,1534],{"class":494},[478,7614,649],{"class":550},[478,7616,7617,7619,7621,7623],{"class":480,"line":640},[478,7618,1541],{"class":838},[478,7620,835],{"class":550},[478,7622,1546],{"class":494},[478,7624,649],{"class":550},[478,7626,7627,7629,7631,7633,7635,7637],{"class":480,"line":652},[478,7628,1553],{"class":838},[478,7630,1556],{"class":550},[478,7632,1559],{"class":494},[478,7634,229],{"class":550},[478,7636,1564],{"class":494},[478,7638,562],{"class":550},[478,7640,7641,7643,7645],{"class":480,"line":663},[478,7642,1571],{"class":838},[478,7644,835],{"class":550},[478,7646,1576],{"class":494},[478,7648,7649],{"class":480,"line":674},[478,7650,1581],{"class":550},[478,7652,7653],{"class":480,"line":686},[478,7654,1586],{"class":550},[478,7656,7657],{"class":480,"line":696},[478,7658,1591],{"class":550},[470,7660,7661],{"className":531,"code":1594,"language":533,"meta":315,"style":315},[49,7662,7663,7667,7677,7685,7693,7701,7713,7721,7729,7741,7753,7757,7761],{"__ignoreMap":315},[478,7664,7665],{"class":480,"line":481},[478,7666,1601],{"class":484},[478,7668,7669,7671,7673,7675],{"class":480,"line":316},[478,7670,1606],{"class":490},[478,7672,835],{"class":550},[478,7674,635],{"class":490},[478,7676,551],{"class":550},[478,7678,7679,7681,7683],{"class":480,"line":501},[478,7680,1617],{"class":550},[478,7682,1620],{"class":494},[478,7684,649],{"class":550},[478,7686,7687,7689,7691],{"class":480,"line":507},[478,7688,1627],{"class":550},[478,7690,1630],{"class":494},[478,7692,649],{"class":550},[478,7694,7695,7697,7699],{"class":480,"line":513},[478,7696,1637],{"class":550},[478,7698,669],{"class":490},[478,7700,551],{"class":550},[478,7702,7703,7705,7707,7709,7711],{"class":480,"line":640},[478,7704,1646],{"class":550},[478,7706,712],{"class":490},[478,7708,715],{"class":550},[478,7710,669],{"class":490},[478,7712,551],{"class":550},[478,7714,7715,7717,7719],{"class":480,"line":652},[478,7716,1659],{"class":550},[478,7718,680],{"class":490},[478,7720,683],{"class":550},[478,7722,7723,7725,7727],{"class":480,"line":663},[478,7724,1668],{"class":550},[478,7726,680],{"class":490},[478,7728,683],{"class":550},[478,7730,7731,7733,7735,7737,7739],{"class":480,"line":674},[478,7732,1677],{"class":550},[478,7734,712],{"class":490},[478,7736,715],{"class":550},[478,7738,680],{"class":490},[478,7740,1686],{"class":550},[478,7742,7743,7745,7747,7749,7751],{"class":480,"line":686},[478,7744,1691],{"class":550},[478,7746,680],{"class":490},[478,7748,1696],{"class":550},[478,7750,1699],{"class":490},[478,7752,683],{"class":550},[478,7754,7755],{"class":480,"line":696},[478,7756,1706],{"class":550},[478,7758,7759],{"class":480,"line":706},[478,7760,1711],{"class":550},[478,7762,7763],{"class":480,"line":728},[478,7764,567],{"class":550},[470,7766,7767],{"className":792,"code":1718,"language":794,"meta":315,"style":315},[49,7768,7769,7785,7813,7827,7831,7839,7843,7851,7871,7883,7895,7903],{"__ignoreMap":315},[478,7770,7771,7773,7775,7777,7779,7781,7783],{"class":480,"line":481},[478,7772,801],{"class":550},[478,7774,805],{"class":804},[478,7776,808],{"class":490},[478,7778,811],{"class":490},[478,7780,814],{"class":550},[478,7782,817],{"class":494},[478,7784,820],{"class":550},[478,7786,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811],{"class":480,"line":316},[478,7788,825],{"class":540},[478,7790,828],{"class":550},[478,7792,832],{"class":831},[478,7794,835],{"class":550},[478,7796,1606],{"class":838},[478,7798,842],{"class":550},[478,7800,814],{"class":540},[478,7802,847],{"class":540},[478,7804,850],{"class":490},[478,7806,853],{"class":550},[478,7808,1761],{"class":494},[478,7810,859],{"class":550},[478,7812,862],{"class":540},[478,7814,7815,7817,7819,7821,7823,7825],{"class":480,"line":501},[478,7816,867],{"class":490},[478,7818,853],{"class":550},[478,7820,1761],{"class":494},[478,7822,1124],{"class":550},[478,7824,1133],{"class":490},[478,7826,929],{"class":550},[478,7828,7829],{"class":480,"line":507},[478,7830,875],{"class":550},[478,7832,7833,7835,7837],{"class":480,"line":513},[478,7834,938],{"class":550},[478,7836,805],{"class":804},[478,7838,820],{"class":550},[478,7840,7841],{"class":480,"line":640},[478,7842,504],{"emptyLinePlaceholder":328},[478,7844,7845,7847,7849],{"class":480,"line":652},[478,7846,801],{"class":550},[478,7848,953],{"class":804},[478,7850,820],{"class":550},[478,7852,7853,7855,7857,7859,7861,7863,7865,7867,7869],{"class":480,"line":663},[478,7854,960],{"class":550},[478,7856,1810],{"class":804},[478,7858,966],{"class":490},[478,7860,814],{"class":550},[478,7862,1817],{"class":494},[478,7864,974],{"class":490},[478,7866,814],{"class":550},[478,7868,1824],{"class":494},[478,7870,820],{"class":550},[478,7872,7873,7875,7877,7879,7881],{"class":480,"line":674},[478,7874,986],{"class":550},[478,7876,1833],{"class":804},[478,7878,1836],{"class":550},[478,7880,1833],{"class":804},[478,7882,820],{"class":550},[478,7884,7885,7887,7889,7891,7893],{"class":480,"line":686},[478,7886,986],{"class":550},[478,7888,16],{"class":804},[478,7890,1849],{"class":550},[478,7892,16],{"class":804},[478,7894,820],{"class":550},[478,7896,7897,7899,7901],{"class":480,"line":696},[478,7898,1036],{"class":550},[478,7900,1810],{"class":804},[478,7902,820],{"class":550},[478,7904,7905,7907,7909],{"class":480,"line":706},[478,7906,938],{"class":550},[478,7908,953],{"class":804},[478,7910,820],{"class":550},[411,7912],{},[11,7914,1875],{"id":1874},[16,7916,1878],{},[16,7918,7919],{},[169,7920,1883],{},[470,7922,7923],{"className":1886,"code":1887,"language":326,"meta":315,"style":315},[49,7924,7925],{"__ignoreMap":315},[478,7926,7927,7929,7931],{"class":480,"line":481},[478,7928,1894],{"class":550},[478,7930,1898],{"class":1897},[478,7932,1901],{"class":550},[16,7934,7935],{},[169,7936,1906],{},[470,7938,7939],{"className":1886,"code":1909,"language":326,"meta":315,"style":315},[49,7940,7941,7945,7949],{"__ignoreMap":315},[478,7942,7943],{"class":480,"line":481},[478,7944,1916],{"class":550},[478,7946,7947],{"class":480,"line":316},[478,7948,1921],{"class":550},[478,7950,7951],{"class":480,"line":501},[478,7952,1926],{"class":550},[16,7954,7955],{},[169,7956,1931],{},[470,7958,7959],{"className":1886,"code":1934,"language":326,"meta":315,"style":315},[49,7960,7961,7965,7969,7973,7977,7981,7989],{"__ignoreMap":315},[478,7962,7963],{"class":480,"line":481},[478,7964,1941],{"class":550},[478,7966,7967],{"class":480,"line":316},[478,7968,1947],{"class":1946},[478,7970,7971],{"class":480,"line":501},[478,7972,1952],{"class":550},[478,7974,7975],{"class":480,"line":507},[478,7976,1957],{"class":550},[478,7978,7979],{"class":480,"line":513},[478,7980,1947],{"class":1946},[478,7982,7983,7985,7987],{"class":480,"line":640},[478,7984,1966],{"class":550},[478,7986,1970],{"class":1969},[478,7988,1973],{"class":550},[478,7990,7991],{"class":480,"line":652},[478,7992,1926],{"class":550},[16,7994,1980,7995,1984,7997,1988],{},[49,7996,1983],{},[20,7998,1987],{},[470,8000,8001],{"className":792,"code":1991,"language":794,"meta":315,"style":315},[49,8002,8003,8007,8023,8029,8049,8053,8061,8065,8073,8087,8097,8105],{"__ignoreMap":315},[478,8004,8005],{"class":480,"line":481},[478,8006,1998],{"class":484},[478,8008,8009,8011,8013,8015,8017,8019,8021],{"class":480,"line":316},[478,8010,801],{"class":550},[478,8012,805],{"class":804},[478,8014,808],{"class":490},[478,8016,811],{"class":490},[478,8018,814],{"class":550},[478,8020,817],{"class":494},[478,8022,820],{"class":550},[478,8024,8025,8027],{"class":480,"line":501},[478,8026,2019],{"class":490},[478,8028,2022],{"class":550},[478,8030,8031,8033,8035,8037,8039,8041,8043,8045,8047],{"class":480,"line":507},[478,8032,2027],{"class":831},[478,8034,2030],{"class":540},[478,8036,2033],{"class":494},[478,8038,2036],{"class":540},[478,8040,2039],{"class":494},[478,8042,2036],{"class":540},[478,8044,2044],{"class":494},[478,8046,2036],{"class":540},[478,8048,2049],{"class":494},[478,8050,8051],{"class":480,"line":513},[478,8052,2054],{"class":550},[478,8054,8055,8057,8059],{"class":480,"line":640},[478,8056,938],{"class":550},[478,8058,805],{"class":804},[478,8060,820],{"class":550},[478,8062,8063],{"class":480,"line":652},[478,8064,504],{"emptyLinePlaceholder":328},[478,8066,8067,8069,8071],{"class":480,"line":663},[478,8068,801],{"class":550},[478,8070,953],{"class":804},[478,8072,820],{"class":550},[478,8074,8075,8077,8079,8081,8083,8085],{"class":480,"line":674},[478,8076,960],{"class":550},[478,8078,1810],{"class":804},[478,8080,2083],{"class":490},[478,8082,814],{"class":550},[478,8084,2088],{"class":494},[478,8086,820],{"class":550},[478,8088,8089,8091,8093,8095],{"class":480,"line":686},[478,8090,986],{"class":550},[478,8092,2097],{"class":804},[478,8094,2101],{"class":2100},[478,8096,820],{"class":550},[478,8098,8099,8101,8103],{"class":480,"line":696},[478,8100,1036],{"class":550},[478,8102,1810],{"class":804},[478,8104,820],{"class":550},[478,8106,8107,8109,8111],{"class":480,"line":706},[478,8108,938],{"class":550},[478,8110,953],{"class":804},[478,8112,820],{"class":550},[411,8114],{},[11,8116,2124],{"id":177},[16,8118,2127],{},[470,8120,8121],{"className":531,"code":2130,"language":533,"meta":315,"style":315},[49,8122,8123,8127,8145,8165,8181,8193,8201,8205,8209,8227,8251,8259,8263,8267,8285,8305,8321],{"__ignoreMap":315},[478,8124,8125],{"class":480,"line":481},[478,8126,2137],{"class":484},[478,8128,8129,8131,8133,8135,8137,8139,8141,8143],{"class":480,"line":316},[478,8130,825],{"class":540},[478,8132,2144],{"class":838},[478,8134,1082],{"class":540},[478,8136,847],{"class":540},[478,8138,2151],{"class":490},[478,8140,853],{"class":550},[478,8142,872],{"class":494},[478,8144,875],{"class":550},[478,8146,8147,8149,8151,8153,8155,8157,8159,8161,8163],{"class":480,"line":501},[478,8148,2162],{"class":550},[478,8150,883],{"class":490},[478,8152,853],{"class":550},[478,8154,2169],{"class":494},[478,8156,229],{"class":550},[478,8158,2174],{"class":494},[478,8160,229],{"class":550},[478,8162,2179],{"class":494},[478,8164,875],{"class":550},[478,8166,8167,8169,8171,8173,8175,8177,8179],{"class":480,"line":507},[478,8168,2162],{"class":550},[478,8170,907],{"class":490},[478,8172,853],{"class":550},[478,8174,912],{"class":494},[478,8176,229],{"class":550},[478,8178,917],{"class":494},[478,8180,875],{"class":550},[478,8182,8183,8185,8187,8189,8191],{"class":480,"line":513},[478,8184,2162],{"class":550},[478,8186,2204],{"class":490},[478,8188,853],{"class":550},[478,8190,2209],{"class":838},[478,8192,875],{"class":550},[478,8194,8195,8197,8199],{"class":480,"line":640},[478,8196,2162],{"class":550},[478,8198,926],{"class":490},[478,8200,929],{"class":550},[478,8202,8203],{"class":480,"line":652},[478,8204,504],{"emptyLinePlaceholder":328},[478,8206,8207],{"class":480,"line":663},[478,8208,2228],{"class":484},[478,8210,8211,8213,8215,8217,8219,8221,8223,8225],{"class":480,"line":674},[478,8212,825],{"class":540},[478,8214,2235],{"class":838},[478,8216,1082],{"class":540},[478,8218,847],{"class":540},[478,8220,2151],{"class":490},[478,8222,853],{"class":550},[478,8224,872],{"class":494},[478,8226,875],{"class":550},[478,8228,8229,8231,8233,8235,8237,8239,8241,8243,8245,8247,8249],{"class":480,"line":686},[478,8230,2162],{"class":550},[478,8232,883],{"class":490},[478,8234,853],{"class":550},[478,8236,2258],{"class":494},[478,8238,229],{"class":550},[478,8240,2174],{"class":494},[478,8242,229],{"class":550},[478,8244,2267],{"class":494},[478,8246,2270],{"class":550},[478,8248,2273],{"class":494},[478,8250,875],{"class":550},[478,8252,8253,8255,8257],{"class":480,"line":696},[478,8254,2162],{"class":550},[478,8256,926],{"class":490},[478,8258,929],{"class":550},[478,8260,8261],{"class":480,"line":706},[478,8262,504],{"emptyLinePlaceholder":328},[478,8264,8265],{"class":480,"line":728},[478,8266,2292],{"class":484},[478,8268,8269,8271,8273,8275,8277,8279,8281,8283],{"class":480,"line":734},[478,8270,825],{"class":540},[478,8272,2299],{"class":838},[478,8274,1082],{"class":540},[478,8276,847],{"class":540},[478,8278,2151],{"class":490},[478,8280,853],{"class":550},[478,8282,872],{"class":494},[478,8284,875],{"class":550},[478,8286,8287,8289,8291,8293,8295,8297,8299,8301,8303],{"class":480,"line":740},[478,8288,2162],{"class":550},[478,8290,2318],{"class":490},[478,8292,853],{"class":550},[478,8294,2323],{"class":494},[478,8296,229],{"class":550},[478,8298,912],{"class":494},[478,8300,229],{"class":550},[478,8302,2332],{"class":494},[478,8304,875],{"class":550},[478,8306,8307,8309,8311,8313,8315,8317,8319],{"class":480,"line":746},[478,8308,2162],{"class":550},[478,8310,907],{"class":490},[478,8312,853],{"class":550},[478,8314,912],{"class":494},[478,8316,229],{"class":550},[478,8318,917],{"class":494},[478,8320,875],{"class":550},[478,8322,8323,8325,8327],{"class":480,"line":2353},[478,8324,2162],{"class":550},[478,8326,926],{"class":490},[478,8328,929],{"class":550},[16,8330,2362],{},[411,8332],{},[11,8334,2368],{"id":2367},[16,8336,8337,2373,8339,2377],{},[49,8338,255],{},[20,8340,2376],{},[470,8342,8343],{"className":792,"code":2380,"language":794,"meta":315,"style":315},[49,8344,8345,8361,8373,8397,8415,8419,8427,8431,8439,8453,8461,8469,8489,8507,8521,8541,8559,8567,8575,8583,8591,8599,8603,8611,8625,8633,8641],{"__ignoreMap":315},[478,8346,8347,8349,8351,8353,8355,8357,8359],{"class":480,"line":481},[478,8348,801],{"class":550},[478,8350,805],{"class":804},[478,8352,808],{"class":490},[478,8354,811],{"class":490},[478,8356,814],{"class":550},[478,8358,817],{"class":494},[478,8360,820],{"class":550},[478,8362,8363,8365,8367,8369,8371],{"class":480,"line":316},[478,8364,825],{"class":540},[478,8366,1079],{"class":838},[478,8368,1082],{"class":540},[478,8370,1085],{"class":490},[478,8372,929],{"class":550},[478,8374,8375,8377,8379,8381,8383,8385,8387,8389,8391,8393,8395],{"class":480,"line":501},[478,8376,825],{"class":540},[478,8378,828],{"class":550},[478,8380,832],{"class":831},[478,8382,835],{"class":550},[478,8384,1100],{"class":838},[478,8386,842],{"class":550},[478,8388,814],{"class":540},[478,8390,847],{"class":540},[478,8392,850],{"class":490},[478,8394,1111],{"class":550},[478,8396,862],{"class":540},[478,8398,8399,8401,8403,8405,8407,8409,8411,8413],{"class":480,"line":507},[478,8400,867],{"class":490},[478,8402,853],{"class":550},[478,8404,872],{"class":494},[478,8406,1124],{"class":550},[478,8408,1127],{"class":490},[478,8410,1130],{"class":550},[478,8412,1133],{"class":490},[478,8414,929],{"class":550},[478,8416,8417],{"class":480,"line":513},[478,8418,875],{"class":550},[478,8420,8421,8423,8425],{"class":480,"line":640},[478,8422,938],{"class":550},[478,8424,805],{"class":804},[478,8426,820],{"class":550},[478,8428,8429],{"class":480,"line":652},[478,8430,504],{"emptyLinePlaceholder":328},[478,8432,8433,8435,8437],{"class":480,"line":663},[478,8434,801],{"class":550},[478,8436,953],{"class":804},[478,8438,820],{"class":550},[478,8440,8441,8443,8445,8447,8449,8451],{"class":480,"line":674},[478,8442,960],{"class":550},[478,8444,1810],{"class":804},[478,8446,2485],{"class":490},[478,8448,814],{"class":550},[478,8450,2490],{"class":494},[478,8452,820],{"class":550},[478,8454,8455,8457,8459],{"class":480,"line":686},[478,8456,986],{"class":550},[478,8458,2499],{"class":804},[478,8460,820],{"class":550},[478,8462,8463,8465,8467],{"class":480,"line":696},[478,8464,1340],{"class":550},[478,8466,54],{"class":804},[478,8468,820],{"class":550},[478,8470,8471,8473,8475,8477,8479,8481,8483,8485,8487],{"class":480,"line":706},[478,8472,1377],{"class":550},[478,8474,57],{"class":804},[478,8476,966],{"class":490},[478,8478,814],{"class":550},[478,8480,2522],{"class":494},[478,8482,974],{"class":490},[478,8484,814],{"class":550},[478,8486,2529],{"class":494},[478,8488,820],{"class":550},[478,8490,8491,8493,8495,8497,8499,8501,8503,8505],{"class":480,"line":728},[478,8492,1393],{"class":550},[478,8494,28],{"class":804},[478,8496,2540],{"class":490},[478,8498,814],{"class":550},[478,8500,2545],{"class":494},[478,8502,2548],{"class":550},[478,8504,28],{"class":804},[478,8506,820],{"class":550},[478,8508,8509,8511,8513,8515,8517,8519],{"class":480,"line":734},[478,8510,1393],{"class":550},[478,8512,54],{"class":804},[478,8514,1365],{"class":490},[478,8516,814],{"class":550},[478,8518,2565],{"class":494},[478,8520,820],{"class":550},[478,8522,8523,8525,8527,8529,8531,8533,8535,8537,8539],{"class":480,"line":740},[478,8524,2572],{"class":550},[478,8526,57],{"class":804},[478,8528,966],{"class":490},[478,8530,814],{"class":550},[478,8532,2581],{"class":494},[478,8534,974],{"class":490},[478,8536,814],{"class":550},[478,8538,2588],{"class":494},[478,8540,820],{"class":550},[478,8542,8543,8545,8547,8549,8551,8553,8555,8557],{"class":480,"line":746},[478,8544,2595],{"class":550},[478,8546,28],{"class":804},[478,8548,2540],{"class":490},[478,8550,814],{"class":550},[478,8552,2604],{"class":494},[478,8554,2607],{"class":550},[478,8556,28],{"class":804},[478,8558,820],{"class":550},[478,8560,8561,8563,8565],{"class":480,"line":2353},[478,8562,2616],{"class":550},[478,8564,57],{"class":804},[478,8566,820],{"class":550},[478,8568,8569,8571,8573],{"class":480,"line":2623},[478,8570,2626],{"class":550},[478,8572,54],{"class":804},[478,8574,820],{"class":550},[478,8576,8577,8579,8581],{"class":480,"line":2633},[478,8578,1414],{"class":550},[478,8580,57],{"class":804},[478,8582,820],{"class":550},[478,8584,8585,8587,8589],{"class":480,"line":2642},[478,8586,1423],{"class":550},[478,8588,54],{"class":804},[478,8590,820],{"class":550},[478,8592,8593,8595,8597],{"class":480,"line":2651},[478,8594,1432],{"class":550},[478,8596,2499],{"class":804},[478,8598,820],{"class":550},[478,8600,8601],{"class":480,"line":2660},[478,8602,504],{"emptyLinePlaceholder":328},[478,8604,8605,8607,8609],{"class":480,"line":2665},[478,8606,986],{"class":550},[478,8608,2670],{"class":804},[478,8610,820],{"class":550},[478,8612,8613,8615,8617,8619,8621,8623],{"class":480,"line":2675},[478,8614,1340],{"class":550},[478,8616,1166],{"class":804},[478,8618,1169],{"class":490},[478,8620,814],{"class":550},[478,8622,1174],{"class":494},[478,8624,1177],{"class":550},[478,8626,8627,8629,8631],{"class":480,"line":2690},[478,8628,1432],{"class":550},[478,8630,2670],{"class":804},[478,8632,820],{"class":550},[478,8634,8635,8637,8639],{"class":480,"line":2699},[478,8636,1036],{"class":550},[478,8638,1810],{"class":804},[478,8640,820],{"class":550},[478,8642,8643,8645,8647],{"class":480,"line":2708},[478,8644,938],{"class":550},[478,8646,953],{"class":804},[478,8648,820],{"class":550},[16,8650,2717,8651,2721,8653,2725],{},[49,8652,2720],{},[49,8654,2724],{},[411,8656],{},[11,8658,2731],{"id":2730},[16,8660,2734,8661,2737,8663,2740,8665,2744,8667,2748,8669,2752],{},[20,8662,131],{},[49,8664,155],{},[20,8666,2743],{},[20,8668,2747],{},[20,8670,2751],{},[387,8672,8673],{},[16,8674,8675,2759,8677,2763,8679,2767],{},[169,8676,393],{},[20,8678,2762],{},[20,8680,2766],{},[411,8682],{},[11,8684,2773],{"id":2772},[16,8686,2776,8687,2780,8689,2784,8691,2788],{},[20,8688,2779],{},[20,8690,2783],{},[20,8692,2787],{},[16,8694,2791,8695,2795],{},[20,8696,2794],{},[411,8698],{},[11,8700,268],{"id":267},[16,8702,2802,8703,2806,8705,2809,8707,2813,8709,2817,8711,2821,8713,2824],{},[20,8704,2805],{},[20,8706,189],{},[20,8708,2812],{},[20,8710,2816],{},[20,8712,2820],{},[20,8714,159],{},[16,8716,2827],{},[11,8718,298],{"id":297},[16,8720,8721,304,8724,304,8727,304,8730,313],{},[28,8722,2835],{"href":140,"rel":8723},[32],[28,8725,309],{"href":307,"rel":8726},[32],[28,8728,2843],{"href":2841,"rel":8729},[32],[28,8731,2848],{"href":2846,"rel":8732},[32],[16,8734,2851],{},[2853,8736,2855],{},{"title":315,"searchDepth":316,"depth":316,"links":8738},[8739,8740,8741,8742,8743,8744,8745,8746,8747,8748,8749,8750,8751,8752],{"id":343,"depth":316,"text":344},{"id":415,"depth":316,"text":416},{"id":467,"depth":316,"text":468},{"id":578,"depth":316,"text":579},{"id":781,"depth":316,"text":782},{"id":1199,"depth":316,"text":1200},{"id":1483,"depth":316,"text":1484},{"id":1874,"depth":316,"text":1875},{"id":177,"depth":316,"text":2124},{"id":2367,"depth":316,"text":2368},{"id":2730,"depth":316,"text":2731},{"id":2772,"depth":316,"text":2773},{"id":267,"depth":316,"text":268},{"id":297,"depth":316,"text":298},{},{"title":338,"description":2873},[333,2879,2880],{"id":2883,"title":2884,"body":8757,"date":3210,"description":3211,"extension":326,"meta":8976,"navigation":328,"path":3213,"seo":8977,"stem":3215,"tags":8978,"__hash__":3218},{"type":8,"value":8758,"toc":8963},[8759,8761,8769,8799,8801,8813,8815,8841,8843,8845,8849,8851,8853,8855,8872,8877,8879,8881,8898,8903,8905,8907,8909,8931,8936,8938,8940,8945,8947,8949],[11,8760,2890],{"id":2889},[16,8762,2893,8763,2897,8765,260,8767,34],{},[20,8764,2896],{},[20,8766,832],{},[20,8768,2902],{},[54,8770,8771,8781,8789],{},[57,8772,8773,2910,8775,2914,8777,441,8779,2920],{},[60,8774,2880],{"id":2909},[20,8776,2913],{},[20,8778,1210],{},[20,8780,2919],{},[57,8782,8783,8785,2930,8787,34],{},[60,8784,2926],{"id":2925},[20,8786,2929],{},[20,8788,2933],{},[57,8790,8791,8793,2943,8795,2947,8797,34],{},[60,8792,2939],{"id":2938},[20,8794,2942],{},[20,8796,2946],{},[20,8798,2950],{},[11,8800,2954],{"id":2953},[16,8802,2957,8803,2961,8805,2965,8807,2969,8809,2972,8811,2976],{},[20,8804,2960],{},[20,8806,2964],{},[169,8808,2968],{},[20,8810,2950],{},[20,8812,2975],{},[11,8814,2980],{"id":2979},[54,8816,8817,8827,8833,8837],{},[57,8818,8819,2989,8821,2993,8823,2997,8825,3001],{},[60,8820,2988],{"id":2987},[20,8822,2992],{},[20,8824,2996],{},[20,8826,3000],{},[57,8828,8829,3008,8831,3011],{},[60,8830,3007],{"id":3006},[20,8832,131],{},[57,8834,8835,3018],{},[60,8836,3017],{"id":3016},[57,8838,8839,3025],{},[60,8840,3024],{"id":3023},[411,8842],{},[11,8844,3030],{"id":131},[16,8846,3033,8847,3036],{},[20,8848,2946],{},[1833,8850,3040],{"id":3039},[16,8852,3043],{},[1833,8854,2950],{"id":3046},[54,8856,8857,8862,8867],{},[57,8858,8859],{},[28,8860,3055],{"href":3053,"rel":8861},[32],[57,8863,8864],{},[28,8865,3062],{"href":3060,"rel":8866},[32],[57,8868,8869],{},[28,8870,3069],{"href":3067,"rel":8871},[32],[16,8873,3072,8874],{},[28,8875,2968],{"href":3075,"rel":8876},[32],[411,8878],{},[11,8880,3082],{"id":3081},[54,8882,8883,8888,8893],{},[57,8884,8885],{},[28,8886,3091],{"href":3089,"rel":8887},[32],[57,8889,8890],{},[28,8891,3098],{"href":3096,"rel":8892},[32],[57,8894,8895],{},[28,8896,3105],{"href":3103,"rel":8897},[32],[16,8899,3072,8900],{},[28,8901,3111],{"href":3075,"rel":8902},[32],[411,8904],{},[11,8906,3117],{"id":3116},[16,8908,3120],{},[54,8910,8911,8916,8921,8926],{},[57,8912,8913],{},[28,8914,3129],{"href":3127,"rel":8915},[32],[57,8917,8918],{},[28,8919,3136],{"href":3134,"rel":8920},[32],[57,8922,8923],{},[28,8924,3143],{"href":3141,"rel":8925},[32],[57,8927,8928],{},[28,8929,3150],{"href":3148,"rel":8930},[32],[16,8932,3072,8933],{},[28,8934,3157],{"href":3155,"rel":8935},[32],[411,8937],{},[11,8939,3163],{"id":3162},[16,8941,3166,8942],{},[28,8943,3171],{"href":3169,"rel":8944},[32],[411,8946],{},[11,8948,298],{"id":297},[16,8950,8951,304,8954,304,8957,304,8960,313],{},[28,8952,3182],{"href":3180,"rel":8953},[32],[28,8955,3187],{"href":3185,"rel":8956},[32],[28,8958,3143],{"href":3190,"rel":8959},[32],[28,8961,3196],{"href":3194,"rel":8962},[32],{"title":315,"searchDepth":316,"depth":316,"links":8964},[8965,8966,8967,8968,8972,8973,8974,8975],{"id":2889,"depth":316,"text":2890},{"id":2953,"depth":316,"text":2954},{"id":2979,"depth":316,"text":2980},{"id":131,"depth":316,"text":3030,"children":8969},[8970,8971],{"id":3039,"depth":501,"text":3040},{"id":3046,"depth":501,"text":2950},{"id":3081,"depth":316,"text":3082},{"id":3116,"depth":316,"text":3117},{"id":3162,"depth":316,"text":3163},{"id":297,"depth":316,"text":298},{},{"title":2884,"description":3211},[3217],{"id":3220,"title":3221,"body":8980,"date":3681,"description":3682,"extension":326,"meta":9331,"navigation":328,"path":3684,"seo":9332,"stem":3686,"tags":9333,"__hash__":3688},{"type":8,"value":8981,"toc":9325},[8982,9010,9012,9014,9023,9039,9041,9047,9065,9072,9074,9076,9081,9085,9089,9093,9098,9102,9104,9148,9216,9260,9312,9314,9316,9321,9323],[16,8983,3226,8984,3230,8986,3234,8988,3238,8990,260,8992,3244,8994,3247,8996,260,8998,3254,9000,3247,9002,1466,9004,3263,9006,3267,9008,34],{},[20,8985,3229],{},[20,8987,3233],{},[20,8989,3237],{},[20,8991,370],{},[20,8993,3243],{},[20,8995,2926],{},[20,8997,3250],{},[20,8999,3253],{},[20,9001,3257],{},[20,9003,3260],{},[20,9005,3243],{},[20,9007,3266],{},[20,9009,3270],{},[16,9011,3273],{},[11,9013,3277],{"id":3276},[16,9015,3280,9016,3284,9018,3290,9021,3294],{},[20,9017,3283],{},[28,9019,3289],{"href":3287,"rel":9020},[32],[20,9022,3293],{},[470,9024,9025],{"className":472,"code":3297,"language":474,"meta":315,"style":315},[49,9026,9027],{"__ignoreMap":315},[478,9028,9029,9031,9033,9035,9037],{"class":480,"line":481},[478,9030,3304],{"class":490},[478,9032,3307],{"class":494},[478,9034,3310],{"class":494},[478,9036,519],{"class":494},[478,9038,3315],{"class":494},[11,9040,3319],{"id":3318},[16,9042,3322,9043,3326,9045,3330],{},[20,9044,3325],{},[20,9046,3329],{},[54,9048,9049,9053,9057,9061],{},[57,9050,3335,9051],{},[49,9052,3338],{},[57,9054,3341,9055],{},[49,9056,3344],{},[57,9058,3347,9059],{},[49,9060,3350],{},[57,9062,3353,9063],{},[49,9064,3356],{},[16,9066,3359,9067,3362,9069,3368],{},[20,9068,1127],{},[28,9070,3367],{"href":3365,"rel":9071},[32],[11,9073,3372],{"id":3371},[16,9075,3375],{},[470,9077,9079],{"className":9078,"code":3379,"language":1220},[1218],[49,9080,3379],{"__ignoreMap":315},[16,9082,3384,9083,3388],{},[49,9084,3387],{},[16,9086,3391,9087,3395],{},[49,9088,3394],{},[16,9090,3398,9091,3402],{},[49,9092,3401],{},[470,9094,9096],{"className":9095,"code":3406,"language":1220},[1218],[49,9097,3406],{"__ignoreMap":315},[16,9099,3411,9100,3415],{},[49,9101,3414],{},[16,9103,3418],{},[470,9105,9106],{"className":3421,"code":3422,"language":3423,"meta":315,"style":315},[49,9107,9108,9112,9116,9120,9124,9128,9132,9136,9140,9144],{"__ignoreMap":315},[478,9109,9110],{"class":480,"line":481},[478,9111,3430],{},[478,9113,9114],{"class":480,"line":316},[478,9115,504],{"emptyLinePlaceholder":328},[478,9117,9118],{"class":480,"line":501},[478,9119,3439],{},[478,9121,9122],{"class":480,"line":507},[478,9123,3444],{},[478,9125,9126],{"class":480,"line":513},[478,9127,3449],{},[478,9129,9130],{"class":480,"line":640},[478,9131,504],{"emptyLinePlaceholder":328},[478,9133,9134],{"class":480,"line":652},[478,9135,1511],{},[478,9137,9138],{"class":480,"line":663},[478,9139,3462],{},[478,9141,9142],{"class":480,"line":674},[478,9143,3467],{},[478,9145,9146],{"class":480,"line":686},[478,9147,1591],{},[470,9149,9150],{"className":3421,"code":3474,"language":3423,"meta":315,"style":315},[49,9151,9152,9156,9160,9164,9168,9172,9176,9180,9184,9188,9192,9196,9200,9204,9208,9212],{"__ignoreMap":315},[478,9153,9154],{"class":480,"line":481},[478,9155,3481],{},[478,9157,9158],{"class":480,"line":316},[478,9159,504],{"emptyLinePlaceholder":328},[478,9161,9162],{"class":480,"line":501},[478,9163,3490],{},[478,9165,9166],{"class":480,"line":507},[478,9167,3444],{},[478,9169,9170],{"class":480,"line":513},[478,9171,3499],{},[478,9173,9174],{"class":480,"line":640},[478,9175,3504],{},[478,9177,9178],{"class":480,"line":652},[478,9179,3509],{},[478,9181,9182],{"class":480,"line":663},[478,9183,504],{"emptyLinePlaceholder":328},[478,9185,9186],{"class":480,"line":674},[478,9187,504],{"emptyLinePlaceholder":328},[478,9189,9190],{"class":480,"line":686},[478,9191,1511],{},[478,9193,9194],{"class":480,"line":696},[478,9195,3526],{},[478,9197,9198],{"class":480,"line":706},[478,9199,3531],{},[478,9201,9202],{"class":480,"line":728},[478,9203,3536],{},[478,9205,9206],{"class":480,"line":734},[478,9207,3541],{},[478,9209,9210],{"class":480,"line":740},[478,9211,3546],{},[478,9213,9214],{"class":480,"line":746},[478,9215,1591],{},[470,9217,9218],{"className":3421,"code":3553,"language":3423,"meta":315,"style":315},[49,9219,9220,9224,9228,9232,9236,9240,9244,9248,9252,9256],{"__ignoreMap":315},[478,9221,9222],{"class":480,"line":481},[478,9223,3560],{},[478,9225,9226],{"class":480,"line":316},[478,9227,504],{"emptyLinePlaceholder":328},[478,9229,9230],{"class":480,"line":501},[478,9231,3439],{},[478,9233,9234],{"class":480,"line":507},[478,9235,3444],{},[478,9237,9238],{"class":480,"line":513},[478,9239,3449],{},[478,9241,9242],{"class":480,"line":640},[478,9243,504],{"emptyLinePlaceholder":328},[478,9245,9246],{"class":480,"line":652},[478,9247,1511],{},[478,9249,9250],{"class":480,"line":663},[478,9251,3589],{},[478,9253,9254],{"class":480,"line":674},[478,9255,3594],{},[478,9257,9258],{"class":480,"line":686},[478,9259,1591],{},[470,9261,9262],{"className":3421,"code":3601,"language":3423,"meta":315,"style":315},[49,9263,9264,9268,9272,9276,9280,9284,9288,9292,9296,9300,9304,9308],{"__ignoreMap":315},[478,9265,9266],{"class":480,"line":481},[478,9267,3481],{},[478,9269,9270],{"class":480,"line":316},[478,9271,504],{"emptyLinePlaceholder":328},[478,9273,9274],{"class":480,"line":501},[478,9275,3616],{},[478,9277,9278],{"class":480,"line":507},[478,9279,3444],{},[478,9281,9282],{"class":480,"line":513},[478,9283,3625],{},[478,9285,9286],{"class":480,"line":640},[478,9287,3630],{},[478,9289,9290],{"class":480,"line":652},[478,9291,3509],{},[478,9293,9294],{"class":480,"line":663},[478,9295,504],{"emptyLinePlaceholder":328},[478,9297,9298],{"class":480,"line":674},[478,9299,1511],{},[478,9301,9302],{"class":480,"line":686},[478,9303,3647],{},[478,9305,9306],{"class":480,"line":696},[478,9307,3652],{},[478,9309,9310],{"class":480,"line":706},[478,9311,1591],{},[11,9313,3660],{"id":3659},[16,9315,3663],{},[16,9317,9318],{},[28,9319,3289],{"href":3668,"rel":9320},[32],[16,9322,2851],{},[2853,9324,3674],{},{"title":315,"searchDepth":316,"depth":316,"links":9326},[9327,9328,9329,9330],{"id":3276,"depth":316,"text":3277},{"id":3318,"depth":316,"text":3319},{"id":3371,"depth":316,"text":3372},{"id":3659,"depth":316,"text":3660},{},{"title":3221,"description":3682},[3217],{"id":3690,"title":3691,"body":9335,"date":3699,"description":3700,"extension":326,"meta":9341,"navigation":328,"path":3702,"seo":9342,"stem":3704,"tags":9343,"__hash__":3707},{"type":8,"value":9336,"toc":9339},[9337],[16,9338,3696],{},{"title":315,"searchDepth":316,"depth":316,"links":9340},[],{"draft":328},{"title":3691,"description":3700},[3706],{"id":3709,"title":3710,"body":9345,"date":4866,"description":4867,"extension":326,"meta":10251,"navigation":328,"path":4869,"seo":10252,"stem":4871,"tags":10253,"__hash__":4874},{"type":8,"value":9346,"toc":10242},[9347,9351,9353,9367,9369,9373,9401,9406,9408,9412,9652,9658,9764,9766,9770,9772,9782,9850,9856,10114,10120,10132,10134,10146,10148,10156,10168,10176,10188,10192,10206,10212,10226,10238,10240],[16,9348,3715,9349,3719],{},[49,9350,3718],{},[11,9352,3723],{"id":3722},[16,9354,3726,9355,3729,9357,3263,9359,229,9361,3739,9363,3743,9365,3746],{},[49,9356,3718],{},[20,9358,3732],{},[20,9360,3735],{},[20,9362,3738],{},[20,9364,3742],{},[49,9366,3718],{},[11,9368,3750],{"id":3749},[16,9370,3753,9371,3757],{},[20,9372,3756],{},[54,9374,9375,9377,9382,9384,9389,9393,9397],{},[57,9376,3762],{},[57,9378,3765,9379,34],{},[28,9380,3770],{"href":3768,"rel":9381},[32],[57,9383,3773],{},[57,9385,3776,9386,34],{},[28,9387,3781],{"href":3779,"rel":9388},[32],[57,9390,3784,9391,3788],{},[20,9392,3787],{},[57,9394,3791,9395,3795],{},[20,9396,3794],{},[57,9398,3798,9399,3802],{},[20,9400,3801],{},[16,9402,3805,9403,34],{},[28,9404,3810],{"href":3808,"rel":9405},[32],[11,9407,3814],{"id":3813},[16,9409,3817,9410,3821],{},[49,9411,3820],{},[470,9413,9414],{"className":472,"code":3824,"language":474,"meta":315,"style":315},[49,9415,9416,9424,9428,9450,9478,9482,9490,9496,9500,9508,9514,9520,9524,9528,9534,9546,9550,9554,9562,9570,9578,9586,9594,9610,9614,9622,9630,9634,9638,9642],{"__ignoreMap":315},[478,9417,9418,9420,9422],{"class":480,"line":481},[478,9419,3304],{"class":490},[478,9421,3833],{"class":494},[478,9423,3836],{"class":494},[478,9425,9426],{"class":480,"line":316},[478,9427,504],{"emptyLinePlaceholder":328},[478,9429,9430,9432,9434,9436,9438,9440,9442,9444,9446,9448],{"class":480,"line":501},[478,9431,3845],{"class":490},[478,9433,3848],{"class":494},[478,9435,3851],{"class":494},[478,9437,3854],{"class":494},[478,9439,3857],{"class":494},[478,9441,3860],{"class":494},[478,9443,3863],{"class":494},[478,9445,3866],{"class":494},[478,9447,3869],{"class":494},[478,9449,3872],{"class":494},[478,9451,9452,9454,9456,9458,9460,9462,9464,9466,9468,9470,9472,9474,9476],{"class":480,"line":507},[478,9453,3877],{"class":490},[478,9455,3880],{"class":494},[478,9457,3883],{"class":494},[478,9459,3886],{"class":494},[478,9461,3889],{"class":494},[478,9463,3892],{"class":494},[478,9465,3895],{"class":494},[478,9467,3898],{"class":494},[478,9469,3901],{"class":494},[478,9471,3904],{"class":494},[478,9473,3907],{"class":494},[478,9475,3910],{"class":494},[478,9477,3913],{"class":494},[478,9479,9480],{"class":480,"line":513},[478,9481,504],{"emptyLinePlaceholder":328},[478,9483,9484,9486,9488],{"class":480,"line":640},[478,9485,86],{"class":490},[478,9487,3924],{"class":494},[478,9489,3927],{"class":550},[478,9491,9492,9494],{"class":480,"line":652},[478,9493,3932],{"class":490},[478,9495,3935],{"class":550},[478,9497,9498],{"class":480,"line":663},[478,9499,3940],{"class":490},[478,9501,9502,9504,9506],{"class":480,"line":674},[478,9503,3945],{"class":490},[478,9505,3948],{"class":494},[478,9507,3951],{"class":550},[478,9509,9510,9512],{"class":480,"line":686},[478,9511,3956],{"class":838},[478,9513,3959],{"class":494},[478,9515,9516,9518],{"class":480,"line":696},[478,9517,3964],{"class":490},[478,9519,3967],{"class":494},[478,9521,9522],{"class":480,"line":706},[478,9523,3972],{"class":490},[478,9525,9526],{"class":480,"line":728},[478,9527,3977],{"class":490},[478,9529,9530,9532],{"class":480,"line":734},[478,9531,3982],{"class":490},[478,9533,3985],{"class":550},[478,9535,9536,9538,9540,9542,9544],{"class":480,"line":740},[478,9537,3990],{"class":490},[478,9539,3904],{"class":494},[478,9541,3995],{"class":494},[478,9543,3904],{"class":494},[478,9545,4000],{"class":494},[478,9547,9548],{"class":480,"line":746},[478,9549,504],{"emptyLinePlaceholder":328},[478,9551,9552],{"class":480,"line":2353},[478,9553,1511],{"class":550},[478,9555,9556,9558,9560],{"class":480,"line":2623},[478,9557,4013],{"class":490},[478,9559,528],{"class":838},[478,9561,4018],{"class":494},[478,9563,9564,9566,9568],{"class":480,"line":2633},[478,9565,4023],{"class":490},[478,9567,528],{"class":838},[478,9569,4028],{"class":494},[478,9571,9572,9574,9576],{"class":480,"line":2642},[478,9573,4033],{"class":490},[478,9575,528],{"class":838},[478,9577,4038],{"class":494},[478,9579,9580,9582,9584],{"class":480,"line":2651},[478,9581,4043],{"class":490},[478,9583,528],{"class":838},[478,9585,4048],{"class":494},[478,9587,9588,9590,9592],{"class":480,"line":2660},[478,9589,4053],{"class":490},[478,9591,528],{"class":838},[478,9593,4058],{"class":494},[478,9595,9596,9598,9600,9602,9604,9606,9608],{"class":480,"line":2665},[478,9597,4063],{"class":490},[478,9599,528],{"class":838},[478,9601,4068],{"class":494},[478,9603,4071],{"class":838},[478,9605,4074],{"class":494},[478,9607,4071],{"class":838},[478,9609,4079],{"class":494},[478,9611,9612],{"class":480,"line":2675},[478,9613,743],{"class":550},[478,9615,9616,9618,9620],{"class":480,"line":2690},[478,9617,4088],{"class":490},[478,9619,528],{"class":838},[478,9621,4038],{"class":494},[478,9623,9624,9626,9628],{"class":480,"line":2699},[478,9625,4097],{"class":490},[478,9627,528],{"class":838},[478,9629,4102],{"class":494},[478,9631,9632],{"class":480,"line":2708},[478,9633,1591],{"class":550},[478,9635,9636],{"class":480,"line":4109},[478,9637,504],{"emptyLinePlaceholder":328},[478,9639,9640],{"class":480,"line":4114},[478,9641,504],{"emptyLinePlaceholder":328},[478,9643,9644,9646,9648,9650],{"class":480,"line":4119},[478,9645,4122],{"class":490},[478,9647,4125],{"class":494},[478,9649,4128],{"class":494},[478,9651,4131],{"class":550},[16,9653,4134,9654,4138,9656,4142],{},[20,9655,4137],{},[49,9657,4141],{},[470,9659,9660],{"className":472,"code":4145,"language":474,"meta":315,"style":315},[49,9661,9662,9672,9680,9684,9692,9700,9708,9716,9724,9740,9744,9752,9760],{"__ignoreMap":315},[478,9663,9664,9666,9668,9670],{"class":480,"line":481},[478,9665,3304],{"class":490},[478,9667,3833],{"class":494},[478,9669,4156],{"class":494},[478,9671,4159],{"class":838},[478,9673,9674,9676,9678],{"class":480,"line":316},[478,9675,4164],{"class":490},[478,9677,3904],{"class":494},[478,9679,4169],{"class":494},[478,9681,9682],{"class":480,"line":501},[478,9683,1511],{"class":550},[478,9685,9686,9688,9690],{"class":480,"line":507},[478,9687,4013],{"class":490},[478,9689,528],{"class":838},[478,9691,4018],{"class":494},[478,9693,9694,9696,9698],{"class":480,"line":513},[478,9695,4023],{"class":490},[478,9697,528],{"class":838},[478,9699,4028],{"class":494},[478,9701,9702,9704,9706],{"class":480,"line":640},[478,9703,4033],{"class":490},[478,9705,528],{"class":838},[478,9707,4038],{"class":494},[478,9709,9710,9712,9714],{"class":480,"line":652},[478,9711,4043],{"class":490},[478,9713,528],{"class":838},[478,9715,4048],{"class":494},[478,9717,9718,9720,9722],{"class":480,"line":663},[478,9719,4053],{"class":490},[478,9721,528],{"class":838},[478,9723,4058],{"class":494},[478,9725,9726,9728,9730,9732,9734,9736,9738],{"class":480,"line":674},[478,9727,4063],{"class":490},[478,9729,528],{"class":838},[478,9731,4068],{"class":494},[478,9733,4071],{"class":838},[478,9735,4074],{"class":494},[478,9737,4071],{"class":838},[478,9739,4079],{"class":494},[478,9741,9742],{"class":480,"line":686},[478,9743,743],{"class":550},[478,9745,9746,9748,9750],{"class":480,"line":696},[478,9747,4088],{"class":490},[478,9749,528],{"class":838},[478,9751,4038],{"class":494},[478,9753,9754,9756,9758],{"class":480,"line":706},[478,9755,4097],{"class":490},[478,9757,528],{"class":838},[478,9759,4102],{"class":494},[478,9761,9762],{"class":480,"line":728},[478,9763,1591],{"class":550},[11,9765,4257],{"id":4256},[16,9767,4260,9768,4264],{},[20,9769,4263],{},[11,9771,4268],{"id":4267},[16,9773,4271,9774,441,9776,4276,9778,4280,9780,34],{},[20,9775,86],{},[20,9777,3801],{},[49,9779,4279],{},[20,9781,4283],{},[54,9783,9784],{},[57,9785,4288,9786,9800,4308,9802,4312,9804,4315,9806,528,9808,9830,4348,9832,4352,9834,4355,9836],{},[470,9787,9788],{"className":472,"code":4291,"language":474,"meta":315,"style":315},[49,9789,9790],{"__ignoreMap":315},[478,9791,9792,9794,9796,9798],{"class":480,"line":481},[478,9793,3304],{"class":490},[478,9795,3833],{"class":494},[478,9797,519],{"class":494},[478,9799,4304],{"class":494},[4306,9801],{},[20,9803,4311],{},[20,9805,3718],{},[20,9807,3801],{},[470,9809,9810],{"className":1497,"code":4320,"language":1499,"meta":315,"style":315},[49,9811,9812,9818,9826],{"__ignoreMap":315},[478,9813,9814,9816],{"class":480,"line":481},[478,9815,4327],{"class":494},[478,9817,4330],{"class":550},[478,9819,9820,9822,9824],{"class":480,"line":316},[478,9821,4335],{"class":838},[478,9823,835],{"class":550},[478,9825,4340],{"class":494},[478,9827,9828],{"class":480,"line":501},[478,9829,4345],{"class":550},[4306,9831],{},[20,9833,4351],{},[20,9835,86],{},[470,9837,9838],{"className":472,"code":4358,"language":474,"meta":315,"style":315},[49,9839,9840],{"__ignoreMap":315},[478,9841,9842,9844,9846,9848],{"class":480,"line":481},[478,9843,3304],{"class":490},[478,9845,3833],{"class":494},[478,9847,519],{"class":494},[478,9849,4371],{"class":494},[16,9851,4374,9852,4377,9854,34],{},[20,9853,3801],{},[20,9855,3718],{},[470,9857,9858],{"className":1497,"code":4382,"language":1499,"meta":315,"style":315},[49,9859,9860,9864,9874,9884,9894,9900,9910,9920,9930,9938,9942,9948,9958,9968,9978,9988,9998,10008,10018,10028,10038,10048,10058,10068,10078,10088,10098,10106,10110],{"__ignoreMap":315},[478,9861,9862],{"class":480,"line":481},[478,9863,1511],{"class":550},[478,9865,9866,9868,9870,9872],{"class":480,"line":316},[478,9867,4013],{"class":838},[478,9869,835],{"class":550},[478,9871,4397],{"class":494},[478,9873,649],{"class":550},[478,9875,9876,9878,9880,9882],{"class":480,"line":501},[478,9877,4023],{"class":838},[478,9879,835],{"class":550},[478,9881,4408],{"class":494},[478,9883,649],{"class":550},[478,9885,9886,9888,9890,9892],{"class":480,"line":507},[478,9887,4415],{"class":838},[478,9889,835],{"class":550},[478,9891,898],{"class":838},[478,9893,649],{"class":550},[478,9895,9896,9898],{"class":480,"line":513},[478,9897,4053],{"class":838},[478,9899,4330],{"class":550},[478,9901,9902,9904,9906,9908],{"class":480,"line":640},[478,9903,4432],{"class":838},[478,9905,835],{"class":550},[478,9907,4437],{"class":494},[478,9909,649],{"class":550},[478,9911,9912,9914,9916,9918],{"class":480,"line":652},[478,9913,4444],{"class":838},[478,9915,835],{"class":550},[478,9917,4449],{"class":494},[478,9919,649],{"class":550},[478,9921,9922,9924,9926,9928],{"class":480,"line":663},[478,9923,4456],{"class":838},[478,9925,835],{"class":550},[478,9927,4461],{"class":494},[478,9929,649],{"class":550},[478,9931,9932,9934,9936],{"class":480,"line":674},[478,9933,4468],{"class":838},[478,9935,835],{"class":550},[478,9937,4473],{"class":494},[478,9939,9940],{"class":480,"line":686},[478,9941,743],{"class":550},[478,9943,9944,9946],{"class":480,"line":696},[478,9945,4482],{"class":838},[478,9947,4330],{"class":550},[478,9949,9950,9952,9954,9956],{"class":480,"line":706},[478,9951,4489],{"class":838},[478,9953,835],{"class":550},[478,9955,4494],{"class":494},[478,9957,649],{"class":550},[478,9959,9960,9962,9964,9966],{"class":480,"line":728},[478,9961,4501],{"class":838},[478,9963,835],{"class":550},[478,9965,4506],{"class":494},[478,9967,649],{"class":550},[478,9969,9970,9972,9974,9976],{"class":480,"line":734},[478,9971,4513],{"class":838},[478,9973,835],{"class":550},[478,9975,4518],{"class":494},[478,9977,649],{"class":550},[478,9979,9980,9982,9984,9986],{"class":480,"line":740},[478,9981,4525],{"class":838},[478,9983,835],{"class":550},[478,9985,4530],{"class":494},[478,9987,649],{"class":550},[478,9989,9990,9992,9994,9996],{"class":480,"line":746},[478,9991,4537],{"class":838},[478,9993,835],{"class":550},[478,9995,4542],{"class":494},[478,9997,649],{"class":550},[478,9999,10000,10002,10004,10006],{"class":480,"line":2353},[478,10001,4549],{"class":838},[478,10003,835],{"class":550},[478,10005,4494],{"class":494},[478,10007,649],{"class":550},[478,10009,10010,10012,10014,10016],{"class":480,"line":2623},[478,10011,4560],{"class":838},[478,10013,835],{"class":550},[478,10015,4565],{"class":494},[478,10017,649],{"class":550},[478,10019,10020,10022,10024,10026],{"class":480,"line":2633},[478,10021,4572],{"class":838},[478,10023,835],{"class":550},[478,10025,4494],{"class":494},[478,10027,649],{"class":550},[478,10029,10030,10032,10034,10036],{"class":480,"line":2642},[478,10031,4583],{"class":838},[478,10033,835],{"class":550},[478,10035,4588],{"class":494},[478,10037,649],{"class":550},[478,10039,10040,10042,10044,10046],{"class":480,"line":2651},[478,10041,4595],{"class":838},[478,10043,835],{"class":550},[478,10045,4600],{"class":494},[478,10047,649],{"class":550},[478,10049,10050,10052,10054,10056],{"class":480,"line":2660},[478,10051,4607],{"class":838},[478,10053,835],{"class":550},[478,10055,4612],{"class":494},[478,10057,649],{"class":550},[478,10059,10060,10062,10064,10066],{"class":480,"line":2665},[478,10061,4619],{"class":838},[478,10063,835],{"class":550},[478,10065,4612],{"class":494},[478,10067,649],{"class":550},[478,10069,10070,10072,10074,10076],{"class":480,"line":2675},[478,10071,4630],{"class":838},[478,10073,835],{"class":550},[478,10075,4635],{"class":494},[478,10077,649],{"class":550},[478,10079,10080,10082,10084,10086],{"class":480,"line":2690},[478,10081,4642],{"class":838},[478,10083,835],{"class":550},[478,10085,4647],{"class":494},[478,10087,649],{"class":550},[478,10089,10090,10092,10094,10096],{"class":480,"line":2699},[478,10091,4654],{"class":838},[478,10093,835],{"class":550},[478,10095,4659],{"class":494},[478,10097,649],{"class":550},[478,10099,10100,10102,10104],{"class":480,"line":2708},[478,10101,4666],{"class":838},[478,10103,835],{"class":550},[478,10105,4671],{"class":494},[478,10107,10108],{"class":480,"line":4109},[478,10109,3546],{"class":550},[478,10111,10112],{"class":480,"line":4114},[478,10113,1591],{"class":550},[16,10115,4682,10116,4685,10118,34],{},[20,10117,4351],{},[20,10119,4688],{},[470,10121,10122],{"className":472,"code":4691,"language":474,"meta":315,"style":315},[49,10123,10124],{"__ignoreMap":315},[478,10125,10126,10128,10130],{"class":480,"line":481},[478,10127,3304],{"class":490},[478,10129,3833],{"class":494},[478,10131,4702],{"class":494},[11,10133,4706],{"id":4705},[16,10135,4709,10136,4715,10139,1466,10141,4720,10143,34],{},[28,10137,4714],{"href":4712,"rel":10138},[32],[20,10140,4688],{},[20,10142,3718],{},[28,10144,4725],{"href":4723,"rel":10145},[32],[11,10147,4729],{"id":4728},[16,10149,4732,10150,4736,10152,4740,10154,34],{},[20,10151,4735],{},[20,10153,4739],{},[20,10155,3801],{},[470,10157,10158],{"className":472,"code":4745,"language":474,"meta":315,"style":315},[49,10159,10160],{"__ignoreMap":315},[478,10161,10162,10164,10166],{"class":480,"line":481},[478,10163,3304],{"class":490},[478,10165,3833],{"class":494},[478,10167,4756],{"class":494},[16,10169,4759,10170,4762,10172,4765,10174,4769],{},[20,10171,4739],{},[20,10173,3801],{},[20,10175,4768],{},[470,10177,10178],{"className":472,"code":4772,"language":474,"meta":315,"style":315},[49,10179,10180],{"__ignoreMap":315},[478,10181,10182,10184,10186],{"class":480,"line":481},[478,10183,3304],{"class":490},[478,10185,3833],{"class":494},[478,10187,4783],{"class":494},[16,10189,4786,10190,528],{},[20,10191,3801],{},[470,10193,10194],{"className":472,"code":4791,"language":474,"meta":315,"style":315},[49,10195,10196],{"__ignoreMap":315},[478,10197,10198,10200,10202,10204],{"class":480,"line":481},[478,10199,3304],{"class":490},[478,10201,3833],{"class":494},[478,10203,4802],{"class":494},[478,10205,4805],{"class":494},[16,10207,4808,10208,4811,10210,4815],{},[20,10209,4351],{},[169,10211,4814],{},[470,10213,10214],{"className":472,"code":4818,"language":474,"meta":315,"style":315},[49,10215,10216],{"__ignoreMap":315},[478,10217,10218,10220,10222,10224],{"class":480,"line":481},[478,10219,3304],{"class":490},[478,10221,3833],{"class":494},[478,10223,519],{"class":494},[478,10225,4831],{"class":494},[16,10227,4834,10228,4837,10230,182,10232,1466,10234,4846,10236,4850],{},[20,10229,3718],{},[20,10231,4840],{},[20,10233,4843],{},[20,10235,3738],{},[20,10237,4849],{},[16,10239,4853],{},[2853,10241,4856],{},{"title":315,"searchDepth":316,"depth":316,"links":10243},[10244,10245,10246,10247,10248,10249,10250],{"id":3722,"depth":316,"text":3723},{"id":3749,"depth":316,"text":3750},{"id":3813,"depth":316,"text":3814},{"id":4256,"depth":316,"text":4257},{"id":4267,"depth":316,"text":4268},{"id":4705,"depth":316,"text":4706},{"id":4728,"depth":316,"text":4729},{},{"title":3710,"description":4867},[4873,2880],{"id":4876,"title":4877,"body":10255,"date":6200,"description":6201,"extension":326,"meta":11298,"navigation":328,"path":6203,"seo":11299,"stem":6205,"tags":11300,"__hash__":6207},{"type":8,"value":10256,"toc":11293},[10257,10261,10277,10279,10300,10310,10312,10568,10578,10580,10604,10606,10642,10657,10659,10674,10802,10820,10822,10870,10876,11002,11012,11148,11150,11164,11212,11222,11274,11287,11291],[387,10258,10259],{},[16,10260,4884],{},[16,10262,10263,4891,10266,4897,10269,4901,10271,229,10273,260,10275,4911],{},[28,10264,3091],{"href":4889,"rel":10265},[32],[28,10267,4896],{"href":4894,"rel":10268},[32],[49,10270,4900],{},[49,10272,4904],{},[49,10274,4907],{},[49,10276,4910],{},[11,10278,4914],{"id":450},[16,10280,4917,10281,4923,10284,3284,10286,4930,10288,4934,10290,4938,10292,4942,10294,4945,10296,4949,10298,4953],{},[28,10282,4922],{"href":4920,"rel":10283},[32],[20,10285,4926],{},[49,10287,4929],{},[49,10289,4933],{},[49,10291,4937],{},[49,10293,4941],{},[49,10295,4929],{},[49,10297,4948],{},[20,10299,4952],{},[16,10301,4956,10302,4959,10304,4963,10306,4967,10308,4970],{},[49,10303,4900],{},[20,10305,4962],{},[49,10307,4966],{},[49,10309,4900],{},[16,10311,4973],{},[54,10313,10314,10414,10496],{},[57,10315,10316,4982,10318,4986,10320,4990,10322,4994,10324],{},[60,10317,4981],{"id":4980},[49,10319,4985],{},[20,10321,4989],{},[49,10323,4993],{},[470,10325,10326],{"className":4997,"code":4998,"language":4999,"meta":315,"style":315},[49,10327,10328,10340,10346,10350,10364,10390,10402,10406,10410],{"__ignoreMap":315},[478,10329,10330,10332,10334,10336,10338],{"class":480,"line":481},[478,10331,541],{"class":540},[478,10333,544],{"class":540},[478,10335,5010],{"class":540},[478,10337,5013],{"class":490},[478,10339,5016],{"class":550},[478,10341,10342,10344],{"class":480,"line":316},[478,10343,5021],{"class":540},[478,10345,5024],{"class":550},[478,10347,10348],{"class":480,"line":501},[478,10349,5029],{"class":550},[478,10351,10352,10354,10356,10358,10360,10362],{"class":480,"line":507},[478,10353,1340],{"class":550},[478,10355,5036],{"class":804},[478,10357,5039],{"class":490},[478,10359,814],{"class":540},[478,10361,5044],{"class":494},[478,10363,1177],{"class":550},[478,10365,10366,10368,10370,10372,10374,10376,10378,10380,10382,10384,10386,10388],{"class":480,"line":513},[478,10367,1340],{"class":550},[478,10369,5053],{"class":804},[478,10371,5056],{"class":490},[478,10373,814],{"class":540},[478,10375,5061],{"class":494},[478,10377,5064],{"class":490},[478,10379,814],{"class":540},[478,10381,5069],{"class":494},[478,10383,5072],{"class":490},[478,10385,814],{"class":540},[478,10387,5077],{"class":494},[478,10389,1177],{"class":550},[478,10391,10392,10394,10396,10398,10400],{"class":480,"line":640},[478,10393,1340],{"class":550},[478,10395,228],{"class":804},[478,10397,5088],{"class":550},[478,10399,228],{"class":804},[478,10401,820],{"class":550},[478,10403,10404],{"class":480,"line":652},[478,10405,5097],{"class":550},[478,10407,10408],{"class":480,"line":663},[478,10409,5102],{"class":550},[478,10411,10412],{"class":480,"line":674},[478,10413,1591],{"class":550},[57,10415,10416,5113,10418,5116,10420,5119,10422,5123,10424,5126,10426,5130,10428],{},[60,10417,5112],{"id":5111},[49,10419,4900],{},[49,10421,5112],{},[20,10423,5122],{},[20,10425,4952],{},[20,10427,5129],{},[470,10429,10430],{"className":4997,"code":5133,"language":4999,"meta":315,"style":315},[49,10431,10432,10448,10454,10468,10480,10488,10492],{"__ignoreMap":315},[478,10433,10434,10436,10438,10440,10442,10444,10446],{"class":480,"line":481},[478,10435,541],{"class":540},[478,10437,544],{"class":540},[478,10439,5010],{"class":540},[478,10441,5146],{"class":490},[478,10443,5149],{"class":550},[478,10445,5152],{"class":831},[478,10447,5155],{"class":550},[478,10449,10450,10452],{"class":480,"line":316},[478,10451,5021],{"class":540},[478,10453,5024],{"class":550},[478,10455,10456,10458,10460,10462,10464,10466],{"class":480,"line":501},[478,10457,986],{"class":550},[478,10459,5168],{"class":804},[478,10461,811],{"class":490},[478,10463,814],{"class":540},[478,10465,5175],{"class":494},[478,10467,820],{"class":550},[478,10469,10470,10472,10474,10476,10478],{"class":480,"line":507},[478,10471,1340],{"class":550},[478,10473,761],{"class":804},[478,10475,5186],{"class":550},[478,10477,761],{"class":804},[478,10479,820],{"class":550},[478,10481,10482,10484,10486],{"class":480,"line":513},[478,10483,1432],{"class":550},[478,10485,5168],{"class":804},[478,10487,820],{"class":550},[478,10489,10490],{"class":480,"line":640},[478,10491,5102],{"class":550},[478,10493,10494],{"class":480,"line":652},[478,10495,1591],{"class":550},[57,10497,10498,5213,10500,441,10502,5220,10504,441,10506,5227,10508,34,10510],{},[60,10499,5212],{"id":5211},[49,10501,5216],{},[20,10503,5219],{},[20,10505,5223],{},[20,10507,5226],{},[49,10509,5168],{},[470,10511,10512],{"className":4997,"code":5232,"language":4999,"meta":315,"style":315},[49,10513,10514,10526,10532,10540,10552,10560,10564],{"__ignoreMap":315},[478,10515,10516,10518,10520,10522,10524],{"class":480,"line":481},[478,10517,541],{"class":540},[478,10519,544],{"class":540},[478,10521,5010],{"class":540},[478,10523,5245],{"class":490},[478,10525,5016],{"class":550},[478,10527,10528,10530],{"class":480,"line":316},[478,10529,5021],{"class":540},[478,10531,5024],{"class":550},[478,10533,10534,10536,10538],{"class":480,"line":501},[478,10535,986],{"class":550},[478,10537,1810],{"class":804},[478,10539,820],{"class":550},[478,10541,10542,10544,10546,10548,10550],{"class":480,"line":507},[478,10543,1340],{"class":550},[478,10545,5268],{"class":804},[478,10547,5271],{"class":550},[478,10549,5268],{"class":804},[478,10551,820],{"class":550},[478,10553,10554,10556,10558],{"class":480,"line":513},[478,10555,1432],{"class":550},[478,10557,1810],{"class":804},[478,10559,820],{"class":550},[478,10561,10562],{"class":480,"line":640},[478,10563,5102],{"class":550},[478,10565,10566],{"class":480,"line":652},[478,10567,1591],{"class":550},[16,10569,5294,10570,5298,10572,260,10574,5303,10576,5307],{},[20,10571,5297],{},[49,10573,4929],{},[49,10575,4900],{},[49,10577,5306],{},[16,10579,5310],{},[470,10581,10582],{"className":4997,"code":5313,"language":4999,"meta":315,"style":315},[49,10583,10584,10588,10592,10596,10600],{"__ignoreMap":315},[478,10585,10586],{"class":480,"line":481},[478,10587,5320],{"class":484},[478,10589,10590],{"class":480,"line":316},[478,10591,5325],{"class":550},[478,10593,10594],{"class":480,"line":501},[478,10595,5330],{"class":550},[478,10597,10598],{"class":480,"line":507},[478,10599,5335],{"class":550},[478,10601,10602],{"class":480,"line":513},[478,10603,5340],{"class":550},[16,10605,5343],{},[470,10607,10608],{"className":4997,"code":5346,"language":4999,"meta":315,"style":315},[49,10609,10610,10614,10618,10622,10626,10630,10634,10638],{"__ignoreMap":315},[478,10611,10612],{"class":480,"line":481},[478,10613,5353],{"class":484},[478,10615,10616],{"class":480,"line":316},[478,10617,5358],{"class":550},[478,10619,10620],{"class":480,"line":501},[478,10621,5363],{"class":550},[478,10623,10624],{"class":480,"line":507},[478,10625,5368],{"class":550},[478,10627,10628],{"class":480,"line":513},[478,10629,5373],{"class":550},[478,10631,10632],{"class":480,"line":640},[478,10633,5335],{"class":550},[478,10635,10636],{"class":480,"line":652},[478,10637,5382],{"class":550},[478,10639,10640],{"class":480,"line":663},[478,10641,5387],{"class":550},[16,10643,5390,10644,5393,10646,1466,10648,260,10650,1466,10652,5406,10654,34],{},[49,10645,4900],{},[20,10647,5396],{},[49,10649,5399],{},[20,10651,5402],{},[49,10653,5405],{},[28,10655,4922],{"href":4920,"rel":10656},[32],[11,10658,5413],{"id":5412},[16,10660,10661,5419,10663,5423,10665,5427,10667,34],{},[49,10662,5418],{},[49,10664,5422],{},[20,10666,5426],{},[28,10668,10670,260,10672,5436],{"href":5430,"rel":10669},[32],[49,10671,4910],{},[49,10673,4907],{},[470,10675,10676],{"className":4997,"code":5439,"language":4999,"meta":315,"style":315},[49,10677,10678,10688,10698,10708,10712,10716,10720,10738,10748,10752,10756,10766,10780,10786,10794,10798],{"__ignoreMap":315},[478,10679,10680,10682,10684,10686],{"class":480,"line":481},[478,10681,5446],{"class":540},[478,10683,5010],{"class":540},[478,10685,5451],{"class":490},[478,10687,5016],{"class":550},[478,10689,10690,10692,10694,10696],{"class":480,"line":316},[478,10691,5458],{"class":540},[478,10693,5461],{"class":838},[478,10695,1082],{"class":540},[478,10697,4058],{"class":550},[478,10699,10700,10702,10704,10706],{"class":480,"line":501},[478,10701,5470],{"class":550},[478,10703,5473],{"class":494},[478,10705,229],{"class":550},[478,10707,5478],{"class":484},[478,10709,10710],{"class":480,"line":507},[478,10711,5483],{"class":484},[478,10713,10714],{"class":480,"line":513},[478,10715,3546],{"class":550},[478,10717,10718],{"class":480,"line":640},[478,10719,504],{"emptyLinePlaceholder":328},[478,10721,10722,10724,10726,10728,10730,10732,10734,10736],{"class":480,"line":652},[478,10723,5458],{"class":540},[478,10725,5498],{"class":838},[478,10727,1082],{"class":540},[478,10729,847],{"class":540},[478,10731,5505],{"class":490},[478,10733,853],{"class":550},[478,10735,5510],{"class":494},[478,10737,5513],{"class":550},[478,10739,10740,10742,10744,10746],{"class":480,"line":663},[478,10741,5021],{"class":540},[478,10743,5520],{"class":550},[478,10745,1499],{"class":490},[478,10747,5525],{"class":550},[478,10749,10750],{"class":480,"line":674},[478,10751,1591],{"class":550},[478,10753,10754],{"class":480,"line":686},[478,10755,504],{"emptyLinePlaceholder":328},[478,10757,10758,10760,10762,10764],{"class":480,"line":696},[478,10759,5446],{"class":540},[478,10761,5010],{"class":540},[478,10763,5245],{"class":490},[478,10765,5016],{"class":550},[478,10767,10768,10770,10772,10774,10776,10778],{"class":480,"line":706},[478,10769,5458],{"class":540},[478,10771,5550],{"class":838},[478,10773,1082],{"class":540},[478,10775,847],{"class":540},[478,10777,5451],{"class":490},[478,10779,5525],{"class":550},[478,10781,10782,10784],{"class":480,"line":728},[478,10783,5021],{"class":540},[478,10785,5024],{"class":550},[478,10787,10788,10790,10792],{"class":480,"line":734},[478,10789,5569],{"class":550},[478,10791,5572],{"class":484},[478,10793,1591],{"class":550},[478,10795,10796],{"class":480,"line":740},[478,10797,5579],{"class":550},[478,10799,10800],{"class":480,"line":746},[478,10801,1591],{"class":550},[54,10803,10804,10812],{},[57,10805,10806,5591,10808,5594,10810,34],{},[49,10807,5590],{},[20,10809,2996],{},[49,10811,5597],{},[57,10813,10814,5603,10816,5607,10818,34],{},[49,10815,5602],{},[20,10817,5606],{},[49,10819,5610],{},[16,10821,5613],{},[54,10823,10824],{},[57,10825,10826,5621,10828,260,10830,5627,10832,5631,10834,5634,10836,5637,10838,5640,10840,34,10842],{},[49,10827,5620],{},[49,10829,2968],{},[49,10831,5626],{},[49,10833,5630],{},[20,10835,2996],{},[49,10837,5630],{},[49,10839,5626],{},[49,10841,5643],{},[470,10843,10844],{"className":4997,"code":5646,"language":4999,"meta":315,"style":315},[49,10845,10846,10856,10866],{"__ignoreMap":315},[478,10847,10848,10850,10852,10854],{"class":480,"line":481},[478,10849,825],{"class":540},[478,10851,5461],{"class":838},[478,10853,1082],{"class":540},[478,10855,4058],{"class":550},[478,10857,10858,10860,10862,10864],{"class":480,"line":316},[478,10859,5663],{"class":550},[478,10861,5666],{"class":838},[478,10863,5669],{"class":550},[478,10865,5672],{"class":484},[478,10867,10868],{"class":480,"line":501},[478,10869,5677],{"class":550},[16,10871,5680,10872,350,10874,5685],{},[49,10873,5212],{},[49,10875,4907],{},[470,10877,10878],{"className":4997,"code":5688,"language":4999,"meta":315,"style":315},[49,10879,10880,10896,10900,10910,10932,10938,10942,10946,10956,10976,10980,10986,10994,10998],{"__ignoreMap":315},[478,10881,10882,10884,10886,10888,10890,10892,10894],{"class":480,"line":481},[478,10883,541],{"class":540},[478,10885,5697],{"class":540},[478,10887,5700],{"class":838},[478,10889,1082],{"class":540},[478,10891,5705],{"class":838},[478,10893,5708],{"class":550},[478,10895,5711],{"class":484},[478,10897,10898],{"class":480,"line":316},[478,10899,504],{"emptyLinePlaceholder":328},[478,10901,10902,10904,10906,10908],{"class":480,"line":501},[478,10903,5446],{"class":540},[478,10905,5010],{"class":540},[478,10907,5724],{"class":490},[478,10909,5016],{"class":550},[478,10911,10912,10914,10916,10918,10920,10922,10924,10926,10928,10930],{"class":480,"line":507},[478,10913,5458],{"class":540},[478,10915,5733],{"class":838},[478,10917,528],{"class":540},[478,10919,5738],{"class":490},[478,10921,5741],{"class":550},[478,10923,814],{"class":540},[478,10925,847],{"class":540},[478,10927,5748],{"class":550},[478,10929,5751],{"class":490},[478,10931,5525],{"class":550},[478,10933,10934,10936],{"class":480,"line":513},[478,10935,5021],{"class":540},[478,10937,5760],{"class":550},[478,10939,10940],{"class":480,"line":640},[478,10941,1591],{"class":550},[478,10943,10944],{"class":480,"line":652},[478,10945,504],{"emptyLinePlaceholder":328},[478,10947,10948,10950,10952,10954],{"class":480,"line":663},[478,10949,5446],{"class":540},[478,10951,5010],{"class":540},[478,10953,5245],{"class":490},[478,10955,5016],{"class":550},[478,10957,10958,10960,10962,10964,10966,10968,10970,10972,10974],{"class":480,"line":674},[478,10959,5458],{"class":540},[478,10961,5785],{"class":838},[478,10963,528],{"class":540},[478,10965,5738],{"class":490},[478,10967,5741],{"class":550},[478,10969,814],{"class":540},[478,10971,847],{"class":540},[478,10973,5724],{"class":490},[478,10975,5525],{"class":550},[478,10977,10978],{"class":480,"line":686},[478,10979,504],{"emptyLinePlaceholder":328},[478,10981,10982,10984],{"class":480,"line":696},[478,10983,5021],{"class":540},[478,10985,5024],{"class":550},[478,10987,10988,10990,10992],{"class":480,"line":706},[478,10989,5569],{"class":550},[478,10991,5572],{"class":484},[478,10993,1591],{"class":550},[478,10995,10996],{"class":480,"line":728},[478,10997,5579],{"class":550},[478,10999,11000],{"class":480,"line":734},[478,11001,1591],{"class":550},[16,11003,5828,11004,5832,11006,5835,11008,5839,11010,34],{},[49,11005,5831],{},[20,11007,2946],{},[49,11009,5838],{},[49,11011,5842],{},[470,11013,11014],{"className":4997,"code":5845,"language":4999,"meta":315,"style":315},[49,11015,11016,11020,11036,11050,11054,11060,11064,11068,11080,11100,11104,11126,11130,11134,11138,11144],{"__ignoreMap":315},[478,11017,11018],{"class":480,"line":481},[478,11019,5852],{"class":484},[478,11021,11022,11024,11026,11028,11030,11032,11034],{"class":480,"line":316},[478,11023,541],{"class":540},[478,11025,544],{"class":540},[478,11027,5010],{"class":540},[478,11029,5863],{"class":490},[478,11031,5149],{"class":550},[478,11033,5868],{"class":831},[478,11035,5155],{"class":550},[478,11037,11038,11040,11042,11044,11046,11048],{"class":480,"line":501},[478,11039,5458],{"class":540},[478,11041,828],{"class":550},[478,11043,5879],{"class":838},[478,11045,842],{"class":550},[478,11047,814],{"class":540},[478,11049,5886],{"class":550},[478,11051,11052],{"class":480,"line":507},[478,11053,504],{"emptyLinePlaceholder":328},[478,11055,11056,11058],{"class":480,"line":513},[478,11057,5021],{"class":540},[478,11059,5897],{"class":540},[478,11061,11062],{"class":480,"line":640},[478,11063,1591],{"class":550},[478,11065,11066],{"class":480,"line":652},[478,11067,504],{"emptyLinePlaceholder":328},[478,11069,11070,11072,11074,11076,11078],{"class":480,"line":663},[478,11071,541],{"class":540},[478,11073,5912],{"class":540},[478,11075,5010],{"class":540},[478,11077,5917],{"class":490},[478,11079,5016],{"class":550},[478,11081,11082,11084,11086,11088,11090,11092,11094,11096,11098],{"class":480,"line":674},[478,11083,5458],{"class":540},[478,11085,2144],{"class":838},[478,11087,528],{"class":540},[478,11089,5930],{"class":490},[478,11091,5741],{"class":550},[478,11093,814],{"class":540},[478,11095,847],{"class":540},[478,11097,5939],{"class":490},[478,11099,5525],{"class":550},[478,11101,11102],{"class":480,"line":686},[478,11103,504],{"emptyLinePlaceholder":328},[478,11105,11106,11108,11110,11112,11114,11116,11118,11120,11122,11124],{"class":480,"line":696},[478,11107,5458],{"class":540},[478,11109,5952],{"class":838},[478,11111,5955],{"class":540},[478,11113,5958],{"class":550},[478,11115,5961],{"class":490},[478,11117,5964],{"class":550},[478,11119,1100],{"class":831},[478,11121,5969],{"class":550},[478,11123,5972],{"class":540},[478,11125,5975],{"class":550},[478,11127,11128],{"class":480,"line":706},[478,11129,5980],{"class":550},[478,11131,11132],{"class":480,"line":728},[478,11133,5985],{"class":550},[478,11135,11136],{"class":480,"line":734},[478,11137,504],{"emptyLinePlaceholder":328},[478,11139,11140,11142],{"class":480,"line":740},[478,11141,5021],{"class":540},[478,11143,5996],{"class":550},[478,11145,11146],{"class":480,"line":746},[478,11147,1591],{"class":550},[11,11149,6004],{"id":6003},[16,11151,6007,11152,229,11154,6014,11156,260,11158,6021,11160,3247,11162,34],{},[20,11153,6010],{},[20,11155,6013],{},[20,11157,6017],{},[20,11159,6020],{},[20,11161,2996],{},[169,11163,6026],{},[470,11165,11166],{"className":4997,"code":6029,"language":4999,"meta":315,"style":315},[49,11167,11168,11180,11196,11200],{"__ignoreMap":315},[478,11169,11170,11172,11174,11176,11178],{"class":480,"line":481},[478,11171,245],{"class":540},[478,11173,6038],{"class":550},[478,11175,604],{"class":540},[478,11177,6043],{"class":494},[478,11179,6046],{"class":550},[478,11181,11182,11184,11186,11188,11190,11192,11194],{"class":480,"line":316},[478,11183,825],{"class":540},[478,11185,6053],{"class":838},[478,11187,1082],{"class":540},[478,11189,6058],{"class":490},[478,11191,6061],{"class":550},[478,11193,6064],{"class":494},[478,11195,6067],{"class":550},[478,11197,11198],{"class":480,"line":501},[478,11199,504],{"emptyLinePlaceholder":328},[478,11201,11202,11204,11206,11208,11210],{"class":480,"line":507},[478,11203,801],{"class":550},[478,11205,5268],{"class":804},[478,11207,6080],{"class":490},[478,11209,814],{"class":540},[478,11211,6085],{"class":550},[16,11213,6088,11214,6092,11216,229,11218,405,11220,34],{},[20,11215,6091],{},[20,11217,6095],{},[20,11219,6098],{},[20,11221,6101],{},[470,11223,11224],{"className":4997,"code":6104,"language":4999,"meta":315,"style":315},[49,11225,11226,11238,11242,11258,11262],{"__ignoreMap":315},[478,11227,11228,11230,11232,11234,11236],{"class":480,"line":481},[478,11229,245],{"class":540},[478,11231,6113],{"class":550},[478,11233,604],{"class":540},[478,11235,6118],{"class":494},[478,11237,6046],{"class":550},[478,11239,11240],{"class":480,"line":316},[478,11241,504],{"emptyLinePlaceholder":328},[478,11243,11244,11246,11248,11250,11252,11254,11256],{"class":480,"line":501},[478,11245,825],{"class":540},[478,11247,6131],{"class":838},[478,11249,1082],{"class":540},[478,11251,6136],{"class":490},[478,11253,6139],{"class":550},[478,11255,6142],{"class":494},[478,11257,6067],{"class":550},[478,11259,11260],{"class":480,"line":507},[478,11261,504],{"emptyLinePlaceholder":328},[478,11263,11264,11266,11268,11270,11272],{"class":480,"line":513},[478,11265,801],{"class":550},[478,11267,5168],{"class":804},[478,11269,6080],{"class":490},[478,11271,814],{"class":540},[478,11273,6161],{"class":550},[16,11275,6164,11276,6170,11279,6174,11281,6178,11283,6182,11285,6186],{},[28,11277,6169],{"href":6167,"rel":11278},[32],[20,11280,6173],{},[20,11282,6177],{},[20,11284,6181],{},[20,11286,6185],{},[387,11288,11289],{},[16,11290,6191],{},[2853,11292,6194],{},{"title":315,"searchDepth":316,"depth":316,"links":11294},[11295,11296,11297],{"id":450,"depth":316,"text":4914},{"id":5412,"depth":316,"text":5413},{"id":6003,"depth":316,"text":6004},{},{"title":4877,"description":6201},[3706],{"id":6209,"title":6210,"body":11302,"date":6469,"description":6470,"extension":326,"meta":11511,"navigation":328,"path":6472,"seo":11512,"stem":6474,"tags":11513,"__hash__":6477},{"type":8,"value":11303,"toc":11506},[11304,11306,11308,11310,11320,11322,11326,11484,11500,11502,11504],[11,11305,3091],{"id":6215},[16,11307,6218],{},[16,11309,6221],{},[54,11311,11312,11314,11316,11318],{},[57,11313,6226],{},[57,11315,6229],{},[57,11317,6232],{},[57,11319,6235],{},[11,11321,6239],{"id":6238},[387,11323,11324],{},[16,11325,6244],{},[470,11327,11328],{"className":4997,"code":6247,"language":4999,"meta":315,"style":315},[49,11329,11330,11334,11338,11350,11362,11366,11382,11386,11412,11434,11438,11470,11474,11480],{"__ignoreMap":315},[478,11331,11332],{"class":480,"line":481},[478,11333,6254],{"class":484},[478,11335,11336],{"class":480,"line":316},[478,11337,504],{"emptyLinePlaceholder":328},[478,11339,11340,11342,11344,11346,11348],{"class":480,"line":501},[478,11341,245],{"class":540},[478,11343,6265],{"class":550},[478,11345,604],{"class":540},[478,11347,6270],{"class":494},[478,11349,6046],{"class":550},[478,11351,11352,11354,11356,11358,11360],{"class":480,"line":507},[478,11353,245],{"class":540},[478,11355,6279],{"class":550},[478,11357,604],{"class":540},[478,11359,6284],{"class":494},[478,11361,6046],{"class":550},[478,11363,11364],{"class":480,"line":513},[478,11365,504],{"emptyLinePlaceholder":328},[478,11367,11368,11370,11372,11374,11376,11378,11380],{"class":480,"line":640},[478,11369,541],{"class":540},[478,11371,5697],{"class":540},[478,11373,6299],{"class":838},[478,11375,1082],{"class":540},[478,11377,6304],{"class":838},[478,11379,5708],{"class":550},[478,11381,6309],{"class":484},[478,11383,11384],{"class":480,"line":652},[478,11385,504],{"emptyLinePlaceholder":328},[478,11387,11388,11390,11392,11394,11396,11398,11400,11402,11404,11406,11408,11410],{"class":480,"line":663},[478,11389,541],{"class":540},[478,11391,5912],{"class":540},[478,11393,5010],{"class":540},[478,11395,5917],{"class":490},[478,11397,6326],{"class":550},[478,11399,528],{"class":540},[478,11401,6331],{"class":490},[478,11403,6334],{"class":550},[478,11405,5879],{"class":831},[478,11407,528],{"class":540},[478,11409,6341],{"class":838},[478,11411,6344],{"class":550},[478,11413,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432],{"class":480,"line":674},[478,11415,5458],{"class":540},[478,11417,6351],{"class":838},[478,11419,1082],{"class":540},[478,11421,6356],{"class":550},[478,11423,6359],{"class":490},[478,11425,6362],{"class":550},[478,11427,6365],{"class":490},[478,11429,853],{"class":550},[478,11431,6370],{"class":494},[478,11433,6373],{"class":550},[478,11435,11436],{"class":480,"line":686},[478,11437,504],{"emptyLinePlaceholder":328},[478,11439,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468],{"class":480,"line":696},[478,11441,5458],{"class":540},[478,11443,5952],{"class":838},[478,11445,1082],{"class":540},[478,11447,6388],{"class":550},[478,11449,5961],{"class":490},[478,11451,853],{"class":550},[478,11453,6395],{"class":831},[478,11455,6398],{"class":540},[478,11457,6401],{"class":550},[478,11459,6404],{"class":490},[478,11461,853],{"class":550},[478,11463,6409],{"class":494},[478,11465,6412],{"class":550},[478,11467,6415],{"class":838},[478,11469,6418],{"class":550},[478,11471,11472],{"class":480,"line":706},[478,11473,504],{"emptyLinePlaceholder":328},[478,11475,11476,11478],{"class":480,"line":728},[478,11477,5021],{"class":540},[478,11479,5886],{"class":550},[478,11481,11482],{"class":480,"line":734},[478,11483,1591],{"class":550},[470,11485,11486],{"className":6435,"code":6436,"language":6437,"meta":315,"style":315},[49,11487,11488,11492,11496],{"__ignoreMap":315},[478,11489,11490],{"class":480,"line":481},[478,11491,6444],{},[478,11493,11494],{"class":480,"line":316},[478,11495,6449],{},[478,11497,11498],{"class":480,"line":501},[478,11499,1591],{},[11,11501,6457],{"id":6456},[16,11503,6460],{},[2853,11505,6463],{},{"title":315,"searchDepth":316,"depth":316,"links":11507},[11508,11509,11510],{"id":6215,"depth":316,"text":3091},{"id":6238,"depth":316,"text":6239},{"id":6456,"depth":316,"text":6457},{"draft":328},{"title":6210,"description":6470},[3706,2880,6476],{"id":6479,"title":6480,"body":11515,"date":6469,"description":6511,"extension":326,"meta":11537,"navigation":328,"path":6513,"seo":11538,"stem":6515,"tags":11539,"__hash__":6519},{"type":8,"value":11516,"toc":11533},[11517,11519,11521,11523,11527,11529,11531],[11,11518,6486],{"id":6485},[16,11520,6489],{},[411,11522],{},[387,11524,11525],{},[16,11526,6496],{},[11,11528,6500],{"id":6499},[16,11530,6503],{},[16,11532,6506],{},{"title":315,"searchDepth":316,"depth":316,"links":11534},[11535,11536],{"id":6485,"depth":316,"text":6486},{"id":6499,"depth":316,"text":6500},{"draft":328},{"title":6480,"description":6511},[6517,6518],1781958637220]